1# Pagesicon 2 3J'aime beaucoup DokuWiki, mais je l'ai toujours trouvé un peu triste : il manquait une façon simple de mettre de belles icônes sur les pages. 4Avec **pagesicon**, c'est possible. 5 6`pagesicon` est à la fois : 7- un **plugin** (affichage et gestion des icônes), 8- un **helper** (API réutilisable par d'autres plugins, comme `catmenu` et `visualindex`). 9 10## Ce Que Fait Le Plugin 11 12- Affiche une icône en haut de la page (`show`), si activé. 13- Peut utiliser l'icône de la page comme favicon d'onglet (`show_as_favicon`). 14- Fournit une page de gestion d'icône par page : `?do=pagesicon`. 15- Gère les variantes `big` et `small`. 16- Notifie les autres plugins quand une icône change via `PLUGIN_PAGESICON_UPDATED`. 17 18## Paramètres De Configuration 19 20Dans le `Configuration Manager` : 21 22- `icon_name` : noms candidats pour l'icône `big` (séparés par `;`). 23 Supporte `~pagename~`. 24 25- `icon_thumbnail_name` : noms candidats pour l'icône `small` (séparés par `;`). 26 Supporte `~pagename~`. 27 28- `icon_size` : taille (px) de l'icône affichée en haut de page. 29 30- `extensions` : extensions autorisées (séparées par `;`), par exemple `svg;png;jpg;jpeg`. 31 32- `show_on_top` : activer/désactiver l'affichage en haut de page. 33 34- `show_as_favicon` : utiliser l'icône de la page comme favicon. 35 36## Usage 37 38Depuis une page, utiliser l'action `Gérer l'icône` puis uploader/supprimer. 39 40Le plugin travaille sur la **page courante** (`$ID`), pas sur une cible passée en paramètre. 41 42## API Helper 43 44Charger le helper : 45 46```php 47$pagesicon = plugin_load('helper', 'pagesicon'); 48``` 49 50### Résolution En mediaID 51 52- `getPageImage(string $namespace, string $pageID, string $size = 'bigorsmall')` 53 Retourne un mediaID (`ns:file.ext`) ou `false`. 54 55- `getMediaImage(string $mediaID, string $size = 'bigorsmall')` 56 Retourne le mediaID d'icône pour un média, ou `false`. 57 58`size` accepte : `big`, `small`, `bigorsmall`, `smallorbig`. 59 60### Résolution En URL Versionnée 61 62- `getImageIcon(string $namespace, string $pageID, string $size = 'bigorsmall', array $params = ['width' => 55], ?int &$mtime = null)` 63 Retourne une URL d'icône (avec `pi_ts=<filemtime>`) ou `false`. 64 Renseigne aussi `$mtime`. 65 66- `getMediaIcon(string $mediaID, string $size = 'bigorsmall', array $params = ['width' => 55], ?int &$mtime = null)` 67 Retourne une URL d'icône de média (avec `pi_ts=<filemtime>`) ou `false`. 68 Renseigne aussi `$mtime`. 69 70### URLs De Gestion 71 72- `getUploadIconPage(string $targetPage = '')` 73 Retourne l'URL `?do=pagesicon` d'une page, ou `null` si non autorisé. 74 75- `getUploadMediaIconPage(string $mediaID = '')` 76 Retourne l'URL de gestion d'icône associée à un média. 77 78### Notification 79 80- `notifyIconUpdated(string $targetPage, string $action = 'update', string $mediaID = '')` 81 82Effets : 83- met à jour `purgefile`, 84- déclenche l'événement `PLUGIN_PAGESICON_UPDATED`. 85 86Payload : 87- `target_page`, 88- `action`, 89- `media_id`. 90 91Chaque plugin consommateur est responsable de sa propre invalidation de cache. 92