Your SlideShare is downloading. ×
'Best Practices for Elgg Plugin Developers' Cash Costello #ECSF
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

'Best Practices for Elgg Plugin Developers' Cash Costello #ECSF

9,480
views

Published on

Published in: Education, Technology

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
9,480
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
13
Comments
0
Likes
1
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. Best Practices for Elgg Plugin Developers Cash Costello ElggCamp San Francisco
  • 2. Best Practices for Elgg Plugin Developers Cash Costello ElggCamp San Francisco
  • 3. About MeElgg core developerAuthor of Elgg Social Networking 1.8Employed by Johns Hopkins University Applied Physics Laboratory (JHU/APL)R&D in machine learningDriving force behind JHU/APLs collaborative platform built on Elgg
  • 4. 1. Namespace your functions, classes, actions, views, CSS, JavaScript
  • 5. 2. Make dependencies between plugins explicit Plugin manifest, function_exists(), elgg_is_active_plugin()
  • 6. 3. Create a site customization plugin as a catch all for small modifications Maintain a readme with list of customizations!
  • 7. 4. Keep your plugins start.php trimelgg_register_library(), elgg_load_library(), class with static methods
  • 8. 5. Use inheritance with Elggs data modelRemember to unregister your class when your plugin is disabled using the deactivate.php script with update_subtype()
  • 9. 6. Document what metadata is used with your entities@property in documentation of class or use getter/setter methods
  • 10. 7. Avoid using many metadata key-value pairs with elgg_get_entities*()
  • 11. 8. Use Elggs functions and classes when interacting with the data model
  • 12. 9. Be aware that setting metadata on an entity clears Elggs database cache
  • 13. 10. Use relationships to connect entitiesNot metadata!
  • 14. 11. Do not create large views
  • 15. 12. Create views that correspond to visual elementsAlso look for common elements that can be reused
  • 16. 13. Use the core views and CSS classes whenever possible
  • 17. 14. Learn the principles behind Elggs new HTML/ CSS Example: CSS selectors should not cross element boundaries
  • 18. 15. Test with non-admin user and while logged out