[TYPO3-community] Community Plugin - Current State

Ingo Renner ingo at typo3.org
Tue Sep 25 09:22:06 CEST 2007


Hi all,

I've until now been a silent group watcher. Anyways today I'd like to 
give some advice to get the best out of your efforts for the community 
and preservinf the "TYPO3 feeling" and best practices...

I really like your idea of having a set of community feature extensions!

typo3.org will soon be getting a lot more community features, which is 
just another reason taht makes me interested in your efforts and to team 
up with you!


Michael Knoll wrote:

> after I wrote my last test for this holidays last friday, Lars and I 
> started to write the first lines of code for the community extension. We 
> decided to use lib/div although it's really a hard piece of work to get 
> through the code and to find out how everything works. As Elmar 
> explained to me, it's still alpha.
> 
> We try to set up a basic extension with most of the wishes you posted on 
>  the wiki.

To make maintainance easy and smooth I suggest you split things up into 
multiple extension like the following:

community or community_core (collecting all base functions for the other 
extensions)
community_feuserregister
community_messages
community_buddies

community_whatever ...

History has shown that it really gets hard to maintain a big extension. 
I for myself can tell that from TIMTAB, a recent example is commerce and 
a rather good example would be DAM (the way features are split into 
separate extesions, not the development process ;-)

Also to make it easy to remember what which plugin does: In commerce and 
TIMTAB we did the mistake to put a lot of plugins and mods in one 
extension without naming them. The result is pi1...pi6, mod1 .... modX - 
now which one does what? In fact xou can choose whatever name you want, 
go for it! A good thing which an upcoming version of the kickstarter 
will do also is using prefixes: piMessages, modUserAdmin ... so you can 
still distinguish between plugins and modules.

It also showed with TIMTAB and DAM already that it's good to have all 
extensions start with the same prefix (timtab_, dam_, commerce_). This 
makes it easily obvious that the extensions belong together. Also please 
  refrain from putting personal initials in front of extensions keys:
http://news.typo3.org/news/article/about-extension-maintainance/news/

> At the moment we are concentrating on the following functionality:
> 
> - User registration (first step is done via fe_user_registration)

One note: I couldn't find that extKey in TER, in case you meant 
sr_feuser_register, please do not use it because of Franz' update policy.


> - User settings and privacy settings (extending fe_users and creating a 
> own table for complex privacy settings)
> - User search

please also reuse functions from "standard" extensions, newloginbox has 
a search AFAIR.


> - A configurable user list to cope with any kind of user listing 
> (search-list, buddy-list, group-members-list, ...)

For newloginbox I  at least know that it has a listing plugin. This 
leads to the next advise: If there's already a "standard" extension, use 
it and contribute to it! In case of listing users I also could think of 
pulling the function out of newloginbox and moving it to 
community_userlisting... f.e. (Robert would talk of "separation of 
concerns" in TYPO3 5.0 speak ;-)

> The next step will be to put up groups. We decided to extend 
> fe_user_groups for that purpose and will put up some functionality that 
> enables users to join groups or to invite other users into groups etc.

great idea, we'll for sure use that for typo3.org!

> That will be the core of the extension. We are thinking about a kind of 
> a plugin concept to make the extension work with community-extensions to 
> get a modular concept, but that will be one of the later points.

I think if you do it like I suggested you can't do too much wrong here ...

> We also decided to put up the basic functionality with new extensions 
> based on lib/div as most of the old extensions are based on pibase. As 
> soon as there is a example-installation of it, we will send a link to 
> the list.

All cool!

One last thing: With TIMTAB I tried to unite the configuration of the 
plugins in a single namspace. That means that the core community 
extension would introduce a TS configuratin space 
"plugins.tx_community". The messaging options would go into 
plugins.tx_community.messages, user settings into 
plugins.tx_community.users and so on - even if users and messages are in 
different extensions then the core. This makes configuration more easy 
and logical.



all the best, have fun!
Ingo


P.S. I think I should put all this stuff in a new version of that 
extension maintainance article - what do you think, are those hints 
usefull, do they sound good?


More information about the TYPO3-project-community mailing list