development.rst 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. Developer Overview
  2. ##################
  3. This is a quick developer introduction to Elgg. It covers the basic approach to working with
  4. Elgg as a framework, and mentions some of the terms and technologies used.
  5. See the :doc:`/guides/index` for tutorials or the :doc:`/design/index` for in-depth discussion on design.
  6. Database and Persistence
  7. ========================
  8. Elgg uses MySQL 5.5 or higher for data persistence, and maps database values into Entities (a
  9. representation of an atomic unit of information) and Extenders (additional information and
  10. descriptions about Entities). Elgg supports additional information such as relationships between
  11. Entities, activity streams, and various types of settings.
  12. Plugins
  13. =======
  14. Plugins change the behavior or appearance of Elgg by overriding views, or by handling events and plugin hooks.
  15. All changes to an Elgg site should be implemented through plugins to ensure upgrading core is easy.
  16. Actions
  17. =======
  18. Actions are the primary way users interact with an Elgg site. Actions are registered by plugins.
  19. Events and Plugin Hooks
  20. =======================
  21. Events and Plugin Hooks are used in Elgg Plugins to interact with the Elgg engine under certain
  22. circumstances. Events and hooks are triggered at strategic times throughout Elgg's boot and execution
  23. process, and allows plugins to modify or cancel the default behavior.
  24. Views
  25. =====
  26. Views are the primary presentation layer for Elgg. Views can be overridden or extended by Plugins.
  27. Views are categories into a Viewtype, which hints at what sort of output should be expected by the
  28. view.
  29. JavaScript
  30. ==========
  31. Elgg uses an AMD-compatible JavaScript system provided by require.js. Bundled with Elgg are jQuery
  32. 1.11.0, jQuery UI 1.10.4, jQuery Form v20140304, jQuery jeditable, and jQuery UI Autocomplete.
  33. Plugins can load their own JS libs.
  34. Internationalization
  35. ====================
  36. Elgg's interface supports multiple languages, and uses `Transifex`_ for translation.
  37. Caching
  38. =======
  39. Elgg uses two caches to improve performance: a system cache and SimpleCache.
  40. .. _Transifex: https://www.transifex.com/projects/p/elgg-core/