summaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorBernhard Posselt <nukeawhale@gmail.com>2013-06-06 00:05:48 +0200
committerBernhard Posselt <nukeawhale@gmail.com>2013-06-06 00:05:48 +0200
commit927658ba33f6c8268374b1f3e2c2b219d99376f0 (patch)
treeb387dacd4d998f671b29c8150028b29afa433b4f /docs
parenta19aedbec8749c0e944728d4c8d024a50e6d9d0d (diff)
move plugins docs into wiki
Diffstat (limited to 'docs')
-rw-r--r--docs/plugins.rst120
1 files changed, 0 insertions, 120 deletions
diff --git a/docs/plugins.rst b/docs/plugins.rst
deleted file mode 100644
index 6a77cc541..000000000
--- a/docs/plugins.rst
+++ /dev/null
@@ -1,120 +0,0 @@
-How to write plugins for the News app
-=====================================
-You've got this cool idea that you'd like the News app to have but the developers are pricks and don't want to implement it? Create a plugin!
-
-General plugin infos
---------------------
-A plugin is in essence a seperate app. You should first read the `intro <http://doc.owncloud.org/server/master/developer_manual/app/intro/createapp.html>`_ and `tutorial <http://doc.owncloud.org/server/master/developer_manual/app/appframework/tutorial.html>`_ and create the basic files.
-
-In addition to the basic structure you also want to make sure that the News app is enabled. To do that open :file:`my_news_plugin/appinfo/app.php` and add the following if:
-
-.. code-block:: php
-
- <?php
- namespace MyNewsPlugin;
-
- use \OCA\AppFramework\Core\API;
-
- if (\OCP\App::isEnabled('news') && \OCP\App::isEnabled('appframework')) {
-
- // your code here
-
- }
-
-Serverside plugin
------------------
-A serverside plugin is a plugin that uses the same infrastructure as the news app for its own purposes. An example would be a plugin that makes the starred entries of a user available via an interface or a bookmark app that that also shows starred articles as bookmarks.
-
-Its very easy to interface with the News app. Because all Classes are registered in the :file:`news/dependencyinjection/dicontainer.php` it takes almost no effort to use the same infrastructure.
-
-Since you dont want to extend the app but use its resources, its advised that you dont inherit from the **DIContainer** class but rather include it in your own container in :file:`my_news_plugin/dependencyinjection/dicontainer.php`:
-
-.. code-block:: php
-
- <?php
- namespace OCA\MyNewsPlugin\DependencyInjection;
-
- use \OCA\AppFramework\DependencyInjection\DIContainer as BaseContainer;
- use \OCA\News\DependencyInjection\DIContainer as NewsContainer;
-
- class DIContainer extends BaseContainer {
-
-
- /**
- * Define your dependencies in here
- */
- public function __construct () {
- // tell parent container about the app name
- parent::__construct('my_news_plugin');
-
- $this['NewsContainer'] = $this->share(function ($c) {
- // make the newscontainer available in your app
- return new NewsContainer();
- });
-
- $this['YourController'] = $this->share(function ($c) {
- // use the feedbusinesslayer from the news app
- // you can use all defined classes but its recommended that you
- // stick to the mapper and businesslayer classes since they are less
- // likely to change
- // also dont use controllers from the news app!
- return new YourController($c['NewsContainer']['FeedBusinessLayer']);
- });
- }
-
-
- }
-
-Using this method you can basically access all the functionality of the news app in your own app.
-
-Clientside plugin
------------------
-A clientside plugin could either be a new interface for the news app or a script that enhances the current app.
-
-Custom script
-~~~~~~~~~~~~~
-To add a simple script create the script in the :file:`my_news_plugin/js/script.js`, then use this inside your :file:`my_news_plugin/appinfo/app.php`:
-
-.. code-block:: php
-
- <?php
- namespace MyNewsPlugin;
-
- use \OCA\AppFramework\Core\API;
-
- if (\OCP\App::isEnabled('news') && \OCP\App::isEnabled('appframework')) {
-
- $api = new API('my_news_plugin');
- $api->addScript('script.js'); // add a script from js/script.js
- $api->addStyle('style.css'); // add a stylesheet from css/styles.css
-
- }
-
-Inside your script you have to make sure that the News app is active. You can do that by using:
-
-.. code-block:: js
-
- (function ($, window, undefined) {
- 'use strict';
-
- $(window.document).ready(function () {
- if ($('[ng-app="News"]').length > 0) {
-
- // your code here
-
- }
- });
-
- })(jQuery, window);
-
-
-Custom user Interface
-~~~~~~~~~~~~~~~~~~~~~
-This is currently not yet possible to do but we're working on it ;)
-
-These issues need to be implemented:
-
-* `Implement RESTful urls for the web backend <https://github.com/owncloud/news/issues/166>`_
-* `Move configuration into a config file instead of hard coding it in the container <https://github.com/owncloud/news/issues/167>`_
-* `Transition to Twig Templates <https://github.com/owncloud/news/issues/165>`_
-* `Seperate directives, filters, controllers and services into their own angularjs containers <https://github.com/owncloud/news/issues/164>`_ \ No newline at end of file