Ayuda:Extensiones:DPL
La extensión DPL o DynamicPageList sirve para generar listas de páginas de forma dinámica, basadas en las categorizaciones de los artículos.
Lo que quiere decir de forma dinámica, en este contexto, es que la lista se crea con los resultados de una consulta que se realiza al software de mediawiki: por ejemplo, en vez de escribir todos los artículos uno a uno, se le pide a la wiki que nos haga una lista con todos los artículos que pertenecen a la categoría X.
La extensión es muy compleja y tiene muchísimas funcionalidades. Una lista completa de las posibilidades que ofrece y los usos se pueden consultar en la documentación original (en inglés) de la extensión:
Nota: El uso de esta plantilla está restringido a páginas protegidas, para evitar problemas de seguridad asociados al funcionamiento de la extensión. Esto quiere decir que sólo podrán hacer uso de ella los administradores de la wiki.
En este manual ofreceremos una guía breve y sencilla para realizar plantillas que construyan tablas simples a partir de una o varias categorías. Por una parte, se explicará cómo hacer listas sencillas. Por otro lado, veremos qué ofrece la extensión para construir y dar formato a una tabla que incluya una lista dinámica.
Contenido |
Uso básico
La extensión DPL se puede usar dos maneras:
- Función parser:
{{#dpl: .... }}
- Etiquetas:
<DPL> .... </DPL>
En este manual usaremos la función parser por ser más potente y porque el uso que se le va a dar es principalmente para crear plantillas.
Creación de listas: criterios de selección
Las listas se pueden crear especificando distintos criterios que han de cumplir los artículos que queremos listar. La información completa sobre estos criterios se puede encontrar en Criteria for page selection
Aquí vamos a describir los principales que usaremos: Categorías, enlaces y plantillas que se usan.
Categorías
En el siguiente ejemplo, la lista se crearía a partir de dos categorías: cat1 y cat2. El parámetro para que la función dpl reciba las categorías es category.
{{#dpl: category = cat1{{pipe}}cat2 }}
El uso de la metaplantilla {{pipe}} es necesario para el correcto tratamiento sintáctico de la función. La lista se creará con todos aquellos artículos que estén en la categoría cat1 o en la categoría cat2.
Si lo que pretendemos es listar aquellos artículos que estén en ambas categorías el ejemplo sería:
{{#dpl: | category = cat1 | category = cat2 }}
Para trabajar con jerarquías de categorías, existe la posibilidad de determinar niveles de búsqueda en las categorías, usando un asterisco antes de la categoría. El ejemplo buscaría articulos en la categoría cat1 y en sus subcategorías, hasta 2 niveles de profundidad.
{{#dpl: | category = **cat1 }}
En vez de poner el nombre completo de la categoría con category, podemos usar categorymatch para expresar condiciones que deben cumplir los nombres de las categorías que queremos usar en la lista (sintaxis SQL)
{{#dpl: | categorymatch=Habilidades%|Rasgos% }}
Por ejemplo de esa forma haríamos una lista con todos los artículos que pertenezcan a las categorías cuyo nombre empieza por las palabras Habilidades o Rasgos.
Por último, por si fuera necesario, también disponemos de notcategory y notcategorymatch.
Enlaces
Podemos listar páginas en función de los enlaces que contiene un artículo (linksfrom) o de las páginas que enlazan a una determinada (linksto)
Este ejemplo, que además usa una palabra mágica, listaría todas las páginas que estén en la categoría y que además estén enlazadas desde la página actual, sea cual sea.
{{#dpl: category = NombreCategoría | linksfrom = {{FULLPAGENAME}} }}
Este otro ejemplo, sin embargo, toma de la categoría, aquellos artículos que contienen enlaces a la página actual.
{{#dpl: category = NombreCategoría | linksto = {{FULLPAGENAME}} }}
Plantillas usadas
Podemos listar páginas que usen una determinada plantilla con uses
Este ejemplo, listaría todas las páginas que estén en la categoría y que además usen alguna de las plantillas que se especifican:
{{#dpl: | category = NombreCategoría | uses = Plantilla:CajaInfo{{pipe}}Plantilla:CajaNav }}
Formato y tablas
Para realizar tablas existe una sintaxis simplificada con table y tablerow.
En el siguiente ejemplo, se listan las páginas que usen la plantilla CajaHabilidad. La primera columna de la tabla es por defecto un enlace al nombre del artículo. Para recoger la información de las demás columnas de la tabla se usa una notación especial que se puede ver en el parámetro include.
Con table damos formato general a la tabla, y especificamos también las cabeceras de las columnas.
Con tablerow damos formato a las filas. Para ello, nos referimos al contenido recogido con el include mediante %%, y aplicamos los formatos y cambios que se deseen.
{{#dpl: |uses = Plantilla:CajaHabilidad |include = {CajaHabilidad}:prof, {CajaHabilidad}:tipo, {CajaHabilidad}:habilidad, {CajaHabilidad}:descripción |table = class="wikitable sortable bandas" id="banda" style="border:3px solid {{colorwiki|wiki}};",Habilidad,Profesión, Tipo, Icono, Descripción |tablerow = '''%%''',''%% '',[[Archivo:%%.jpg|link=|%%]], %% }}
Parámetros
Listar artículos de una categoría:
{{#dpl: |category=Una categoría }}
Ejemplo de uso
{{#dpl: |category=Ayuda |format=,\n* [[%PAGE%]], }}
- Categoría:Ayuda/Wiki
- Ayuda:Contenidos
- Categoría:Glosario
- Glosario
- Categoría:Preguntas frecuentes
- GuildWiki2:Sandbox
Ejemplo de uso con tablas
{{#dpl: |uses=Plantilla:CajaNav |namespace= Plantilla |include = {CajaNav}:title |table = class="wikitable sortable bandas" id="banda" style="border:3px solid {{colorwiki|wiki}};",Plantillas que usan CajaNav |tablerow = ''%%'' }}
|