skip to main content

kiesler.at
FutureOfPhpWebSite
History | Back to Page

Revision as of 2005-04-06 20:38


Author

TommydeJesus

What is the future of phpWebsite?

What should that future be? The answer is harder than it probably should be. Development takes time, and the development team has done a great job on the core product, but advances in Approval, Categories, Menus, Users, and Groups do not seem to be a priority. And yet these are the areas which need the most attention. Let us start with Categories.

One of the better ideas and yet not exploited nearly enough by the core. Why no association between groups and categories? Why no restrictions on Users as to which groups they can access to edit/create/view? I read where phpWS is concerned more with management than it is with content, but it seems the opposite is true. getting the content in the database is the priority, how it is accessed, and by who, not as much. So much power in one module used almost not at all.

Currently categorizing data seems more important to the whats related feature than anything else. And while I think that feature is useful, it is more window dressing than anything else. Categorizing both the content as well as groups should be a priority.

Groups as they stand right now serve little purpose. Without tying Approval to specific modules and specific groups, the group feature has little to no power. Here is an example of what it should do.

A group is created with 3 members. Lets call the group Financial Aid. This group gets categorized as well. We will call the category financialaid. The group can then only edit content in the financialaid category, and all new content is assigned to that category, unless another category is added to the group. The you could choose from 2,3,4 categories, depending on how many are assigned to a particular group.

One user in the group has approval. The other two can create/edit content. The user with approval is sent an e-mail that that content needs to be approved. This content goes into a holding area. The old content stays available to the general public until the new content is approved. This would apply to all content modules, including 3rd party modules.

Approval would also be filtered. If a user has approval, but then only has rights to Article Manager, but not Blockmaker or Calendar, then that user only sees Articles in his her group to approve. It would act more like a filter than a restriction, show the user with approval only the content they need to see. In essence managing the content better.

Currently Calendar items get posted accross groups? René has re-written the Calendar module to allow it to filter by category. In this regard, the Calendar should behave in the exact same manner as Articles, Blocks, Announcements or Webpages. Why Groups are brought into this seems a mystery. Categories should be the driving force behind ALL content.

phpWebSite as an application frame work

The developement team is proud of its code. And it should be. Since the initial release 0.6, every major phpWebSite release involved a big rewrite of the core. Modules of 0.8 for example are not compatible to 0.9.

Still there is enough room for improvement. One might think that there is not enough developement capacity for the core. Different to most known open source projects, open patches can be found for as long as 2 years ago. The status of patches is unclear, some seem to be included in the core already but one cannot tell for sure.

Developing new modules

Developing new modules is a tendious task. For the most basic functions, like showing tabular data in lists, there are a lot of different APIs that are incompatible to each other. You want to do a html-form? Choose one of three different approaches. The not-yet-scheduled 1.0 release of phpWebSite will be incompatible to the current apis but have a compatibility layer.

The APIs is not final, so technically speaking phpWebSite is still Alpha (not even Beta) -- far away from a productive release. Am I unpatient? Maybe.

Fact is, no API means a discouraging of module developement. And applications are -- in a similar manner like ease of use -- what most people want to use software for.

Top Down approach

Right now, it seems that phpWebSite is developed from a bottom-up approach. There are experiments regarding the core, APIs are rewritten all the time and there is no current documentation. Writing new documentation is also pointless, so is serious module developement.

A different approach would be top-down. There would be one API, roughly implemented and ready to use for all developers. Modules would be written in parallel to the core developement. The core would be improved all the time under the hood and at the same time, wonderful new modules would be created.

This approach would require a stable, easy to use but yet flexible API (not a stable core). The easier the API is to use (and I am not writing about performance here) the more it would encourage people to write modules. A good API with a good documentation would allow good modules.

Not hacked ones like seen all over phpWebSite which implement centralized features all over again.

Module developement guidelines

It would be great, if modules would APIs themselves. With callbacks. One could then extend modules very easily and recycle their methods. Take for example "Add one entry to calendar", "Store one photo into the photoalbum" or "Resize one photo to a certain size".

Right now, it is impossible to reuse these methods. The code is very confusing, again, there is no way of accessing these methods outside the module itself.

It would be great to have some kind of developer forum. One that is not only open to geeks like Sourceforge. But more a classic web forum that would also encourage hobby-developers to write modules. Again: The more modules, the more flexible, the more people will find useful modules.

How about for example webmail, webalizer for phpWebSite, phpmyadmin for phpWebSite, phpldapadmin for phpWebSite, and so on.

Central Method repository

Such APIs could be maintained from a central instance dedicated to doing so. One would enter "photo" and get all the APIs providing photo-methods in return.

Including photo-uploads to a forum, for example, would be as easy as a single method call. As soon as the photo-upload in photoalbums would be improved, the forum-photo-upload would be improved as well.

No need to reinvent the wheel all over again.


Last modified 2005-04-06 20:38 by rck