xref: /plugin/pagesicon/DOKU.md (revision 74a9e7636f2e172c4b5990b529a0ab322717c972)
1====== Pagesicon Plugin ======
2
3---- plugin ----
4description: Gère et exposer des icônes
5author     : Lortet
6email      : valentin@lortet.io
7type       : Action, Helper
8lastupdate : 2026-03-09
9compatible : Librarian
10depends    :
11conflicts  :
12similar    :
13tags       : Media, UI, Navigation, Helper, Icons
14
15downloadurl: https://github.com/Lortet/dokuwiki-plugin-pagesicon/zipball/master
16bugtracker : https://github.com/Lortet/dokuwiki-plugin-pagesicon/issues
17sourcerepo : https://github.com/Lortet/dokuwiki-plugin-pagesicon/
18donationurl:
19screenshot_img :
20----
21
22===== Installation =====
23
24Installer le plugin depuis le [[fr:plugin:extension|Gestionnaire d'extensions]] à l'aide de l'URL de téléchargement (source) ci-dessus.
25
26===== Description =====
27
28Le plugin **pagesicon** permet :
29  * d'afficher une icône en haut de la page ;
30    * {{https://i.ibb.co/TBz1yVHB/Screenshot-2026-03-06-at-20-25-47-Welcome-to-your-new-Doku-Wiki-Wiki-BSPP.png?250}}
31    * {{https://i.ibb.co/XZd613sL/Screenshot-2026-03-06-at-20-25-39-Formatting-Syntax-Wiki-BSPP.png?250}}
32  * d'utiliser l'icône de la page comme favicon (onglet navigateur) ;
33  * de gérer l'icône depuis l'action de page ''?do=pagesicon'' ;
34    * {{https://i.ibb.co/1JBtfvH9/Screenshot-2026-03-06-at-20-26-12-Welcome-to-your-new-Doku-Wiki-Wiki-BSPP.png?250}}
35  * d'exposer une API helper pour les autres plugins (ex. : catmenu, visualindex).
36    * {{https://i.ibb.co/Mkv7RY8K/Screenshot-2026-03-06-at-20-26-00-Welcome-to-your-new-Doku-Wiki-Wiki-BSPP.png?250}}
37
38===== Paramètres =====
39
40^ Nom ^ Description ^ Valeur par défaut ^
41| icon_name | Noms candidats pour l'icône ''big'' (séparés par '';''). Supporte ''~pagename~''. | ''~pagename~;icon_thumbnail;icon'' |
42| icon_thumbnail_name | Noms candidats pour l'icône ''small'' (séparés par '';''). Supporte ''~pagename~''. | ''~pagename~;icon'' |
43| default_image | Image par défaut (mediaID), utilisée quand ''withDefault=true'' sur les méthodes URL. | '''' |
44| icon_size | Taille de l'icône affichée en haut de page (px). | ''55'' |
45| extensions | Extensions d'images autorisées (séparées par '';''). | ''svg;png;jpg;jpeg'' |
46| show_on_top | Afficher l'icône en haut de page. | ''true'' |
47| show_as_favicon | Utiliser l'icône comme favicon de la page. | ''true'' |
48
49===== Utilisation =====
50
51Depuis une page, utiliser l'action **Gérer l'icône** puis :
52  * importer une icône ''big'' ou ''small'' ;
53  * supprimer l'icône existante.
54
55===== API Helper =====
56
57Charger le helper :
58''$pagesicon = plugin_load('helper', 'pagesicon');''
59
60^ Méthode ^ Description ^
61| ''getPageIconId($namespace, $pageID, $size = 'bigorsmall')'' | Retourne un mediaID (ou ''false''). |
62| ''getMediaIconId($mediaID, $size = 'bigorsmall')'' | Retourne le mediaID d'icône d'un média (ou ''false''). |
63| ''getPageIconUrl($namespace, $pageID, $size = 'bigorsmall', $params = ['width' => 55], &$mtime = null, $withDefault = false)'' | Retourne une URL d'icône versionnée (''pi_ts=<filemtime>'') ou ''false''. |
64| ''getMediaIconUrl($mediaID, $size = 'bigorsmall', $params = ['width' => 55], &$mtime = null, $withDefault = false)'' | Retourne une URL d'icône média versionnée (''pi_ts=<filemtime>'') ou ''false''. |
65| ''getDefaultIconUrl($params = ['width' => 55], &$mtime = null)'' | Retourne l'URL de l'image par défaut configurée, ou l'image interne ''default_image.png''. |
66| ''getUploadIconPage($targetPage = "")'' | Retourne l'URL de gestion d'icône (ou ''null'' si non autorisé). |
67| ''getUploadMediaIconPage($mediaID = "")'' | Retourne l'URL de gestion d'icône d'un média. |
68| ''notifyIconUpdated($targetPage, $action = "update", $mediaID = "")'' | Déclenche l'événement d'invalidation de cache. |
69
70===== Événement =====
71
72Lors d'un upload/suppression, le plugin émet :
73  * ''PLUGIN_PAGESICON_UPDATED''
74    * pour permettre l'invalidation de cache dans les plugins consommateurs.
75
76Payload :
77  * ''target_page''
78  * ''action''
79  * ''media_id''
80
81===== Compatibilité des signatures =====
82
83Signatures historiques (avant ''09-03-2025'') :
84  * ''getPageImage($namespace, $pageID, $size = "bigorsmall")''
85  * ''getMediaImage($mediaID, $size = "bigorsmall")''
86  * ''getImageIcon($namespace, $pageID, $size = "bigorsmall", $params = ['width' => 55], &$mtime = null)''
87  * ''getMediaIcon($mediaID, $size = "bigorsmall", $params = ['width' => 55], &$mtime = null)''
88
89La compatibilité est conservée via des alias legacy :
90  * ''getPageImage(...)'' -> ''getPageIconId(...)'' (le paramètre legacy ''$withDefault'' est ignoré)
91  * ''getMediaImage(...)'' -> ''getMediaIconId(...)'' (le paramètre legacy ''$withDefault'' est ignoré)
92  * ''getImageIcon(...)'' -> ''getPageIconUrl(...)''
93  * ''getMediaIcon(...)'' -> ''getMediaIconUrl(...)''
94  * ''getDefaultImageIcon(...)'' -> ''getDefaultIconUrl(...)''
95