Joomla.it Forum
Joomla! 1.5.x (versione con supporto terminato) => Joomla! 1.5 => : max78 28 Aug 2008, 19:14:47
-
Ciao a tutti,
mi sono accorto che manca l'attributo title nei link creati con il modulo mod_mainmenu, che file devo modificare per inserirli?
-
La tua richiesta mi ha incuriosito. In effetti manca la possibilità di inserire l'attributo title nelle voci di menù di Joomla. Nè esiste un file dove tu possa inserirli a mano.
Infatti joomla costruisce i menù richiamando le voci da una tabella del database. Non esiste in quella tabella il campo per inserire l'attributo title. Anche facendolo non sarebbe poi richiamato dalle queryes che costruiscono i menù. Bisognerebbe allora scrivere una bella botta di codice in diversi files.
Meglio lasciar fare agli sviluppatori di jommla! se riterranno di farlo. ;)
-
nel mio caso non serviva un campo a parte nel db, ma la possibilità di inserire il nome del link come attributo title, ho risolto modificando il file modules/mod_mainmenu/helper.php alla riga 342
ho sostituito:
// _top
$data = '<a href="'.$tmp->url.'">'.$image.$tmp->name.'[/url]';
break;
con:
// _top
$titolo = stripslashes(htmlspecialchars($item->name));
$data = '<a title="'.$titolo.'" href="'.$tmp->url.'">'.$image.$tmp->name.'[/url]';
break;
e il gioco è fatto ;)
spero che gli sviluppatori apportino questa semplice ma necessaria modifica al modulo nelle prossime release
ciao!
-
Sei stato bravissimo a cavartela in questo modo!!!
Richiamando nel codice il nome della voce di menù che va così a finire nell'attributo title. Ma non ha gran significato mettere un title identico alla voce stessa. Per questo secondo me andrebbe inserito un campo nel modulo ove si crea la voce di menù con la possibilità di inserire tale attributo.
-
sicuramente farebbe molto comodo un campo ad HOC, ma così è già qualcosa...
Stavo pensando che in alternativa gli si potrebbe fare leggere il valore del "page_title" e dove non fosse stato impostato fargli prendere il nome del collegamento.
Appena ho un attimo di tempo faccio due prove ;)
-
detto... fatto!
Il codice da sostituire all'originale alla riga 342 è:
// _top
$menu_params = new JParameter($tmp->params);
$page_title = stripslashes(htmlspecialchars($menu_params->get('page_title')));
$titolo = $page_title ? $page_title : stripslashes(htmlspecialchars($item->name));
$data = '<a title="'.$titolo.'" href="'.$tmp->url.'">'.$image.$tmp->name.'[/url]';
break;
-
Bravissimo! Già prendere il titolo dell'articolo e metterlo nell'attributo title della voce di menù mi sembra un bel passo avanti!
Qui trovi il quesito di una tenera fanciulla che vorrebbe ottenere qualcosa di simile nella componente links
http://forum.joomla.it/index.php/topic,49729.msg214549.html#msg214549
Puoi aiutarla?
:)
-
Ho apportato anch'io le modifiche consigliate da max78 ma riscontro un grosso problema: appena accedo alla home page del sito l'unico link visibile è "home", tutti gli altri spariscono. Come se non esistessero. :o
Come mai una cosa del genere?
-
mmm... strano, controlla l'HTML generato e facci sapere...
-
Cosa posso aggiungere? Dall'html generato risulta creato solo il link "Home" . Gli altri non compaiono proprio.
Questa è la gerarchia:
div id="links" (il mio div "contenitore")
ul class="menu"
li id="current" class="active item1">
a href="http://www.dolcevitaromana.com/"
<span>Home</span>
-
l'unica cosa che mi viene in mente è che qualche apice abbia interrotto il codice PHP
-
Effettivamente anche a me succede la stessa cosa dell'amico ViperSoulOwner. 3 messaggi su sfondo rosso ed appaiono solo le prime voci dei menu presenti nella pagina. Guardando l'html prodotto, non ci sono - almeno pare - errori dovuti ad apici ecc... qualcuno ha avuto modo di risolvere?
grazie 1000
Floyd
Ho apportato anch'io le modifiche consigliate da max78 ma riscontro un grosso problema: appena accedo alla home page del sito l'unico link visibile è "home", tutti gli altri spariscono. Come se non esistessero. :o
Come mai una cosa del genere?
-
Effettivamente anche a me succede la stessa cosa dell'amico ViperSoulOwner. 3 messaggi su sfondo rosso ed appaiono solo le prime voci dei menu presenti nella pagina. Guardando l'html prodotto, non ci sono - almeno pare - errori dovuti ad apici ecc... qualcuno ha avuto modo di risolvere?
grazie 1000
Floyd
Ho apportato anch'io le modifiche consigliate da max78 ma riscontro un grosso problema: appena accedo alla home page del sito l'unico link visibile è "home", tutti gli altri spariscono. Come se non esistessero. :o
Come mai una cosa del genere?
anche a me non andava....
ho corretto cosi
$titolo = stripslashes(htmlspecialchars($item->name));
$data = '<a title="'.$titolo.'" href="'.$tmp->url.'">'.$image.$tmp->name.'[/url]';
-
ciao a tutti
io ho risolto, credo, senza aggiungere nessun codice esterno;
l'articolo è il seguente: http://www.jextrowebsite.com/index.php/joomla-15/attributo-title-nelle-voci-di-menu-in-joomla-15/
saluti
Floyd
-
Ciao! :) Io ho apportato la modifica in locale ma non funziona. Se ho capito bene il tuo articolo devo modificare una stringa del file modules/mod_maninmenu/legacy.php sostituendo questa:
$txt = '<a href="' . $mitem->URL . '" class="' . $menuclass . '" ' . $id . '>' . $mitem->name . '</a>';
Con questa:
$txt = '<a href="'.$mitem->URL. '" class="'. $menuclass.'" title="'.$mitem->name.'" '.$id.'>'. $mitem->name . '</a>';
ma non appare il title quando vado con il mouse sopra i menù. Cosa faccio di sbagliato?
Un'altra domanda: che valore prende come title?
Grazie
-
ciao tonicopi
per la stringa... è quella; controlla meglio semmai;
il valore che prende è il nome che dai alla voce di menu;
se hai una voce del tipo: Dove siamo, il title è: Dove siamo
saluti,
Floyd
-
Perdonami Giuseppe ma ho rifatto un paio di volte la procedura sia on-line che in locale e l'attributo title non si verifica.
Qualcun'altro o tu stesso può provare a farlo? Non vorrei che ci fosse qualcosa di sbagliato nel codice.
Poter inserire l'attributo title in un menù è una cosa che dovrebbe esser presente di default in Joomla! accidenti! Poterlo fare con questa modifica è importante ma resta il limite che il title coincide con il nome del menù.
-
ciao Toni
il codice a me funziona; ho apportato la modifica al file legacy.php del core di joomla 1.5 e vedo i title nelle voci di menu.
Purtroppo nn posso mostrarti il sito, adesso, in quanto non è ancora terminato da parte del proprietario. Non appena è terminato, lo metterò nel mio portfolio.
Saluti
Floyd
-
ciao a tutti,
a distanza di oltre un anno, mi sono ritrovato con la stessa esigenza, solo che stavolta non volevo sovrascrivere il core di joomla.
Ecco come ho risolto:
ho compiato il file
modules\mod_mainmenu\tmpl\default.php
in
templates\miotemplates\html\mod_mainmenu\default.php
modificato il file default.php appena copiato come segue:
...
function modMainMenuXMLCallback(&$node, $args)
{
global $itemid; //------------------------------ riga inserita
$user = &JFactory::getUser();
$menu = &JSite::getMenu();
$active = $menu->getActive();
//------------------------------ inizio codice inserito
if($node->attributes('id') != "" ){
$itemid = $node->attributes('id');
}
if ($node->name() == 'a'){
$item = $menu->getItem($itemid);
$menu_params = new JParameter( $item->params );
$title = $menu_params->get( 'page_title') ? $menu_params->get('page_title') : $item->name;
if($title) {$node->addAttribute('title', $title);}
}
//------------------------------ fine codice inserito
$path = isset($active) ? array_reverse($active->tree) : null;
...
-
ciao
mi intrufolo nella discusione
visto e letto
la discussione, basterebbe fare in questo modo
Nel file modules/mod_mainmenu/helper.php
$data = '<a href="'.$tmp->url.'">'.$image.$tmp->name.'</a>';
e modifichiamola così
$data = '<a title="'.$item->name.'" href="'.$tmp->url.'">'.$image.$tmp->name.'</a>';
Per quanto riguarda i menu di tipo "Legacy", il file da modificare è modules/mod_mainmenu/legacy.php
$txt = '<a class="' . $menuclass . '" href="' . $mitem->url . '">' . $mitem->name . '</a>';
sostituiamola con
$txt = '<a href="' . $mitem->url . '" class="' . $menuclass . '" title="'.$mitem->name.'
" ' . $id . '>' . $mitem->name . '</a>';
-
Chiedo:
ho provato a fare l'override in un template che utilizza EXMENU a tendina, e la cosa non funziona, ovvero l'attributo title non compare!
E' possibile fare qualcosa?
Grazie.
-
exmenu inserisce in automatico l'attributo title, devi controllare che nei parametri del modulo l'impostazione "Link Title" sia su "yes"
-
Grazie max: informazione esatta!