[PHPwestoz] CMSs/web applications - opinions?

Evan Barter evan at wiredcity.com.au
Wed Jan 5 02:28:01 UTC 2005

(My first post by the way, hi list)

Just wanted to briefly add my $0.02. I think what you're attempting to 
do is kind of... well, huge. That said, it's_probably_not unobtainable. 
You said it yourself, that very few if any existing systems offering 
these kinds of features, and it's probably for good reason.

I'm glad you mentioned a couple of things in your proposal, namely 
caching and performance. Too many times I see projects with large 
aspirations go ahead only to be abandoned because the developer gave no 
thought whatsoever to performance and scalability. Things like running 
queries with reckless abandon, processing unnecessary amounts of data 
and ineffective scripts and libraries. There's no point writing a system 
that'll only run effectively on a dual XEON server, or something 
similarly ridiculous.

The only other thing I wanted to add was start small, but think 
expandable. You seen to have the right idea with the plugins/modules 
I've read in other posts (I'm far too much of a list lurker). Try not to 
over complicate and get things messed up in your head as it'll be 
reflected your code. If your system's really extensible, more complex 
additions will be easier to add in the future.

I, for one, am really interested in how this turns out. Good luck.


Samuel Cochran wrote:

> I want to expand a bit...
> this application isn't a last-ditch effort to throw together some 
> scripts and hope they all work together - that's exactly what i'm 
> trying to stop! what I want to do is create a common web application 
> framework but something that doesn't require a great deal of 
> programming... basically it will consist of:
> -   A user/session/profile etc system with session/hit tracking for 
> statistics/etc purposes
> -   A groups system which allows multiple memberships, differing 
> internal permissions levels (group moderator), etc...
> -   An objects system which allows the creation of all sorts of 
> objects - this is the main area for extensibility - it allows the 
> creation of a web page, category, forum, topic, post, article, link, 
> image, template, user, group, etc. Everything is an object that can be 
> interrelated - not just child/parent relationships but varying degrees 
> of relationships, networks of relationships, etc. Yes, it becomes 
> complex, but it can also be extremely simple. This is meant to be an 
> extremely scalable system.
> -   A granualar permissions system which allows you to control all 
> permissions granted to users, be they global (like the ability to have 
> an avatar) or local (being able to write to a particular object)
> -   An object view system which allows you to create objects which 
> provide a 'view' of other objects, like a filter, which can then be 
> exported to a layout, which then exports to a style. This will be 
> heavily XML based.
> -   A sophisticated caching system which caches pages, objects and/or 
> views where appropriate. It will be a JIT caching system which is used 
> when required - for example, a blog page doens't need to be changed, 
> it is almost static, however, a 'latest topics' component needs 
> (almost) constant updating, therefore a blog page with a 'latest 
> topics' component would cache the page except for the *data* of the 
> latest topics, the actual layout and style (presentation side) would 
> be cached.
> I'm kinda spewing thoughts all over the place here, but it's good (for 
> me at least... i should put a patent pending or something on this 
> stuff :P)
> This combination allows the greatest scalability along with the 
> greatest ease of use, all within a highly optimised and 
> performance-based system.
> I am using some phpBB 2.1.x libraries as an outline, but that's IT, I 
> am developing everything basically from the ground up.
> I have seen innumerable CMSs and forums and web applications, etc, and 
> NONE of them offer the full set of this basic functionality - phpBB 
> comes close but still has rigid object types (forums/topics/posts) and 
> I intend to fill that gap.
> When I do finally get the core worked out I'm gonna need people to 
> start making object type plugins, layouts, styles, views, and all 
> sorts of things. For example, a forum consists of:
> -   category/forum/topic/post  object types, with the addition of 
> standard user/group items.
> -   font-page, category (forum lists), forum (topic lists), topic 
> (posts list, user information) views, administrative views, post 
> views, etc.
> -   layouts for each of the above
> -   (a) style(s)
> However, a simple blog may only consist of a collectiong of page 
> objects with a simple raw-output view, layout, and style. you could 
> then add in commenting, etc... but this is a basic example.
> I intent also to host a copy of this running myself, offering fre 
> email, blogs, communities (groups, friend networks, forums, etc), 
> corporate website hosting/building, corporate 
> customisations/modifications (including new object type building, etc, 
> styles, layouts, views, site integration/migration), etc...
> My philosphy is to provide the software free but charge for services.
> Now that i've set out my plan before you 15, what do you think?
> -- Samuel Cochran
>   sj26 at sj26.com
>   +61 4 15441909
> moosecat at moosecat.com.au wrote:
>> Quoting Sol <sol at terminus.net.au>:
>> Some possible ways to to things - the way I do it - or have thought 
>> about doing
>> it...
>> Ability to use modules.., self installing etc.
>> If modules are placed into a directory - you can easily read this 
>> directory &
>> dyamically include the files...  you can go a step further & list 
>> them in the
>> admin area an have a flag to switch them on/off (flag in the database 
>> - again
>> they can add an entry in the module table them selves when they are 
>> loaded).
>> A standard array could set many of the configs - or be used to 
>> generate a form
>> to ask the right values via the admin - or get them straight from the 
>> core
>> config.
>> spell check, image/doc management, template engine are available as 
>> open source
>> - you could include these in your project & contribute back to the other
>> projects.... I have seen a spell check in phpclasses that can be run 
>> without
>> all the extras that phpspell requires...  I think this is important 
>> as if you
>> are building a CMS that can be run on many platforms servers...  you 
>> have to be
>> a bit carefull on the requirements... or have the ability for the 
>> system to know
>> what it has & what is does not & switch things on-off as nessicary....
>> One thing that many wiki's have that is cool is a Diff function.... 
>> this is a
>> good ideal if version control was there too....
>> User priverages can easily be handled with a user table, login, & 
>> extra flag in
>> a table...  by the way any one know any good references to software 
>> logic
>> patterns...  have not used them yet...  but very good idea if you 
>> were to build
>> a CMS from scratch.  Would help that non-reinventing the wheel too.
>> Another thing a missed was self install of the CMS it self ... fi you 
>> want other
>> developers to take this up... especially if they don't know a great 
>> deal of
>> php....  they want things easy...  otherwise you will be installing 
>> all the
>> time... and not developing (I know....  all I do is install CMS's - 
>> never any
>> time to develope...)
>> Hope I have not written too much - or gone in to too detail for this 
>> list...
>> Any way good luck - lunch time....(in Sweden)
>> Regards
>> Sean
>> MooseCat
>>>> Couple of things I thing are important are:
>>>> Ability to add modules without touching the core code - but modules
>>> able to use
>>>> functions of core code (& developer guidelines for module development)
>>> - mable
>>>> self installing - eg CMS looks in a directory and can use module 
>>>> with no
>>>> configuration
>>> Oooh, now you're talking. No idea how you'll do it, but sounds good. ;)
>>> One thing that appeals to me as a cms user, is the ability to share
>>> users/passwords/privileges with other systems. I think that phpbb can
>>> share users with zen cart. To me, this is very practical - in fact I'm
>>> thinking of doing exactly this right now - as I'm more likely to 
>>> want to
>>> use different "specialty apps" for each section of a site. That's me
>>> anyways.
>>>> Developer / end user documentation
>>> Good.
>>>> Spell check
>>>> Priverledges (you can see why I wanted the spell check)
>>>> check in- check out of pages
>>>> Document management
>>>> Image Management
>>>> Template engine - so the CMS can be easily customised
>>> With regard to these last four points, have you thought of maybe
>>> grabbing some wiki code and working from there?? Some wikis have these
>>> features, but of course no real user & privilege system. May help to
>>> prevent reinventing the wheel. Just a thought.....
>>> /sol
>>>> Those are a few anyway...
>>>> Quoting Samuel Cochran <sj26 at sj26.com>:
>>>>> I'm out to write my own CMS, and before you say "you and every other
>>>>> person..." i want you to know it's something different.
>>>>> something based on a truly granular permission system from phpBB 
>>>>> 2.1.x,
>>>>> using advanced user/group functionality - but what makes it 
>>>>> different is
>>>>> it's object and advanced JIT caching system. This is not just a 
>>>>> CMS but
>>>>> a web application framework that scales from the most basic user 
>>>>> wanting
>>>>> a simply page-based site to a complex multi-functionality commercial
>>>>> site with forums/groupware/webmail/etc.
>>>>> I'm looking for ideas as to what functionality will be required
>>>>> (although I have a fairly good idea) and wondered if you guys have 
>>>>> any
>>>>> favourite CMSs/web applications with special functionality that you
>>>>> think should be incorporated.
>>>>> Thanks,
>>>>> -- Samuel Cochran
>>>>>   sj26 at sj26.com
>>>>>   +61 4 15441909

More information about the PHPwestoz mailing list