blob: 343712a66dacbb7ce25cdc0a9a743c07b063f05d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
Vinculación externa de proveedores
==================================
Esta funcionalidad le permite vincular una tarea a los elementos adicionales almacenados en otro sistema.
Por ejemplo, tu puedes vincular una tarea a:
For example, you can link a task to:
- Una pagina web tradicional
- Datos adjuntos (Documentos PDF almacenados en la web, archivos ...)
- Cualquier sitema de tickets (bug tracker, soporte personalizado de tickets...)
Cada item tiene un tipo, u na URL, un tipo dedependencia y un titulo.
Por default,Kanboard incluye dos tipos de proveedores
- Vinculación Web : Copiar y pegar un enlace y Kanboard se ha podido ir a la página de título de forma automática.
- Datos adjuntos: Enlace a todo lo que no es una página web
Flujo de trabajo ** Workflow **
--------------------------------
1. El usuario final copia y pega el URL al submit del formulario.
2.- Si el tipo de link es "auto", Kanboard crea un bucle a través de todos los proveedores registrados hasta que hay una coincidencia
3. Entonces , el proveedor de enlace devuelve un objeto que implementa la interfaz de `ExternalLinkInterface`
4. El formulario se muestra al usuario con todos los datos precargados antes de guardar el enlace
Interfaces
----------
Para implementar un nuevo vinculo al proveedor desde un plugin, es necesario crear 2 clases que implementarlas en las interfaces:
- `Kanboard\Core\ExternalLink\ExternalLinkProviderInterface`
- `Kanboard\Core\ExternalLink\ExternalLinkInterface`
### ExternalLinkProviderInterface
| Method | Usage |
|----------------------------|---------------------------------------------------------------------------------|
| `getName()` | Obtener el nombre del proveedor(label) |
| `getType()` | Obtener el tipo de link (se guardarán en la base de datos) |
| `getDependencies()` | Obtener un diccionario de los tipos de dependencia soportados por el proveedor |
| `setUserTextInput($input)` | Texto introducido por el usuario |
| `match()` | Regresa true si el proveedor puede analizar correctamente la entrada del usuario|
| `getLink()` | Obtener el enlace que se encuentra con las propiedades |
### ExternalLinkInterface
| Method | Usage |
|-------------------|-----------------------------|
| `getTitle()` | Obtiene un titulo de link |
| `getUrl()` | Obtiene una link de URL |
| `setUrl($url)` | URL del enlace |
El registro de un nuevo proveedor de enlace
------------------------------------------
En tu `Plugin.php`, solo puedes llamar al metodo `register()` desde el objeto `ExternalLinkManager`:
```php
<?php
namespace Kanboard\Plugin\MyExternalLink;
use Kanboard\Core\Plugin\Base;
class Plugin extends Base
{
public function initialize()
{
$this->externalLinkManager->register(new MyLinkProvider());
}
}
```
Ejemplos
--------
- Kanboard incluye proveedores por default "WebLink" y "Attachment"
|