*** SOLUTION ***
Solution donnée:[Forum, topic 16674] Ajouter un icône dans le menu
***************
Hello world,
Bon, cette fois je voudrais rajouter une icône.
Où ça ? Dans le menubar, ligne "Notification" à l'extrémité droite.
Je voudrais faire ça proprement donc si vous pouviez m'aider, je vous en remercie d'avance.
Hors ligne
L'icône ... avec le lien correspondant, j'imagine.
Un petit <a href=" ...><img .../>le texte du lien (ou pas</a>
L'URL, tu la voies dans la barre d'état lorsque tu survoles le lien actuel, ou tu utilises la fonction "code source" de ton navigateur.
EDIT : j'ai lu - et répondu - trop vite ! Mea culpa
Dernière modification par tosca (2009-12-21 12:00:21)
Hors ligne
Holà, pas évident par un template-extension : le bloc où se trouve ce lien est effectué par une boucle :
{foreach from=$block->data item=link} {if is_array($link)} <li><a href="{$link.URL}" title="{$link.TITLE}" {if isset($link.REL)}{$link.REL}{/if}>{$link.NAME}</a></li> {/if} {/foreach}
De cette façon, peut-être ainsi ?
_ Récupérer l'URL du lien "Notification", appelons-le ici "[URL_not]" ;
_ créer un template-extension de menubar_menu.tpl où le bloc ci-dessus est remplacé par :
{foreach from=$block->data item=link}
{if is_array($link)}
<li>
<a href="{$link.URL}" title="{$link.TITLE}" {if isset($link.REL)}{$link.REL}{/if}>{$link.NAME}</a>
{if $link.URL == '[URL_not]'}
<a href = "<adresse lien>" title = "{'Titre lien'|@translate}">
<img class = "button" src = "<URI image>" alt = "{'Titre image'|@translate}" />
</a>
{/if}
</li>
{/if}
{/foreach}
_ créer des entrées dans chaque local.lang.php pour Titre lien (l'info-bulle qui s'affiche lorsqu'on pointe sur l'icône) et Titre image (le texte qui s'affiche en attendant que l'icône soit chargée ; pas indispensable, mais bon).
Sinon il y a sûrement un peu plus simple en plugin perso (attention aux commentaires :-) ...) en passant par un trigger que je n'ai pas pris le temps de chercher :-/ ...
Dernière modification par LucMorizur (2009-12-21 11:56:47)
Hors ligne
LucMorizur a écrit:
....
_ Récupérer l'URL du lien "Notification", appelons-le ici "[URL_not]" ;
_ créer un template-extension de menubar_menu.tpl où le bloc ci-dessus est remplacé par :{foreach from=$block->data item=link}
{if is_array($link)}
<li>
<a href="{$link.URL}" title="{$link.TITLE}" {if isset($link.REL)}{$link.REL}{/if}>{$link.NAME}</a>
{if $link.URL == '[URL_not]'}
<a href = "<adresse lien>" title = "{'Titre lien'|@translate}">
<img class = "button" src = "<URI image>" alt = "{'Titre image'|@translate}" />
</a>
{/if}
</li>
{/if}
{/foreach}_....
Cela va rajouter un nouveau lien pas compléter le lien notification.
Hors ligne
Je me doute que ça ne doit pas être évident.
A terme, pourquoi ne pas l'intégrer au CORE de Piwigo ? :-D
Voilà pourquoi je ne souhaite pas faire une bidouille toute moche ;-)
Merci d'avoir répondu.
Hors ligne
ddtddt a écrit:
Cela va rajouter un nouveau lien pas compléter le lien notification.
Oui effectivement, c'est comme ça que je l'avais compris.
Mais de toutes façons je viens de tester, je n'arrive pas à modifier le bloc de menu "Menu" (et d'ailleurs ça me les brise menues-menues, excusez-moi j'ai pas pu m'empêcher).
Mais si ça marche, il suffit d'organiser cela différemment :
{foreach from=$block->data item=link}
{if is_array($link)}
<li>
<a href="{$link.URL}" title="{$link.TITLE}" {if isset($link.REL)}{$link.REL}{/if}>{$link.NAME}
{if $link.URL == '[URL_not]'}
<img class = "button" src = "<URI image>" alt = "{'Titre image'|@translate}" />
{/if}
</a>
</li>
{/if}
{/foreach}
Hors ligne
Gotcha a écrit:
Hello world,
Bon, cette fois je voudrais rajouter une icône.
Où ça ? Dans le menubar, ligne "Notification" à l'extrémité droite.
Je voudrais faire ça proprement donc si vous pouviez m'aider, je vous en remercie d'avance.
Le plus simple, même si la solution n'est pas terrible, c'est dans le fichier local.lang.php.
$lang['Notification'] = 'Notification<img src="liens icônes" class="button" alt="start filter">';
et ceci dans toutes les traductions
Hors ligne
Certes Damien... Mais c'est trop simple xD
@Luc: je vais m'amuser avec ça. Merci.
Hors ligne
Dans le plugin perso:
Simplement sans handler, ajouter entre les balises:
global $lang;
$lang['Notification'] .= '<img src="./template-common/icons/rss.png" class="button" alt="alt-new-icon"/>';
Hors ligne
Gotcha a écrit:
Certes Damien... Mais c'est trop simple xD
"Pourquoi faire simple quand on peut faire compliqué ?"
Tss tss tss... En informatique, la simplicité (voire une certaine forme de paresse) est règle d'or... sinon après ça donne Microsoft : ça a l'air joli, ça rentre de l'argent, mais c'est de la [censuré]...
Je le sais d'expérience : je fais pareil (en beaucoup moins gros).
@Luc: je vais m'amuser avec ça. Merci.
Encore une fois, j'ai pas réussi à tester si ça fonctionne ! (Càd, je n'ai même pas réussi à voir que ça ne fonctionne pas :-/ !)
Bonne chance !
Hors ligne
VDigital a écrit:
Dans le plugin perso:
Simplement sans handler, ajouter entre les balises:
global $lang;
$lang['Notification'] .= '<img src="./template-common/icons/rss.png" class="button" alt="alt-new-icon"/>';
Ca, ça a l'air nettement mieux.
Hors ligne
VDigital a écrit:
Dans le plugin perso:
Simplement sans handler, ajouter entre les balises:
global $lang;
$lang['Notification'] .= '<img src="./template-common/icons/rss.png" class="button" alt="alt-new-icon"/>';
Tu as testé et cela fonctionne chez toi ?
Cela ajoute l'icône au texte
Hors ligne
VDigital a écrit:
Dans le plugin perso:
Simplement sans handler, ajouter entre les balises:
global $lang;
$lang['Notification'] .= '<img src="./template-common/icons/rss.png" class="button" alt="alt-new-icon"/>';
Merci VDigital.
J'ai écrit:
/*
Ajoute une icône RSS à coté du champs "Notifications"
http://fr.piwigo.org/forum/viewtopic.ph … 35#p126435
*/
function add_rss_icon()
{
global $lang;
$lang['Notification'] .= '<img src="./template-common/icons/rss.png" class="button" alt="alt-new-icon"/>';
}
Mais c'est sans effet :-(
Précision que j'ai bien créer le répertoire adéquate avec la bonne icône ;-)
Hors ligne
Gotcha a écrit:
J'ai écrit:
/*
Ajoute une icône RSS à coté du champs "Notifications"
http://fr.piwigo.org/forum/viewtopic.ph … 35#p126435
*/
function add_rss_icon()
{
global $lang;
$lang['Notification'] .= '<img src="./template-common/icons/rss.png" class="button" alt="alt-new-icon"/>';
}Mais c'est sans effet :-(
Tandis que j'écrirais:
/*
Ajoute une icône RSS à coté du champs "Notifications"
http://fr.piwigo.org/forum/viewtopic.ph … 35#p126435
*/
global $lang;
$lang['Notification'] .= '<img src="./template-common/icons/rss.png" class="button" alt="alt-new-icon"/>';
Hors ligne
Gotcha a écrit:
function add_rss_icon()
{
global $lang;
$lang['Notification'] .= '<img src="./template-common/icons/rss.png" class="button" alt="alt-new-icon"/>';
}Mais c'est sans effet :-(
Précision que j'ai bien créer le répertoire adéquate avec la bonne icône ;-)
Mais pourquoi donc "function add_rss_icon()" :-) ? Si tu crées une fonction, il faut l'appeller. Où dans le code de Piwigo vas-tu trouver une instruction add_rss_icon() ?
Ce que tu as fait là déclare la fonction add_rss_icon() . Si bien que si, après que ton plugin perso est exécuté, il apparaît l'instruction add_rss_icon() , à ce moment-là la variable $lang['Notification'] changera de valeur. Mais tant que l'instruction add_rss_icon() n'est pas trouvée, ce que cette fonction définit n'est pas exécuté.
Et donc la recommandation de Vincent est de mettre directement le code en question dans ton plugin perso : au moment où ce code est exécuté, la variable $lang['Notification'] change de valeur : fonctionnalité implémentée :-) .
Hors ligne