[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