So I've been working on rewriting my code into almost like a turnkey website sort of thing where i can easily install it on other websites. But I'm not quite sure of the best way to do it. But one thing that's really made a lot of decisions easier is Smarty. Man I can keep the display component completely separate. Totally awesome. Unfortunately, you can't define multiple template directories. I was hoping to keep all art gallery stuff in one folder, all profile stuff in another folder, etc. But then again, keeping all the templates in one folder may make sense if you want to make it so the designer can only access the template files.
jQuery has been really helpful as well. It's been really quick to turn an app into an ajax one. Damnit I love Ajax. And I've been playing around with jQuery UI which has some nifty features too. I hope to convert all my ajax stuff from Sarissa to jQuery.
It's really hard to organize everything though. It may make sense to keep everything related to a component (such as art gallery, photo gallery, web page cms, profile) in its own folder. In that folder would be the php class, php pages, template files, JS, CSS. But it's hard to do that. Sure you could put all the JS together in one folder, all the PHP in another, etc. But then when you need to install a component in another site you gotta copy paste stuff into like 5 different folders rather than just copying one folder.
Still trying to figure it out. Maybe it shouldn't be componentized. Maybe everytime I install my software on a site they get all the components. I dunno. I need help with this one.