Hmm.... I’m not a big fan of TV’s when it comes to complex custom table structures.... it works, but if we don’t have a clean, fully normalized database architecture underneath it all, then reporting, updating, and viewing gets to be jumbled. Something as simple as selecting a row (i.e. document) with each of its template variables in a separate column becomes a messy bunch of SQL joins. I understand the solution outlined would make maximum use of Ditto and eForm, and maybe that’s the easiest way to go with the time we have, but I get irked when the DB tables aren’t really clean.... some of our tables are using InnoDB and enforcing foreign key constraints, so it’s pretty meticulous on the DB level.
I’m not familiar with CCK or Drupal other than trying to make it work for about an hour and half and then moving on... until I found MODx
xPDO... I’ve looked at it briefly, and I’ll be the first to admit that my understanding of how these frameworks do their magic is limited, so any little bit of unclarity in the docs just kills my chances... I need to see the ENTIRE php file to know what’s going on... nearly all of their examples show a line or two of code, and I’m just not experienced enough to know where to put those lines. That equals instant death. Game over... next framework please. So I wasn’t able to make sense of xPDO... and it certainly doesn’t help when the doc pages have broken links (e.g.
http://www.xpdo.org/documentation/migration-guides.html -- was this page intentionally left blank?). Code Igniter had 2 really helpful videos on their site which really could get me going with my project. I haven’t seen anything like that for xPDO. I know I could figure it out if given enough time, but I don’t have infinite time for this stuff...
One simple suggestion: loose the "extends xPDOObject" name... that name might make sense to the original developers, but "xPDOObject" has no place in my brain... I don’t even know how to begin thinking about that object. Why not choose a friendlier, descriptive name? Maybe it sounds trite, but a good variable name really greases the rails.