[TYPO3-community] Community Plugin - Current State

Michael Knoll mimi at kaktusteam.de
Wed Sep 26 00:17:46 CEST 2007


Ingo Renner wrote:
> 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 ...
> 

We are already doing that. At the moment we are planning to put up a 
community-core package, with all the basic functionality and three 
"core-extensions"

community_user
community_group
community_messaging

If you think, that these packages are still "too big" we could discuss 
about dividing them.

> 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.

Think the naming problem got better with lib/div, as you have multiple 
controllers, which are self-explaining by their names. But I can see the 
problems, I think.
> 
> 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/

The prefix is not fixed yet. I didn't want to use a general ext_key like 
community, as I only wanted to play arround until we bring up something 
that's worth the key :-)
> 
>> 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.
> 
I was thinking about sr_feuser_register. I only wanted to use that 
extension at the beginning, to get the whole thing to work, without 
needing so much time. Bit by bit, I want to rewrite all extensions, 
which are not based on lib/div.
> 
>> - 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.

Ok - the search I want to implement is a little more complex at the end, 
  as I would like to search for users, which have similarities in their 
profiles... But I will take a look at newloginbox

> 
> 
>> - 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 same problem as above, as I wanted to make the list as generic as 
possible and use it in different places (buddies list, search-result, 
group members list... always with a "add" and a "remove" link, if needed.
> 
>> 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.

Ok - as I started to use timtab a few weeks ago, I took a closer look on 
the way, you do the configuration, and I think, I will copy a little :)
> 
> 
> 
> 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?

Yes - that would be very helpful. I also started to document all the 
steps I made with lib/div, perhaps it is useful for a 
"Extension-Writing-with-lib/div-tutorial"

Where can I get the extension-maintainance article from?

Regards

Mimi


More information about the TYPO3-project-community mailing list