TY - GEN AU - COSTELLO, CASH TI - ELGG 1.8 SOCIAL NETWORKING: CREATE, CUSTOMIZE, AND DEPLOY YOUR VERY OWN SOCIAL NETWORKING SITE WITH ELGG SN - 978-93-5023-932-2 U1 - 005.133 PY - 2012/// CY - MUMBAI PB - SHROFF PUBLISHERS & DISTRIBUTORS PVT. LTD. KW - SOCIAL NETWORKING KW - OPEN SOURCE SOFTWARE N1 - Table of Contents Preface Chapter 1: Social Networking and Elgg Chapter 2: Installing Elgg Chapter 3: A Tour of Your First Elgg Site Chapter 4: Sharing Content Chapter 5: Communities, Collaboration, and Conversation Chapter 6: Finding and Using Plugins Chapter 7: Creating Your First Plugin Chapter 8: Customization through Plugins Chapter 9: Theming Elgg Chapter 10: Moving to Production Appendix A: Developer's Quick Start Guide Appendix B: Views Catalog Index Preface Up Chapter 1: Social Networking and Elgg Social features Profiles Relationships Content sharing Activity and notifications Groups Communication What is Elgg? The Elgg engine User management Privacy controls Theming Commenting Tagging Widgets Internationalization Feeds Web services The power of plugins Bundled plugins Third-party plugins Themes Building your own plugins Case studies Niche social network Designing and building the site Deploying the site Plugins mentioned Corporate intranet Designing and building the site Deploying the site Plugins mentioned Educational collaboration Designing and building the site Deploying the site Plugins mentioned Elgg resources Elgg community Elgg wiki Developer resources A few words of advice Take notes Save resources Be methodical Finding help Summary Up Chapter 2: Installing Elgg Preparing the server Checking requirements Downloading the latest version Extracting the files Moving files to your web server directory Configuring the server Create the database Run Elgg's installer Loading the database Configure Elgg Creating the admin account All done! Summary Up Chapter 3: A Tour of Your First Elgg Site Getting around Registering users User profiles and avatars Profile information Avatar Profile widgets Friends Activity stream Tools Blogs Bookmarks Files Groups Pages Messages The wire User settings Your settings Tools Notifications Administration Activating plugins Site categories Custom profile fields Default widgets Site pages Reported content Customizing your site User registration and authentication Widgets Friendship model Roles Help and support Summary Up Chapter 4: Sharing Content Blogs Creating a blog post Embedding photos and files Publishing Finding and viewing Search Lists of blog posts RSS feeds Widget Commenting Use cases Customizations Bookmarks Adding a bookmark Bookmarklet Viewing Use cases File Uploading a file Viewing Use cases Customizations The wire Posting Viewing Twitter integration Use cases Customizations Summary Up Chapter 5: Communities, Collaboration, and Conversation Groups Creating a group Group profile Membership Discussion forum Group tools Finding groups Use cases Customizations Pages Creating pages Viewing Use cases Customizations Messages Inbox Composing Customizations Message board Customizations Summary Up Chapter 6: Finding and Using Plugins Plugin administration Filtering and sorting Plugin dependencies Plugin settings Finding plugins Browsing the repository Searching Evaluating before downloading Look at the plugin overview Read the comments Check the history Custom plugins Installing plugins Test server Copying the code Activating and configuring Invalid plugin? Troubleshooting Themes Finding and installing themes Free themes Commercial themes Custom themes Installing themes Major community plugins Tidypics Plugin profile Administration Uploading photos Viewing photos Tagging photos Event calendar Plugin profile Administration Site calendar Group calendar Profile Manager Plugin profile Adding profile fields Configuring the profile fields Plugin settings Summary Up Chapter 7: Creating Your First Plugin What you need to know Elgg developer resources Setting up your development environment Editing code Configuring your site Hello, World! Plugin skeleton Create your plugin directory Plugin manifest Start script Activating the hello world plugin Register for the init, system event Adding a new route Creating a web page Update routing Add to the site menu Extending the page handler Add a sidebar menu Language support Personalizing the content Organizing your content into views A greeting view A stats view Review Debugging Debugging to the log Debugging to the screen Debugging PHP through an IDE Firebug and other browser development tools Elgg developer tools Inspect Theming sandbox Summary Up Chapter 8: Customization through Plugins Lesson 1: Changing wording Problem Solution Example Step 1: Create the plugin structure Step 2: Find the language strings Step 3: Override the language string Exercise Lesson 2: Modifying a section of a page Problem Solution Example Step 1: Find the view to override Step 2: Create the plugin structure Step 3: Edit the logo view Step 4: Style the header Exercise Lesson 3: Adding new content to a page Problem Solution Example Step 1: Find the view to extend Step 2: Create the plugin structure Step 3: Build our view Step 4: Make the tips random Exercise Lesson 4: Doing something when X happens Problem Solution Example Step 1: Find the event Step 2: Create the plugin structure Step 3: Write the function that sends the e-mail Exercise Lesson 5: Creating a custom widget Problem Solution Example Step 1: Create the plugin structure Step 2: Create the widget edit view Step 3: Create the widget content view Exercise Lesson 6: Giving your users options Problem Solution Example Step 1: Create the plugin structure Step 2: Add user settings Step 3: Create the toolbar view Step 4: Add CSS Exercise Lesson 7: Adding JavaScript Problem Solution Example Step 1: Create the plugin structure Step 2: Load the JavaScript file Step 3: Add CSS and JavaScript initialization Exercise Lesson 8: Changing how Elgg does X Problem Solution Example Step 1: Create the plugin structure Step 2: Create the index page Step 3: Define the views Step 4: Add the CSS Step 5: Add a plugin setting Exercise Lesson 9: Collecting and storing data Problem Solution Example Overview Step 1: Create the plugin structure Step 2: Create the main help page Step 3: Create the categories Step 4: Add an administration page Step 5: Create the form body Step 6: Create the save action Step 7: Create the help category page Step 8: Create the help object view Step 9: Add the help sidebar Step 10: Add CSS for the topic listing page Step 11: Finish the main help page Exercise Summary Up Chapter 9: Theming Elgg What you need to know Theming basics Elgg's default theme HTML CSS JavaScript Graphics Views system What is a view? Extending a view Overriding a view Template language Caching The viewtype Tools CSS framework Creating abstractions of common visual patterns Customizing objects through extension classes Adding external JavaScript and CSS Menu system Registering a menu item Rendering a menu Comparing theming in WordPress to Elgg Building a theme Plugin structure Layout Default layout Page header Page body layout Page footer Moving the search box Styling the sidebar module Moving the site menu to the topbar Creating a mobile theme Plugin structure Layout CSS Summary Up Chapter 10: Moving to Production Selecting a server Performance considerations Competing for resources Usage patterns General guidelines for server selection Hosting options Shared hosting Virtual Private Server Dedicated server Cloud hosting Hosting company selection Configuring a server Apache PHP MySQL Cron E-mail Managing the site Backup Code Database Files Server configuration Restoring Log rotation Spam Registration Detecting spammers Web analytics Daily tasks Monitoring user registration Reviewing reported content Responding to feedback Community management Testing, upgrading, and moving a site Testing Mirroring the production site Test plan Upgrading Moving a site Performance Benchmarking Monitoring and data collection Stress testing Easy performance gains Advanced performance tuning and scaling Caching Multiple servers Resources Reporting bugs Steps to reproduce the problem Elgg or plugin? Reporting the bug Summary Up Appendix A: Developer's Quick Start Guide Overview of Elgg as a framework What is Elgg? Object-oriented or procedural? Does it use the Model-View-Controller pattern? Convention or configuration? Is it extensible? What template engine is used? A Model-View-Controller perspective of Elgg Overview Controllers Model Views Routing Code location Actions Code location Page handlers Code location Framework booting Code location Data model Entities Type and subtype GUID Owner Container Access Database Relationships Extenders Database Retrieval functions Code location Views View templates Page shells and layout View type Overriding and extending views Special views Code location Events and hooks Elgg events Plugin hooks Code location Plugins Initialization Plugin order Conventions Themes Code location Activity stream Code location Notifications Code location Internationalization and localization Code location Lightning round Authentication Caching Configuration Debugging and logging JavaScript Menus Private settings Search Security Session handling Unit tests Web services Widgets Summary Up Appendix B: Views Catalog Using views Page structure Shells Layouts Elements Topbar Header Sidebar Footer Owner block Status messages Comments Search box Components Gallery Image block List Module Navigation Breadcrumbs Pagination Menus Topbar menu Site menu Page menu Footer menu User hover menu Entity menu Tabs Forms Input Access Buttons Checkboxes Date Drop-down selector File upload Hidden input Large textarea Password Radio buttons Textbox User pickers Output Date E-mail address Link Tag cloud Tags Text The form Users, groups, and objects Activity stream Likes Like this List users Widgets Administration Summary N2 - An updated version of the very first book on Elgg Detailed and easy-to-understand analysis on building your very own social networking site with Elgg Explore the vast range of Elgg's social networking capabilities including communities, sharing, profiles and relationships Learn to create plugins and themes with extensive tutorials Written by Cash Costello, a core developer of the Elgg team, with a foreword from Dave Tosh, Elgg co-founder. ER -