Immagine nei link menù

6 contenuti / 0 new
Ultimo contenuto
Anonimo (non verificato)
Ritratto di Anonimo
Immagine nei link menù
AllegatoDimensione
Image icon menu.PNG1.69 KB

Buongiorno,
Nel mio menù del tema skeelton nella prima voce "HOME" dovrei sostituire la scritta con un immagine.
Come facio?
Ho provato a mettere codice html nel campo tittolo del menù ma lo legge com semplice testo
Potete vedere l'immagine allegata (al posto della scitta HOME voglio inserire un'immagibne)

Drupal Version:

ho trovato questo link
http://drupal.stackexchange.com/questions/10940/use-an-image-instead-of-...
prova a vedere se funziona :D

--------------------------------------
--> Dasan Blog

NicoCaldo (non verificato)
Ritratto di Anonimo

Grazie adesso provo

[dove c'è my theme io che ho lo SKELETON scrivo skeleton_ecc.?]

io avevo trovato questo ma lo ho provato su 2 miei siti e non funziona https://drupal.org/project/menu_icons
Avevo poi provato ad inserire questa funzione

<?php
/**
* Allows for images as menu items.
* Just supply the an image path in the title. The image path will be replaced
* with an img tag. The description is used as alt text and title.
* Implements theme_menu_link().
* Reference: <a href="http://chrisshattuck.com/blog/how-use-images-menu-items-drupal-simple-preprocessing-function
*/
function" rel="nofollow">http://chrisshattuck.com/blog/how-use-images-menu-items-drupal-simple-pr...</a> YOUR_THEME_menu_link($variables) {
 
$element = &$variables['element'];
 
$pattern = '/\S+\.(png|gif|jpg)\b/i';
  if (preg_match(
$pattern, $element['#title'], $matches) > 0) {
   
$element['#title'] = preg_replace($pattern,
      '<img alt = "' . $element['
#localized_options']['attributes']['title'] . '" src = "' . url($matches[0]) . '" />',
     
$element['#title']);
   
$element['#localized_options']['html'] = TRUE;
  }
  return
theme_menu_link($variables);
}
?>

Ma neanche qui niente

NicoCaldo (non verificato)
Ritratto di Anonimo

Non funge ;( sono disperato
Ho lo SKELETON THEME e menù selfish menù

ciao, hai citato questo modulo prima: https://drupal.org/project/menu_icons

ho dato uno sguardo alla documentazione, pare che ti dia la possibilità di caricare l'immagine ma non la stampi di default nel link renderizzato, per farlo devi quindi agganciarti a hook_menu_link, quasi come hai fatto.

Ora non ho mai usato questo modulo ma da come ho letto avrai la path dell'immagine caricata nell'array $variables.
per trovarla stampa tutto l'array:
echo '<pre>'.print_r($variables, true).'</pre>';

naviga l'array e trova la path... poi io ritornerei direttamente il link formattato, quindi il tutto sarà tipo:

<?php
function [nometema]_menu_link (array $variables) {
   
// 1) estrapolo le variabili che mi servono
   
$element = $variables['element'];
   
$sub_menu = '';
   
$element['#localized_options']['html'] = TRUE;
   
// 2) imposto le classi even ed odd per mantenre tutto il resto standard
   
static $count = 0;
   
$zebra = ($count % 2) ? 'even' : 'odd';
   
$count++;
   
$element['#attributes']['class'][] = $zebra;
   
// 3) mi occupo del sottomenu
   
if ($element['#below']) {
       
$sub_menu = drupal_render($element['#below']);
    }
   
// 4) controllo se il nome del menu corrisponde a quello che voglio modificare
   
if ($element['#original_link']['menu_name'] == "main-menu" && isset($element['#localized_options']['attributes']['title'])){
       
// 5) lo modifico
       
if(isset($element[TUAIMMAGINE])) $element['#title'] = '<img src="'.$element[TUAIMMAGINE].'" />'.$element['#title'];
    }
   
// 6) procedo in maniera standard
   
$output = l($element['#title'], $element['#href'], $element['#localized_options']);
    return
'<li' . drupal_attributes($element['#attributes']) . '>' . $output . $sub_menu . "</li>\n";
}
?>

qui faccio una serie di operazioni che Drupal già fa di default, inoltre al punto 4 controllo di essere nel menu giusto (in questo caso main_menu) e nel punto 5 controllo ci sia un immagine e la applico.
Poi concludo col ritornare il link renderizzato.

se sostituisci $element[TUAIMMAGINE] con la giusta variabile funzionerà fidati ;P

La cosa l'ho trovata interessante, l'ho studiata meglio e vi ho scritto una guida completa qui