Hi All,
This seems like the appropriate opportunity for me to jump back in with an update on my situation regarding my site.
My primary goal last June was to build my site out very FAST while also learning both PHP and the CMS I ultimately would end up choosing. I was creating something that as far as I know had not been exactly created by anyone on any site I have ever come across - being a mix of some of the novel elements from a slew of sites, from Wikpedia, to IMDB, to Craigslist, and any number of other sites. Being a designer at core, I ran into the project with an uncompromising set of conditions that just HAD to be met, all in my goal of creating a world changing NEXT GEN review site. Specifically there ended up being over three hundred data fields on one web page alone, in half a dozen variations, crossed with another half dozen ways of interpreting the data, and of course, each datafield consisted of one of several data types, sizes, scopes and interactions. Many of the data fields were agglomeration or moderation fields based on the originating data entry fields and it made sense to include them all in one table, with a toggle to determine which set of fields was an editable set or a moderatable set. To complicate all this, I had some novel ideas about how users would review other users’ entries. It was an amazing and beautiful meat grinder of a mess in my Excel spreadsheet, and I had to translate it all into PHP code meshed into a CMS which I had all but no clue about.
I began working with ModX but by the second week, I realized that whenever I had a question there were just too few Google hits with answers that were satisfactory to my getting the job done and done right and on time and fast, with relatively little ripping of my hair out. (as I post below, I still want to resume learning and using ModX for my other projects, as, now knowing Drupal, I consider what little I know of ModX so far to be indications of how much simpler and more logical it is than Drupal)
It was THUS with reluctance, and with my tail between my legs (my friend had been reccomending Drupal forever to me while I had championed ModX), that I silently skulked back to Drupal 6.
Today, seven months out, with my web site almost completed to my detailed and precise (insane, really) specs, I can honestly offer a bit of wisdom at least vis a vis Drupal, specifically some of the problems with using Drupal.
At the time I chose to go with Drupal, I was mostly looking for a vast user base that could provide answers for nearly ANY question. My fear was me getting stranded and not being able to work through any potential problem in a timely manner. The one answer to that is to thus go with the biggest user group, period.
As anyone knows with web programming, there are many ways to skin a cat. In my case, I chose to write a single massive node page to capture all the fields. On second consideration it might have made more sense to split up the page sinto subpages then assemble them again for the view page, but I gained in efficiency and simplicity by keeping it all together.
It was a slow, frustrating autumn, as I inched through issue after issue after issue, constantly going back to try to Google an answer to whatever it was that was plagueing me that day. The project had to work like a timepiece for it to succeed, and I was not about to compromise. After a few months winter break and a bad cold, I resumed programming a few weeks back and was astonished at how quickly I was able to resolve issues that in the fall had dogged me. Getting away from a project seems to help the mind get better accustomed to how things work in the PHP/Drupal world.
Some of my problems with using Drupal stemmed from my lack of prior PHP programming skill, which meant I had to learn all the quirks of PHP the hard way as well as all the quirks of Drupal. To complicate it, Drupal at first SEEMS to be well documented, but the level at which it is documented on the site is at a very high level, and there is a lot to learn BEFORE one gets to that high level. So, there I was, digging through one of the five or six books on Drupal that I bought, trying to determine how the whole thing fell together.
Slowly I began to make decisions about what absolutely had to happen functionally and how it was represented in terms of code, and then I began to develop the custom PHP functions and coding. This process brought up another shortcoming of Drupal, while the community is vast and occasionally helps out newbies, often, unless the problem is framed in a precise manner, one finds oneself dangling with out a solution to a seemingly minor issue. To complicate it, Drupal is not built to be simple and accessible - every version bringing a new flavor of doing things.
Drupal also was created not by designers/developers according to classic web site needs specs, so things which I would have thought were elementary to do were not even considered by Drupal programmers. Ultimately, the program seemed to have been written and is supported by a community of Engineers. And engineers often do not comprehend why it is that a certain function that a designer desires or considers elementary should even be included or considered at all - "why in the world would ANYONE need THAT function??" was the mindset I came across more than I wanted to. Add in the vast variety and quality of modules, which are written by different people, with differing interests in creating documentation, and you literally often do not know what you don’t know and thus are left poking around in the dark, high and dry, sometimes literally for days. One example, I fought with the Drupal module Location for seemingly EVER trying to decode how to define the precise variable that gets at the form page functions and lets one change them on the fly in edit mode, and I finally threw the damn module out and wrote my own module to perform the same set of functions from scratch.
To complicate all of this, I also dove in writing the most difficult thing first, the Engine I describe briefly at the top of this post. Most others would have jumped in and turned on the modules and set those parts up first, and I did toy with dozens of modules, but my decision to then jump right into the most difficult part was very rewarding, frustrating as it might have been at first. I was also determined to minimize the number of modules used, preferring the more efficient way of coding the things myself.
Having struggled through Drupal these past six months, I can conclude one thing, there MUST be a simpler way to deal with the variables that a CMS has to juggle. Having come out the opposite side of this project, ultimately understanding what all the parts of a CMS are from the inside out, as I have, I can now see room for an elegant next generation CMS to replace or supplement Drupal, which of course is where I still see ModX as being, something I know the ModX developers are in agreement about as far as where they see their CMS as well.
It’s not just me, the proof is in the fact that I am set up in HostColor (I would reccomend them without reservation, BTW) and the three CMSs they natively support are Drupal, Joomla, and ... ... MODX.
SO, I look forward to this nightmarishly complex site to finally be DONE and to hopefuly begin to generate cash for me. AFTER WHICH, I do want to come back to ModX and to learn about some of the differences (knowing how CMSs work now) between Drupal and ModX and then use ModX to build out my half dozen of so satellite web sites (that will feed the primary site as well as serve as their own blogs/ebook selling sites, etc.).
My guess is that, upon my returning to ModX, the simplicity and elegance of ModX will almost immediately pop out and, now knowing PHP in detail, I will be able to garner up the remaining function needs I have and just jump in and write out the PHP code using the ModX platform as the wrapper.
So, my short history of the past year... I am sure I have missed a lot of other items that are worth mentioning here, and in the future I might post yet another update with some more info. Hopefully all this is useful in laying out to newbies like me some of the issues you might contend with when having to learn and juggle multiple development issues within a CMS environment, be it Drupal or ModX.
Rob