[risolto] Personalizzare la voce ESCI del menu (navigazione)

8 contenuti / 0 new
Ultimo contenuto
[risolto] Personalizzare la voce ESCI del menu (navigazione)

Vorrei semplicemente mettere un'iconcina accanto alla parola "esci"... La classica porticina...
Non vedo come distinguere la voce "Esci" dalle altre...
Il logout si trova come voce del menu "Navigazione" ma non capisco come personalizzarla.
Magari è una cavolata... ma se clicco su "modifica" mi permette solo di cambiare solo nome e descrizione (come tutti i link, del resto...).

Qual'è la procedura migliore da seguire?

Puoi personalizzare la funzione theme_menu_item_link($link) sostituendola con
miotema_menu_item_link($link) in template.php

<?php
// Valido per Drupal 6.x
function miotema_menu_item_link($link) {
  if (empty(
$link['localized_options'])) {
   
$link['localized_options'] = array();
  }
// Qui modifico il valore di ritorno.
 
$pathicona = path_to_theme() ."/img/icona.gif";
 
$iconahtml="";
 if (
$link['href']=='logout') $iconahtml = "<img src="/".$pathicona ."">" ;
 return
$iconahtml . l( $link['title'], $link['href'], $link['localized_options']);
}
 
?>

Ciao

________________________________________________________________________________________
Quando risolverai il problema, scrivi come hai fatto, e se puoi scrivi [RISOLTO]
Sarà utile ad altri. Grazie
enzoazzolini.it

Non succede nulla...
Scusa l'ignoranza...
Ho preso il file template.php (quello del mio tema) e c'ho aggiunto il tuo codice, cambiando solo la parola "miotema" e "icona.gif"

Dove sbaglio?

La subdir /img è corretta?
Forse non è registrata la modifica fatta.
Se vai in admin/build/themes/select , mi sembra che drupal ricrei le registrazione dei temi nella tabella cache.
Oppure se non ti crea troppi problemi pulisci direttamente la cache da admin/settings/performance

Per vedere se è un problema di icona poni $iconahtml = "xxxxxx" e vedi se compare "xxxxxx Esci".

________________________________________________________________________________________
Quando risolverai il problema, scrivi come hai fatto, e se puoi scrivi [RISOLTO]
Sarà utile ad altri. Grazie
enzoazzolini.it

Un'altra alternativa potrebbe essere questa:

considerato che il link esci ha la classe .leaf assegnato, basterebbe mettere nel css qualcosa come:

.leaf{
padding-left:10px; /* se l'immagine è ad esempio 10px */
background-image: url(path/immagine) ;
background-repeat: no-repeat;
background-position: top left; /*da persaonelizzare*/
}

enzodrup wrote:
La subdir /img è corretta?
se non ti crea troppi problemi pulisci direttamente la cache

Era la cache... A questo punto ti chiedo anche come si fa a far stare l'immagine dentro il tag A, anzichè fuori, o meglio ancora, come aggiungere uno stile per lo sfondo solo di quel tag ...

@alexic

Quote:
considerato che il link esci ha la classe .leaf assegnato

Però devi distinguere l'item Esci con una classe particolare tipo leaf-last-esci altrimenti tutte le voci avrebbero la stessa icona.

@ricman
Questa è la modifica. Non c'è bisogno di cancellare la cache perchè ora la funzione è già registrata.

<?php
// Valido per Drupal 6.x
function miotema_menu_item_link($link) {
      if (empty(
$link['localized_options'])) {
       
$link['localized_options'] = array();
      }
   
// modifica per link su immagine
   
if ($link['href']=='logout') {
            
$pathicona = path_to_theme() ."/img/icona.gif";
              
$iconahtml = "<img src="/".$pathicona ."">" ;
             
// indica che il titolo contiene codice HTML
             
$link['localized_options']['html']= TRUE;  
            
// Modifico il titolo
            
$link['title']  = $iconahtml . " ". $link['title'];
    }
    return
l( $link['title'], $link['href'], $link['localized_options']);
}
 
?>

Ciao

________________________________________________________________________________________
Quando risolverai il problema, scrivi come hai fatto, e se puoi scrivi [RISOLTO]
Sarà utile ad altri. Grazie
enzoazzolini.it

Graaaandeee... Proprio questo cercavo!!

Grazie mille!