[PHPwestoz] CMSs/web applications - opinions?

Samuel Cochran sj26 at sj26.com
Wed Jan 5 00:12:02 UTC 2005

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
>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
>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)
>>>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
>>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
>>>Developer / end user documentation
>>>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.....
>>>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.
>>>>-- Samuel Cochran
>>>>   sj26 at sj26.com
>>>>   +61 4 15441909
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3154 bytes
Desc: S/MIME Cryptographic Signature
Url : http://lists.linux.org.au/pipermail/phpwestoz/attachments/20050105/bf8239e0/attachment.bin 

More information about the PHPwestoz mailing list