summaryrefslogtreecommitdiff
path: root/doc/es_ES/plugin-registration.markdown
diff options
context:
space:
mode:
authorFrédéric Guillot <fred@kanboard.net>2018-04-06 10:54:58 -0700
committerFrédéric Guillot <fred@kanboard.net>2018-04-06 10:54:58 -0700
commit0b306fa60ad84ea077111e0ff7b59208ba7bc8a3 (patch)
tree5d8941b5950ede2db8ca3fba0213792db0f07a50 /doc/es_ES/plugin-registration.markdown
parentac11220a1aa7ae30b8827d9bbf221888d3edd0a7 (diff)
Move documentation to https://docs.kanboard.org/
Diffstat (limited to 'doc/es_ES/plugin-registration.markdown')
-rw-r--r--doc/es_ES/plugin-registration.markdown160
1 files changed, 0 insertions, 160 deletions
diff --git a/doc/es_ES/plugin-registration.markdown b/doc/es_ES/plugin-registration.markdown
deleted file mode 100644
index 5031427f..00000000
--- a/doc/es_ES/plugin-registration.markdown
+++ /dev/null
@@ -1,160 +0,0 @@
-Registracion de Plugin
-======================
-
-Estructura del directorio
---------------------------
-
-Los Plugins estan almacenados en el subdirectorio `plugins. Un ejemplo de estructura del directorio de un plugin:
-
-```bash
-plugins
-└── Budget <= Plugin name
- ├── Asset <= Javascript/CSS files
- ├── Controller
- ├── LICENSE <= Plugin license
- ├── Locale
- │ ├── fr_FR
- │   ├── it_IT
- │   ├── ja_JP
- │   └── zh_CN
- ├── Model
- ├── Plugin.php <= Plugin registration file
- ├── README.md
- ├── Schema <= Database migrations
- ├── Template
- └── Test <= Unit tests
-```
-
-Solamente el archivo de registración `Plugin.php` es requerido. Las otras carpetas son opcionales.
-
-La primera letra del nombre del plugin debe ser capitalizada.
-
-Archivo de registración del plugin
-----------------------------------
-
-Kanboard Kanboard escaneará el directorio `plugins` y cargara automaticamente todo en este directorio. el archivo `Plugin.php` se utiliza para cargar y registrar el plugin.
-
-Ejemplo del archivo `Plugin.php` (`plugins/Foobar/Plugin.php`):
-
-```php
-<?php
-
-namespace Kanboard\Plugin\Foobar;
-
-use Kanboard\Core\Plugin\Base;
-
-class Plugin extends Base
-{
- public function initialize()
- {
- $this->template->hook->attach('template:layout:head', 'theme:layout/head');
- }
-}
-```
-
-Este archivo debera contener una clase `Plugin` se define en el namespace `Kanboard\Plugin\Yourplugin` y extiende `Kanboard\Core\Plugin\Base`.
-
-El único método requerido es `initialize()`. Este método se llama para cada petición cuando el plugin es cargado.
-
-Metodos del plugin
---------------
-
-Los métodos disponibles son `Kanboard\Core\Plugin\Base`:
-
-- `initialize()`: ejecuta cuando el plugin es cargafo
-- `getClasses()`: Regresa todas las clases que se deben almacenar en el contenedor de inyección de dependencias
-- `on($event, $callback)`: Escucha eventos internos.
-- `getPluginName()`: devuelve el nombre del plugin.
-- `getPluginAuthor()`: Devuelve el autor del plugin.
-- `getPluginVersion()`: Devuelve la versíon del plugin.
-- `getPluginDescription()`: Devuelve la descripcion del plugin.
-- `getPluginHomepage()`: Devuelve la pagina inicial del plugin (link)
-- `setContentSecurityPolicy(array $rules)`: Reescribe las reglas por default del HTTP CSP.
-- `onStartup()`: Si está presente este método, se ejecuta automáticamente cuando el evento "app.bootstrap" se dispara.
-
-Su registro de plugin tambien puede heradar de la clase Kanboard\Core\Base, de esta manera se puede acceder a todas las clases y los métodos de Kanboard facilmente.
-
-En este ejemplo se obtendrá el usuario #123:
-
-```php
-$this->user->getById(123);
-```
-
-Plugin de traducción
--------------------
-
-Este plugin se puede traducir en la misma forma que el resto de la aplicación . Debe cargar las traducciones a sí mismo cuando se crea la sesión :
-
-```php
-public function onStartup()
-{
- Translator::load($this->languageModel->getCurrentLanguage(), __DIR__.'/Locale');
-}
-```
-
-Las traducciones deben ser almacenadas en el archivo `plugins/Myplugin/Locale/xx_XX/translations.php` (remplazar xx_XX por el codigo del lenguaje fr_FR, en_US...).
-
-Las traducciones estan almacenadas en un diccionario, Si desea sobreescribir una cadena existente, sólo tiene que utilizar la misma clave en el archivo de traducción.
-
-Inyección de dependencias de contenedores
-------------------------------
-Kanboard utiliza la Pimple , un simple inyección de contenedores de dependencia PHP . Sin embargo , Kanboard puede registrar cualquier clase en el contenedor fácilmente.
-
-Estas clases están disponibles en todas partes en la aplicación y se crea una única instancia .
-
-Aquí un ejemplo para registrar sus propios modelos en el contenedor:
-
-```php
-public function getClasses()
-{
- return array(
- 'Plugin\Budget\Model' => array(
- 'HourlyRateModel',
- 'BudgetModel',
- )
- );
-}
-```
-
-Ahora bien, si se utiliza una clase que se extiende desde `Core\Base`, tu puedes acceder directamente cualquier instancia de la clase:
-
-```php
-$this->hourlyRateModel->remove(123);
-$this->budgetModel->getDailyBudgetBreakdown(456);
-
-// It's the same thing as using the container:
-$this->container['hourlyRateModel']->getAll();
-```
-
-Llaves de los contenedores son únicos a través de la aplicación . Si reemplaza una clase existente , que va a cambiar el comportamiento por defecto .
-
-Agregar un metodo nuevo en la API
----------------------------------
-
-Kanboard usa la libreria [JSON-RPC](https://github.com/fguillot/JsonRPC) para manejar las llamadas de la api.
-
-Para agregar un nuevo metodo tu puedes que puede hacer algo para llamar a tu plugin:
-
-```php
-$this->api->getProcedureHandler()->withCallback('my_method', function() {
- return 'foobar';
-});
-```
-
-`$this->container['api']` or `$this->api` expose an instance of the object `JsonRPC\Server`.
-
-Leer la documentacion de la libreria para mas información.
-
-Agregar una nueva consola de comandos
---------------------------------------
-
-Kanboard usa la libreria [Symfony Console](http://symfony.com/doc/current/components/console/introduction.html) para manejar las lineas de comandos.
-
-Kanboard genera una instancia del objeto `Symfony\Component\Console\Application` via `$this->cli`.
-Tu puedes agregar nuevos comandos desde tu plugin:
-
-```php
-$this->cli->add(new MyCommand());
-```
-
-Lea la documentación de la biblioteca para obtener más información.