PACKT Publishing recently released the book, CMS Made Simple Development Cookbook by Samuel Goldstein. The author states that the book “gets you started building feature-rich sites quickly, regardless of your experience level.” I might add that as long as your experience level isn’t that of beginner and as long as you a good familiarity with PHP, SQL and HTML the book may prove to be helpful. Beginners will be frustrated and therefore I would not recommend this book to them. Likewise, if you are a designer as opposed to a developer, this book is not for you because it is dealing with coding, not design, per se.
“Cookbook” style books generally provide targeted examples of features or methods you can add to extend the capabilities of an existing “thing” in this case the CMS, CMS Made Simple. By using recipes (code snippets) provided by the author, you are presumably able to add tags, user-defined tags and extensions to your installation of CMS Made Simple to give you functionality not present in the default installation. In my opinion, a recipe should be able to stand on it’s own with minimal customization to be truly valuable. If you cannot simply paste in the code of a recipe to achieve immediate additional functionality, then the value of that recipe and in fact the entire book, is diminished. Thankfully you are able to obtain the code examples from the packtpub.com website after you register your book.
The books’ 10 chapters takes a good look at the various ways that CMS Made Simple allows a user to add capabilities. In Chapter 1, the author describes the differences between tags, user-defined tags and modules and in what circumstances you would choose one over the other.
Chapter 3 dives into Tags and User-Defined Tags. Some of the recipes here show you how to add the ability to display a User’s IP address for a user-defined tag, display a stock price from Yahoo, or how to add a Registered Trademark symbol to a name automatically.
Chapter 4 is where you will learn about Modules. The file structure of a module is discussed then tips on how to create a framework for a new module are presented. There is also discussion about a tie-in with Smarty that enables you to make the output of your module as flexible as the rest of the CMS system.
When you create a module that is intended to manage data, you will need to make decisions about how best to handle that in the database. If a module is deleted, do you want the corresponding data and tables in the database to be deleted? These and other Database API questions are looked at in Chapters 5, 6 and 7.
Chapter 8 deals with Admin Panels and provides recipes that enable you to create an admin panel for a module, deal with permissions for the module’s administration, and much more.
Chapter 9 looks at handling and using Events. For instance, if a user is searching for keywords on your site, you might want to know not only what keywords they searched for, but how many results they got. A recipe for attaching a User-Defined Tag to an event is shown to accomplish something like that.
Chapter 10 presents tricks to help with additional module-related features and touches on some tSearch Engine Optimization tricks.
This is not easy stuff if you are not a developer or programmer. But assuming you have the skill set needed, the chapters provide a consistent and good flow in the way that the material is presented. Although the book is written in a direct, no-nonesense style some of the recipies are not going to be too helpful to many people. The demonstration of building the recipes and discussion of the concepts involved should give the competent programmer all that he or she would need to get pointed in the right direction and should prove to be valuable.