on October 30, 2011
My biggest complaint with this book is its size: this is an over-sized volume and at almost 800 pages it's pretty heavy; it's nearly impossible to hold comfortably in one hand.
The author gushes about Modx in the intro chapter...that's more comforting than starting the book by saying "this product sucks" but it serves to warn that the author is a tad partial.
All-in-all, this is a really good book. The author addresses pretty much all of the issues that you need to know to develop a site with Modx and does so at a level that seems appropriate to most or all audiences. I do think you'd benefit by installing Modx and playing with it for a day or so before tackling the book...the book gave me many "aha!" moments when reading because I had already struggled with so many of the concepts. The author introduces liberal doses of "here-is-how-I-would-do-it" in the book and these are very appreciated; they serve to underscore areas and concepts that aren't necessarily intuitive.
Modx is a great Web development framework with many CMS-like features but there are powerful constructs and concepts that are really difficult for the newcomer to fully grasp. For example, a "site context" was something that I was sure was important but had no idea why. In a few quick paragraphs, the book showed me the power and the potential of site contexts within the first 30 pages or so. I had spent two hours trying to figure out how to do a certain task un-cached and was utterly defeated. The author solved the problem with a simple operator ([[!...). Duh.
Modx comes in two flavors: Evolution and Revolution. It appears to me that Revolution (essentially, Modx 2+) is a rework of the original framework where the developers decided to bite the bullet and throw out the bad ideas. To the Modx newbie, the differences between the two products aren't apparent at first and yet they are critical to know because it is easy to start researching a problem and heading off in a wrong direction because you have inadvertently stumbled across an Evolution discussion.
I recommend circling some passages with a pen or pencil and dog-earing the pages to come back to them. As I read sections of the book, my instinct was to go try some of the ideas presented but I think you're better off reading through most of the book skimming over sections that aren't immediately important. Then, go back and review those pages that contained valuable nuggets of code or procedures.
I've written a number of programming books and know how big of a job an undertaking of this scope is. Kudos to Bob Ray and his co-authors for a definitive work.
on June 26, 2012
I am not a professional web site developper.
I have developped and maintain a dynamic web site(with PHP and MySql) for my hobby interest though. This site is more than a simple blog site and run on MODX.
I bought Bob's book the moment it came out. Aside from usual stuff that tells you how to build website without any coding, the most strong point of his book is about how you can vastly improve your site with a little PHP coding and let the MODX engine (with APIs that you can tap) take care of otherwise hard programming exercise.
This is a thick book. You need to skim through the book and get a feeling of what is available inside. Then while you are working on creating a site, and have some questions, you can go to the excellent table of index at the back and find a topic, read them through and apply to your project.
Case in point. Recently I needed a method to dynamically insert a CSS file at the <head> section of particular pages. I remember seeing modx->regClientCSS in the online MODX page, but there was not much of an information other than the mention this can insert a CSS file. Enter Bob's book. Here is what is shown in this entry.
reg* - The following five methods insert CSS,JS, or HTML at various points of a document. In all cases, the script is registered with MODX so that it won't be injected more than once. Multiple scripts are injected in the order in which they are reigstered.
regClientCSS(string $src) - Places the string just above the closing </head> taf of the document. If $src contains '<link'or '<style', it will be insereted a writttn. Otherwise it will be wrapped as follows;
'<link rel="stylesheet" href="'. $src . '" type="text/css:" >'
This chunk of information turned out to be the exact information that I wanted to know. In another word;
1) Multiple calls to this method will not result in multiple references to the same CSS. the function takes care of itself as "required once"
2) parameter can be not only a file path but also a string that actually contains style tag and attributes "<style>..</style>"
I could have eventually gain this knowledge by googling Internet I am sure. but it could cost me half an hour or more.
The book is packed with this type of information. I constantly going back to the book when I am working on the site. Indispensable.
on June 14, 2012
I've been designing web sites for well over ten years now and I have never enjoyed using any software programs ... mainly because I enjoy writing my code by hand and designing my own templates as I please. Software programs always restrict you to the templates provided and if you try to change them ... well, it just isn't possible.
But recently, I heard about MODX, which allows you to use your own templates (or to modify the MODX templates as you please), and I said, "Finally!" So, I downloaded the software and started digging in. Unfortunately, the tutorials that I found on the web, although very helpful at times, often left this "newbee" out in the cold and the dark; in the woods, on a moonless night, without a flashlight! Yipe!
So I decided to take a chance at ordering MODX: The Official Guide. Honestly, I was skeptical about the purchase but went ahead, in hopes that I wouldn't be disappointed. Well, I got my copy a few days ago and I have to tell you -- I am really impressed!!!
Bob Ray has done a magnificent job! I mean, I was so pleased to see how clearly he explains everything! No kidding ... most books like this are not only dry and boring, but also very tiring ... and worded in ways that make the execution of various tasks very difficult to comprehend. Not this time! I find myself blazing through, page by page, and understanding exactly what I need to know. This is great!
If you are interested in learning MODX ... don't hesitate to buy this book. Bob Ray will walk you through every step and explain every task in enjoyable ways!
Good job, Bob!
on March 30, 2013
Finally! I got my hands on a copy of BobRay's book! And the first thing I saw when flipping it open to a random page was the "getParentIds()" function. It looks like I need to rewrite the old UltimateParent snippet to make use of this. Even though I've been a MODx developer for over 8 years, this book has immediately become one of my primary sources of MODx know-how.
One very interesting feature of the book is the sections on Evolution, "Evolution Notes" at the end of the chapters. These notes describe similarities and differences in how Evo handles the subject being discussed. This will be even more significant as Evo development picks up and continues.
The book is over 700 pages, with 13 chapters and an extensive Appendix. While some of it is already obsolete at this point (what computer tech book isn't already partly obsolete by the time it gets published?) the vast majority of its content will definitely be useful. Since I'm already intimately familiar with the basics of how MODx works on the surface - surface functionality hasn't changed much from Evo - I especially find the chapters on using the xPDO-based API invaluable.
The first six or seven chapters cover the basics of how MODx organizes the content and functionality of a website. After describing how MODx works in general, they go on to explain the basic building blocks of Resources, Templates, Chunks, Template Variables, Snippets and Plugins. For new users, these are well-written and will give you a great insight on how best to leverage these resources and elements to build your sites while maintaining separation of content, presentation and function. For the old hands, they are worth at least skimming through, as they do cover the new twists Revo puts on some of our old friends, like Symlinks and Static Resources, and how all elements can have properties, and can be static elements pointing to files.
CODING THE REVO WAY
Chapter 8 is where things really start to heat up. Revo has a totally different core than Evo. This new core, based on Jason Coward's xPDO library, is fully OOP, MVC, and all sorts of other clever acronyms. But it really does open up whole new approaches to developing for MODx. While snippets and plugins still superficially perform the same functionality as they do for Evo, PHP coding for Revo is a whole new experience. Chapter 8 is over 100 pages explaining how to use the the xPDO-based API with all of its "get" and "set" methods. Object-oriented junkies will be right at home. Examples and tutorials abound.
ORGANIZATION AND SECURITY
Next, in chapter 9, Revo's ability to rename the manager and put its core files outside of the web root are discussed, as well as the organizational possibilities in the concept of "contexts". Contexts make it possible to manage multiple domains and subdomains using the same MODx installation. They are also often used to provide pseudo-subdomains or subdirectories for managing multi-language sites.
Chapter 10 is arguably the single most important chapter in the whole book, as it demystifies the Revo user management system. Permission, Access Policies and Policy Templates, Roles, users, user groups and resource groups are all explained, along with how they fit in to the Access Control List model of Revo security. A number of tutorials working through several common scenarios help illustrate how it all comes together.
Chapter 11 describes how the Manager interface can be customized using Form Customization and Custom Manager Pages, instead of or in conjunction with user permissions.
Chapters 12 and 13 deal with third-party add-ons, describing how to use the Package Management feature to easily install ready-made add-ons from both the official MODx repository and local packages, and how to create your own add-on packages.
Finally, the extensive Appendix section has a wealth of useful information. It starts with the API, including xPDO functions, the xPDOObject class that is the foundation of everything, MODx object functions, and the modUser class.
The Appendix even includes a nice introduction to PHP programming, with of course tips and tricks particular to coding for MODx. Debugging and good coding practices are covered.
Using the MODx mail system to send mail via SMTP is described, and finally an exhaustive list of the system events, used to trigger plugin code to modify the behavior of MODx without modifying core files, is provided.
BobRay has for years been helping out newbies and experienced MODx users on the forums, and his Bob's Guides website has excellent articles and tutorial on all kinds of things MODx, as well as some pretty good bread recipes. This book is definitely something that every MODx user, from designer to developer to content editor, should have handy.
on February 11, 2016
A brilliant book.
It covers everything in detail to get you going in MODX. You'll be build websites and web apps in no time.
Besides the chapters for beginners, it also includes a lot more advanced topics such as creating and packaging your own MODX extras and building custom manager pages.
The only thing I could see it doesn't cover is using MODExt (MODX version of ExtJS) within your custom manager pages but this topic alone could fill a book and due to the freedom MODX gives you, you don't need to use it anyway. You can use any framework or just plain HTML if you like.
Every person using MODX should buy this book immediately. If you're not using it, hurry up and start.
on June 20, 2012
If you are actively developing websites with MODX this book is a must.
I bought Bob's guide to MODX after working with MODX for several months. While I was able to get started on my own fairly easily it took Bob's guide to take me into moderate and advanced MODX territory.
The guide *easily* paid for itself the first week I had it. Instead of searching Google for hours I just looked up the relevant topics in the index and found the appropriate section. No matter the topic Bob treats it clearly and thoroughly.
The book is well organized and Bob fills it with plenty of examples. You can either read it from cover to cover, or skip around as you need to learn about various MODX topics. In many cases the examples are the most helpful portion, but they are pieces of code that I haven't been able to find online.
Finally, the author actively monitors the #MODX hastag on twitter and provides ongoing support there as well as the MODX forums. You can't go wrong with an author that backs up his material that way!