diff options
author | Frédéric Guillot <fred@kanboard.net> | 2018-04-06 10:54:58 -0700 |
---|---|---|
committer | Frédéric Guillot <fred@kanboard.net> | 2018-04-06 10:54:58 -0700 |
commit | 0b306fa60ad84ea077111e0ff7b59208ba7bc8a3 (patch) | |
tree | 5d8941b5950ede2db8ca3fba0213792db0f07a50 /doc/es_ES/plugin-registration.markdown | |
parent | ac11220a1aa7ae30b8827d9bbf221888d3edd0a7 (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.markdown | 160 |
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. |