====== Plugin Export Viewport ====== Connector propi de VikiTaldia. Fa que les pàgines exportades amb ''do=export_xhtml'' es vegin bé al mòbil: el text es redistribueix a l'amplada de la pantalla, en lloc d'encongir-se tota la pàgina com si fos una imatge. ^ Nom ^ Valor ^ | Carpeta | ''lib/plugins/exportviewport/'' | | Classe | ''action_plugin_exportviewport'' | | Tipus | Connector d'acció (action plugin) | | Autor | A. Moseguí / TT22 | | Data | 14-10-2026 | | Versió de DokuWiki | 2025-05-14b "Librarian" | ===== El problema ===== L'app Taldia obre el relat sencer de cada notícia a VikiTaldia amb el sufix ''&do=export_xhtml'', que dona la pàgina sense la interfície de la wiki (menú, barra lateral, eines). Per exemple: ''https://vikitaldia.tt22.cat/doku.php?id=tema:cat:pau_casals-i_am_a_catalan&do=export_xhtml'' * **A l'ordinador**, en estrènyer la finestra, el text es redistribueix bé. * **Al mòbil**, la pàgina s'encongeix sencera i el text queda diminut. ===== La causa ===== La pàgina exportada **no porta l'etiqueta ''''**. * L'exportació ''xhtml'' munta el ''
'' a mà (''inc/Action/Export.php''). Només hi posa '''', el ''
base exportviewport
author A. Moseguí / TT22
date 2026-10-14
name Export Viewport
desc Afegeix l'etiqueta meta viewport a les pàgines exportades amb do=export_xhtml, perquè al mòbil el text es redistribueixi en lloc d'encongir-se.
==== action.php ====
a les pàgines exportades amb
* do=export_xhtml.
*
* Per què: l'exportació xhtml munta el a mà (inc/Action/Export.php)
* i no passa per la plantilla, que és qui posa el viewport a les pàgines
* normals (lib/tpl/dokuwiki/main.php). Sense viewport, el mòbil dibuixa la
* pàgina en una finestra virtual ampla i l'encongeix com si fos una imatge.
*
* Com: l'exportació xhtml crida tpl_metaheaders(), que llança l'esdeveniment
* TPL_METAHEADER_OUTPUT abans d'escriure les metadades. Aquí s'hi afegeix
* el viewport, NOMÉS si l'acció és export_xhtml: les pàgines normals ja el
* porten de la plantilla i no s'ha de duplicar.
*
* L'etiqueta és la mateixa que posa la plantilla dokuwiki. --
*/
use dokuwiki\Extension\ActionPlugin;
use dokuwiki\Extension\Event;
use dokuwiki\Extension\EventHandler;
class action_plugin_exportviewport extends ActionPlugin
{
/**
* Enganxa el gestor a l'esdeveniment de les metadades del .
*/
public function register(EventHandler $controller)
{
$controller->register_hook('TPL_METAHEADER_OUTPUT', 'BEFORE', $this, 'addViewport');
}
/**
* Afegeix el viewport a les metadades, només a l'exportació xhtml.
*
* @param Event $event $event->data és la taula de capçaleres (meta, link, script…)
* @param mixed $param no se'n fa servir cap
*/
public function addViewport(Event $event, $param)
{
global $ACT;
if ($ACT !== 'export_xhtml') {
return;
}
$event->data['meta'][] = [
'name' => 'viewport',
'content' => 'width=device-width,initial-scale=1',
];
}
}
Les classes ''ActionPlugin'', ''Event'' i ''EventHandler'' són a l'espai de noms ''dokuwiki\Extension''. És el que fa servir la versió 2025-05-14b "Librarian" (''inc/Extension/ActionPlugin.php'').
===== Instal·lació =====
Hi ha dues maneres:
- **Des de la wiki:** Administració → Gestor d'extensions → instal·lació manual, i pujar ''exportviewport.zip''. El ZIP conté la carpeta ''exportviewport/'' amb els dos fitxers.
- **Per FTP:** pujar la carpeta ''exportviewport/'', amb els dos fitxers, a ''lib/plugins/''.
===== Comprovació =====
- Al gestor d'extensions, "Export Viewport" ha de sortir com a actiu.
- Obrir al mòbil una pàgina amb ''&do=export_xhtml''. El text s'ha de redistribuir a l'amplada de la pantalla.
- Si no es veu bé, mirar el codi font de la pàgina: dins del '''' hi ha d'haver ''''.
Estat: instal·lat i comprovat al mòbil el 14-10-2026.
===== Manteniment =====
* **Actualitzacions de DokuWiki:** el connector no toca cap fitxer del nucli ni de la plantilla, i no s'hi perd. Si una versió futura canviés el nom de les classes de ''dokuwiki\Extension'' o de l'esdeveniment ''TPL_METAHEADER_OUTPUT'', caldria adaptar ''action.php''.
* **Si algun dia l'exportació ja portés viewport de sèrie,** el connector el duplicaria. Llavors es podria desactivar des del gestor d'extensions.
* **Desactivar-lo:** des del gestor d'extensions, o esborrant la carpeta ''lib/plugins/exportviewport/''.
===== Fonts =====
* [[https://github.com/dokuwiki/dokuwiki/blob/master/inc/Action/Export.php|DokuWiki – inc/Action/Export.php]]
* [[https://github.com/dokuwiki/dokuwiki/blob/master/inc/template.php|DokuWiki – inc/template.php]]
* [[https://github.com/dokuwiki/dokuwiki/blob/master/lib/tpl/dokuwiki/main.php|DokuWiki – lib/tpl/dokuwiki/main.php]]
* [[https://www.dokuwiki.org/devel:event:tpl_metaheader_output|DokuWiki – esdeveniment TPL_METAHEADER_OUTPUT]]
* [[https://www.dokuwiki.org/devel:action_plugins|DokuWiki – connectors d'acció]]
* [[https://www.dokuwiki.org/devel:plugin_info|DokuWiki – plugin.info.txt]]
* [[https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/meta/name/viewport|MDN – meta viewport]]