Ella tries to keep the core framework as lightweight as possible. This has very good reasons:
- it let's what is required for your app to your decision
- it minimizes the dependencies of core application
- it makes the development faster, because you can enhance your module while not needing to update the rest of the code
Because of this philosophy, plugins were introduced in version 3.0.0.
Where to get 'em?
Currently, there are only plugins that were created by us directly. 3rd party plugins are hopefully on the way -- it depends more o less on you, Mr. Reader :)
Our plugins can be found in our GitHub repository. Here is a list of some interesting ones:
- Newman - use admin forged directly for Ella needs
- Tagging - provides tagging functionality
- Comments - simple threaded comments
- Galleries - create galleries from your photos
- Polls - let users vote for things and compete
- Imports - load stuff from other sites
- Series - create series from articles covering same topic
Basic plugin structure
All Ella plugins come as Django applications bundled using setuptools. Each plugin has dependency on the Ella's core, so Ella is always required and plugins can hardly be used without it.
As Ella provides significant flexibility, plugins are able to do quite a lot of magic, like following:
- Define custom
Publishableobjects via subclassing. For more details, see :ref:`plugins-subclassing-publishable`.
- Extend actions performed over the
Publishableobjects, for details, see :ref:`plugins-overriding-publishable-urls` section.
- Create custom
Boxclassess for fine-tuned includes. This is discussed in detail in section :ref:`plugins-custom-boxes`.
- Provide additional methods of listing
Publishableobjects for a category, see :ref:`plugins-listing-handlers`.
- Define related finder functions to get related
Publishableinstances, see :ref:`plugins-related-finders`.
.. toctree:: :maxdepth: 2 :glob: models boxes custom_urls listing_handlers related_finders