# sfSocialPlugin ## Overview This plugin adds social network capabilities to your project's users. So, in example, your users will be able to mutually add as contact, send and receive messages, create groups, manage events, receive notifications about all this stuff, and so on. ## Demo A working demo is online at http://symfony.altervista.org/social/web/index.php [[Image(http://symfony.altervista.org/_altervista_ht/sfSocial.png)]] ## Installation To install: cd plugins; svn co http://svn.symfony-project.com/plugins/sfSocialPlugin/trunk sfSocialPlugin The package depends on sfGuardPlugin, as users are managed by it. ## Usage Enable plugins in your `ProjectConfiguration` class [php] // config/ProjectConfiguration.class.php public function setup() { // possibly add other plugins here... $this->enablePlugins(array('sfGuardPlugin', 'sfSocialPlugin')); } Enable modules in you application settings [yml] # apps/frontend/config/settings.yml enabled_modules: [sfGuardAuth, sfSocialContact, sfSocialMessage, sfSocialEvent] # this list is not complete: customize on your needs In you application `lib/myUser.class.php`, set class to extend `sfSocialSecurityUser` Edit `plugins/sfGuardPlugin/lib/model/sfGuardUser.php` and set class to extend `sfSocialGuardUser` instead of `PluginsfGuardUser` ## Roadmap Currently Contact, Message, and Event modules are working, with funcional tests. The project aims to fully implement: * **Contact** system (aka friends system): search for other users, request contact, accept/deny contact request, see list of your contacts, categorize contacts in groups, see contacts of other users, see contact shared with other users, see "degrees of separation" * **Message** system: send a message, read received messages, reply to a message. * **Group** system: create a group, invite users to join, manage groups. * **Event** system: create an event, invite users to partecipate, confirm partecipation (yes/no/maybe) * **Comment** system: write commments, reply to comments. For groups, events and maybe for something else. * **Notification** system: a glue for all other systems. Notify your contacts when you do an action (add a contact, create an event, etc.)