Your SlideShare is downloading. ×
T3DD12  community extension
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

T3DD12 community extension

2,054
views

Published on

Published in: Technology, Business

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,054
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. EXT:Community Tymoteusz Motylewski T3DD12
  • 2. Tymoteusz MotylewskiAOE mediaWiesbadenTYPO3 & MagentoTwitter: @tmotylMail: t.motylewski@gmail.com
  • 3. You?!• Have you played around with Community?• What are you interested in?• Do you have Extbase experience?
  • 4. EXT:Community• Started around 2008 as pibase extension• Rewritten during GSoC 2010• Currently based on Extbase• Finally stable beta
  • 5. Where to find it?• Forge:http://forge.typo3.org/projects/show/extension-community• Mailing listhttp://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-project-communityor news://lists.typo3.org/typo3.projects.community• Git repositorygit://git.typo3.org/TYPO3v4/Extensions/community.git• Gerrit
  • 6. Websites running Community• Caremaid.net • Ambasadapiekna.pl http://www.flickr.com/photos/dieselbug2007/414348333/
  • 7. Features• Friends• Messages• Wall• Gallery• Simple search• Notification service• Access control configurable in TS• Easy to extend• Documentation!!!
  • 8. Not covered by Community• Registration• Access on a page level• Groups (but planned)
  • 9. Features - Profile• View• Edit• Delete• Report bad profile
  • 10. Features - Messages• Classic view – Inbox – Unread – Sent• Threaded view – List of conversations – Whole conversation with one user on one page
  • 11. Features – Relation management• Requesting, canceling, confirming friendship• List of friends• Possible states of the relationship: – New – Confirmed – Rejected
  • 12. Features - Wall• Posting messages• Smiles (requires ext. „smile”)• Deleting messages
  • 13. Features - Gallery• Gallery – Albums list – Photos list of one album• Album – Title – Cover image – Privacy settings• Special album with profile pictures
  • 14. Features – Notification service• Mail, private message, wall message….• Multiple notifications per event• Easy to use API$notification = new Tx_Community_Service_Notification_Notification( relationRequest, $this->requestingUser, $this->requestedUser );$notification->setFoo(„BAR”);$this->notificationService->notify($notification);• Configurable in TSrelationRequest {10 { template = RelationRequest handler = Tx_Community_Service_Notification_MailHandler serverEmail = {$plugin.tx_community.serverEmail}}}
  • 15. Features – Notification serviceWant to notify by SMS after receiving private message? 1. Create own notification handler which implements Tx_Community_Service_Notification_HandlerInterface - send() method is required e.g. Tx_CommunityLocal_Service_Notification_SmsHandler 2. Add typoscript configuration plugin.tx_community.settings.notification.rules { messageSend { 20 { handler = Tx_CommunityLocal_Service_Notification_SmsHandler } } }
  • 16. Architecture Architecture
  • 17. Architecture – Base controller• Base class for all controllers• Resolves requested and requesting user• Access control in initializeAction() – Return nothing if user has no access
  • 18. Architecture – Access control Types of access for different requests:Requesting Requested Are Access type Notes(logged in) user friendsuserNULL NULL - ACCESS_PUBLIC Public, guest access. No logged in user, no requested (target) user. Used e.g. for “list of 10 newest users”.NULL John - ACCESS_NOBODY Public, guest access, no logged in user. Public, but user specific plugins.Bill John NO ACCESS_OTHER Bill is logged in, but he is not a friend with JohnBill John YES ACCESS_FRIENDJohn John | NULL - Access granted by If requested user is not set, and we default. are logged in, then requestedUser = requestingUser – e.g. we are seeing our own profile
  • 19. Architecture – Access control• On action level• Configured in TS – Actions are mapped to „resource names” accessActionResourceMap { User { image = profile.image //image action from UserController edit = profile.edit } – Access rules are set for resource names accessRules.friend { profile.image.access = 1 profile.relation.access = 1}
  • 20. Roadmap• Use Ajax wherever possible• Privacy settings for user properties• Groups• Performance tuning• Notification queue• Advanced search• Standard image sizes defined in TS• Commenting on wall posts
  • 21. Workshop tasks• Installing community• Features/roadmap brainstorming• Discussion – groups handling – privacy settings• ???
  • 22. Privacy/access control challenges• Levels – Action level (MessageController->sendAction) – Record level e.g. user/ album – Record property level – $user->email, $user->name• Defaults – Global defaults: deny or allow – Defaults for table/record/property
  • 23. Privacy/access control challenges• Allow user to change his privacy settings• Easy to extend (new models, new controllers)• Fast• Transparent• Configured in single place• …
  • 24. Questions?Mail: t.motylewski@gmail.comTwitter: @tmotyl

×