Back to top

Autore Topic: Aggiungere freccette voce menu  (Letto 5058 volte)

Offline albyxt

  • Nuovo arrivato
  • *
  • Post: 14
  • Sesso: Maschio
    • Mostra profilo
Aggiungere freccette voce menu
« il: 28 Dic 2011, 22:56:14 »
Salve, prima di chiedere un aiuto vi spiego bene cosa stò facendo:allora,stò creando un template in joomla e ho adattato un menu css che avevo al template,è un menu orizzontale con 3 livelli, ora mi servirebbe un aiuto per dire al menu che quando in na voce del menu ci sono dei sotto menu di aggiungerci affianco delle freccette per far capire ovviamente al visitatore del sito che in quella voce del menu ci sono dei sotto menu.Sicuramente sarà una sola riga di codice in php, ma solo ora stò iniziando a studiarlo  e quindi a me risulterebbe difficile quello che a qualcuno di voi è una cosa banale.Spero di essere stato chiaro.grazie.P.S.per capire di che stò parlando potete vedere quisi vede il menu in fase di realizzazione , per esempio nella voce "contattaci" ci dovrebbero essere delle freccette ( >> ) oppure se è possibile un'immagine, perchè contiene un sotto menu.

Offline albyxt

  • Nuovo arrivato
  • *
  • Post: 14
  • Sesso: Maschio
    • Mostra profilo
Re:Aggiungere freccette voce menu
« Risposta #1 il: 29 Dic 2011, 00:45:42 »
Volevo solo precisare che il modulo che crea il menu è quello standard di joomla e cioè mod_mainmenu, io ho solo modificato il css del template nella posizione navigation e cioè qui:


Codice: [Seleziona]
       
                #navigation{
width:100%;
background-color:#373737;
}
/*stile generale delle liste*/
#navigation ul{
margin:0;
padding:0;
position: relative;
height: 30px;
width:100%;
}
/*stile generale delle sub liste*/
#navigation ul ul{
position: absolute;
top:30px;
left: 0;
visibility: hidden;
}
/*stile generale dei list item*/
#navigation li{
list-style: none;
float: left;
padding:0 5px;
background-color:#373737;
}
#navigation ul, #navigation li{
background-color:#373737;
}
#navigation ul ul, #navigation li li{
background-color:#767676;
}
#navigation ul ul ul, #navigation li li li{
background-color:#DDDDDD;
}

/*style generale dei link*/
#navigation a{
display:block;
float:left;
padding:0 30px;
text-decoration:none;
text-align: center;
line-height: 30px;
font-family: Verdana;
font-size: 9px;
font-weight: bold;
}
/*style generale dei link sullo stato hover*/
#navigation ul :hover > a, #navigation ul a:hover{
height:20px;
border-top:5px solid #373737;
border-bottom:5px solid #373737;
line-height:20px;
}
#navigation ul :hover > a.sub{
height:25px;
border-bottom:none;
line-height:20px;
}
/*stile link primo livello*/
#navigation ul a{
color:#FFFFFF;
}
#navigation ul :hover > a{
background-color:#767676;
border-color:#373737;
color:#FFCC00;
}
/*stile link secondo livello*/
#navigation ul ul a{
color:#FFCC00;
}
#navigation ul ul :hover > a{
background-color:#DDDDDD;
border-color:#767676;
color:#336699;
}
/*stile link terzo livello*/
#navigation ul ul ul a{
color:#336699;
}
#navigation ul ul ul :hover > a{
background-color:#FFF;
border-color:#DDDDDD;
}
/*secondo livello visibile su hover del primo livello*/
#navigation ul li:hover ul, #navigation ul a:hover ul{
visibility:visible;
}
/*terzo livello invisibile su hover del primo livello*/
#navigation ul li:hover ul ul, #navigation ul a:hover ul ul{
visibility:hidden;
}
/*terzo livello visibile su hover del secondo livello*/
#navigation ul ul li:hover ul, #navigation ul ul a:hover ul{
visibility:visible;
}
/*style per Internet Explorer 6*/
#navigation table {
position:absolute;
border-collapse:collapse;
top:0;
left:0;
width:100%;
}
#navigation a:hover{
height:20px;
border-top:5px solid #373737;
border-bottom:5px solid #373737;
line-height:20px;
}
#navigation ul a.sub:hover{
height:25px;
border-bottom:none;
line-height:20px;
}
#navigation ul a:hover{
background-color:#767676;
border-color:#373737;
color:#FFCC00;
}
#navigation ul ul a:hover{
background-color:#DDDDDD;
border-color: #767676;
color:#336699;
}
#navigation ul ul ul a:hover{
background-color:#FFF;
border-color:#DDDDDD;
}






/*
#navigation{ overflow: hidden; margin-bottom: 50px }






*#navigation ul{


* float: left;


* list-style: outside none;


* margin: 0;


* padding: 0;


*}


*


*#navigation li, #navigation a{ float: left }


*


*#navigation a{


* padding:5px 10px;


* margin-right: 5px;


* background: #7b7b7b;


* color: #fff;


* text-decoration: none;


* font-weight: bold


*}


*


*#navigation a:hover, #navigation a:focus{ background-color: #000 }
*/

La parte finale commentata è  del css originale

Offline albyxt

  • Nuovo arrivato
  • *
  • Post: 14
  • Sesso: Maschio
    • Mostra profilo
Re:Aggiungere freccette voce menu
« Risposta #2 il: 29 Dic 2011, 17:04:53 »
Nessuno può aiutarmi?  :(

Offline albyxt

  • Nuovo arrivato
  • *
  • Post: 14
  • Sesso: Maschio
    • Mostra profilo
Re:Aggiungere freccette voce menu
« Risposta #3 il: 01 Gen 2012, 22:01:18 »
up

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:Aggiungere freccette voce menu
« Risposta #4 il: 03 Gen 2012, 10:32:53 »
Ok :) Mettiamoci al lavoro... Se ci fai caso il modulo menu standard di joomla! attribuisce alle voci "madre" (che hanno delle "figlie") la classe parent. La cosa non dovrebbe essere difficile perchè basterebbe associare un
background:url(immagine_freccia.jpg) no-repeat; a tale classe e risolvere il problema.
Prova e fammi sapere! ;)

Offline albyxt

  • Nuovo arrivato
  • *
  • Post: 14
  • Sesso: Maschio
    • Mostra profilo
Re:Aggiungere freccette voce menu
« Risposta #5 il: 05 Gen 2012, 00:30:10 »
Ciao giovi grazie della risposta!!Scusami se intervengo un pò in ritardo ma mi sono messo a studiare un pò la situazione!!Allora la classe di cui parli tu (parent) la crea con il php, io il php lo conosco quando era vecchiotto , ora dalla versione 5 si parla di oop, e solo ora stò iniziando a studiarlo!! potrei anche mettere le freccette manualmente(come puoi vedere ora nel sito) visto che so quali voci "madri" contengono voci "figlie" ma nn è questo che voglio!!

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:Aggiungere freccette voce menu
« Risposta #6 il: 05 Gen 2012, 00:50:22 »
Ma detto tra noi, che ce ne frega del modo in cui viene generata: fosse stato anche uno script in java, l'importante è che agli elementi di classe parent applichi l'immagine della freccia come sfondo ;)
Magari gli dai un bel:
Codice: [Seleziona]
li.parent{
padding-right:10px; //la larghezza della freccetta
background:url(../images/freccia.png) right no-repeat scroll;
}
fa' questa prova!

PS: ce ne sono altri di modi di inserire le "freccette" (anche come testo, cioè sotto forma di virgolette come vedo che hai fatto a meno nella pagina che hai linkato) ma richiedono una modifica del codice php (approposito, al di là dell'oop che oggi è indispensabile per poter gestire al meglio il codice, non si tratta di modifiche così profonde come puoi pensare tu! ;) )
« Ultima modifica: 05 Gen 2012, 00:54:39 da giovi »

Offline albyxt

  • Nuovo arrivato
  • *
  • Post: 14
  • Sesso: Maschio
    • Mostra profilo
Re:Aggiungere freccette voce menu
« Risposta #7 il: 05 Gen 2012, 01:06:16 »
Non va, forse ho capito faccio un'altra prova!


Ok ho fatto però nn è quello che volevo nel senso che volevo capire come modificare il codice php inserendo >> come hai precisato tu nel P.S.!!


P.S.
Dici che nn è difficile come credo io?Bè se nn è difficile è per lo meno molto diversa la programmazione oop che quella procedurale come io sono abituato!!
Credimi mi ritrovo a studiare tutto di nuovo anche con visual basic e con C!!Ovviamente è più semplice per me che conosco la programmazione procedurale che per uno che si avvicina al mondo della programmazione solo ora!!
« Ultima modifica: 05 Gen 2012, 02:33:58 da albyxt »

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:Aggiungere freccette voce menu
« Risposta #8 il: 05 Gen 2012, 10:29:58 »
No, caro albyxt, non ho detto che non è difficile ma che le modifiche non sono così profonde, inoltre non parlo dello studio del paradigma ad oggetti, bensì della modifica strutturale in joomla ;) So benissimo che l'oop non è una cosa immediata (te lo dice uno che ha dovuto ripetere l'esame più di una sola volta..) ma joomla!, per la sua semplicità di utilizzo, divide l'implementazione delle operazioni dalla stampa dei risultati. Se fai una prova, in ogni cartella di un modulo o di un componente troverai una cartella tmp o view o un file default.php in cui è riportata unicamente l'interfaccia che sarà mostrata all'utente ignorando tutto il papocchio di roba che c'è dietro ;)


A questo punto comunque, per ottenere l'effetto che desideri (mi sembrava più pulita una cosa fatta in css, ma nulla toglie che tu possa prendere altre strade!!!) sarà necessario un overriding del modulo (se non l'hai già fatto per ottenere il menu a tendina).
All'interno della cartella mod_menu ci dovrebbe essere la cartella di cui ti parlo sopra, con all'interno un file default.php.
Crea una cartella mod_menu all'interno della sottocartella html del tuo template in modo da avere:
templates/nometemplate/html/com_menu/
ed all'interno ci schiaffi (copiandolo!) il file default.php visto poco fa.
Su questo file apporti tutte le modifiche necessarie.
Ora non ho la possibilità di recuperare il file default.php della versione che usi ma se lo alleghi al topic posso darci un'occhiata e farti sapere!
« Ultima modifica: 05 Gen 2012, 10:32:14 da giovi »

Offline albyxt

  • Nuovo arrivato
  • *
  • Post: 14
  • Sesso: Maschio
    • Mostra profilo
Re:Aggiungere freccette voce menu
« Risposta #9 il: 05 Gen 2012, 21:03:57 »
Ciao giovi, è vero con il css è molto pulito ma devo sempre caricare un immagine (anche se piccola!!), vorrei tenere il più possibile il sito leggero(infatti mi stò creando il template da zero apposta!!).
Cmq ti posto direttamente il codice del default.php nn è molto lungo:


Codice: [Seleziona]

<?php






// no direct access


defined('_JEXEC') or die('Restricted access');










if ( ! 
defined('modMainMenuXMLCallbackDefined') )


{


function 
modMainMenuXMLCallback(&$node$args)


{


$user = &JFactory::getUser();


$menu = &JSite::getMenu();


$active $menu->getActive();


$path = isset($active) ? array_reverse($active->tree) : null;






if (($args['end']) && ($node->attributes('level') >= $args['end']))


{


$children $node->children();


foreach ($node->children() as $child)


{


if ($child->name() == 'ul') {


$node->removeChild($child);


}


}


}






if ($node->name() == 'ul') {


foreach ($node->children() as $child)


{


if ($child->attributes('access') > $user->get('aid'0)) {


$node->removeChild($child);


}


}


}







if ((
$node->name() == 'li') && isset($node->ul)) {


$node->addAttribute('class''parent');



}








if (isset($path) && (in_array($node->attributes('id'), $path) || in_array($node->attributes('rel'), $path)))


{


if ($node->attributes('class')) {


$node->addAttribute('class'$node->attributes('class').' active');


} else {


$node->addAttribute('class''active');


}


}


else


{


if (isset($args['children']) && !$args['children'])


{


$children $node->children();


foreach ($node->children() as $child)


{


if ($child->name() == 'ul') {


$node->removeChild($child);


}


}


}


}






if (($node->name() == 'li') && ($id $node->attributes('id'))) {


if ($node->attributes('class')) {


$node->addAttribute('class'$node->attributes('class').' item'.$id);


} else {


$node->addAttribute('class''item'.$id);


}


}






if (isset($path) && $node->attributes('id') == $path[0]) {


$node->addAttribute('id''current');


} else {


$node->removeAttribute('id');


}


$node->removeAttribute('rel');


$node->removeAttribute('level');


$node->removeAttribute('access');


}


define('modMainMenuXMLCallbackDefined'true);


}






modMainMenuHelper::render($params'modMainMenuXMLCallback');


Bisognerebbe aggiungere un paio di linee di codice qui:


Codice: [Seleziona]

if (($node->name() == 'li') && isset($node->ul)) {


$node->addAttribute('class', 'parent');



}


P.S.
Spero di nn andare O.T.!!

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:Aggiungere freccette voce menu
« Risposta #10 il: 05 Gen 2012, 22:37:54 »
Miseriaccia com'è diverso dalla 1.7!!! Non è che vuoi aggiornare?  ;D
Ci do un'occhiata e ti fo sapere, se non c'è qualcuno più veloce di me!

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:Aggiungere freccette voce menu
« Risposta #11 il: 05 Gen 2012, 22:53:05 »
Un pensiero così: un'immagine del genere in png potrebbe occupare anche meno di un kb, perchè non ti piace questa soluzione? In alternativa, un browser che non riesce a prelevare l'immagine mostrerà l'alt dell'immagine, che ovviamente sarà proprio il testo ">>"

Non mi trovo proprio con questo codice.. è totalmente diverso dall'aggiornamento! :(
« Ultima modifica: 05 Gen 2012, 22:54:51 da giovi »

Offline albyxt

  • Nuovo arrivato
  • *
  • Post: 14
  • Sesso: Maschio
    • Mostra profilo
Re:Aggiungere freccette voce menu
« Risposta #12 il: 05 Gen 2012, 22:55:36 »
Per adesso no, vorrei prima costruire lo scheletro del sito.....poi aggiornerò!!!
Cmq o è passato troppo tempo o nn lo so.......ma nn riesco a capire dove nel codice con quale variabile assegna la voce del menu!!(il testo nn il link)!!!




Tu hai ragione giovi ma ormai vorrei capire!!
« Ultima modifica: 05 Gen 2012, 22:58:50 da albyxt »

Offline albyxt

  • Nuovo arrivato
  • *
  • Post: 14
  • Sesso: Maschio
    • Mostra profilo
Re:Aggiungere freccette voce menu
« Risposta #13 il: 05 Gen 2012, 23:04:08 »
Cmq è giorni che leggo il codice php di svariati file e devo dire che è codice molto sporco e poco ma molto poco commentato!!secondo me gli sviluppatori di joomla dovrebbero rivedere molte cose!!!


P.S.


Attenzione parla uno che ha visto ben poco e nn conosce assolutamente il framework di joomla!!
« Ultima modifica: 05 Gen 2012, 23:06:15 da albyxt »

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:Aggiungere freccette voce menu
« Risposta #14 il: 05 Gen 2012, 23:09:44 »
Ti consiglio assolutamente di aggiornare, di creare il template direttamente per la nuova versione, è tutta un'altra cosa: risparmieresti sangue buttato inutilmente.. parlo solo per esperienza personale naturalmente, non sto qui a diffamare gratuitamente joomla! 1.5 :)
Ti accorgeresti sin dalla prima riga di codice di quanto è stato migliorato!

Offline albyxt

  • Nuovo arrivato
  • *
  • Post: 14
  • Sesso: Maschio
    • Mostra profilo
Re:Aggiungere freccette voce menu
« Risposta #15 il: 05 Gen 2012, 23:20:06 »
Ok, allora mi hai convinto aggiornerò!!Mi andrò a leggere come migrare dalla 1.5 alla 1.7!!Lo sai però che nn mi ricordo se ho installato joomla io manualmente oppure era già fornita come applicazione dal mio hosting dove risiede il sito?!?!?!
Spero nn sia complicato!!!
Grazie giovi per aver perso tempo dietro a me!!

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:Aggiungere freccette voce menu
« Risposta #16 il: 05 Gen 2012, 23:29:20 »
Non voglio fare il guastafeste alby, ma se hai la possibilità di ricominciare tutto daccapo (nuova installazione) avrai sicuramente un risultato più pulito. Se è troppo ignora pure quest'ultimo consiglio ;)

Offline albyxt

  • Nuovo arrivato
  • *
  • Post: 14
  • Sesso: Maschio
    • Mostra profilo
Re:Aggiungere freccette voce menu
« Risposta #17 il: 05 Gen 2012, 23:35:13 »
No nn è troppo anzi!!Basta solo che nn mi crea problemi con il database già esistente!!!O dici di creare da zero anche il database?

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:Aggiungere freccette voce menu
« Risposta #18 il: 06 Gen 2012, 10:37:03 »
Se sei agli inizi, anche quello ;) Una bella installazione pulita di joomla 1.7 (a breve uscirà la 2.5 ma sarà più semplice aggiornare) ti renderà le cose più semplici!

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • *****
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:Aggiungere freccette voce menu
« Risposta #19 il: 06 Gen 2012, 11:48:35 »
Cmq è giorni che leggo il codice php di svariati file e devo dire che è codice molto sporco e poco ma molto poco commentato!!secondo me gli sviluppatori di joomla dovrebbero rivedere molte cose!!!
Sì hai ragione se facciamo una colletta gli compriamo una bella lavatrice così lo ripuliscono per bene.  ;D
Citazione
Attenzione parla uno che ha visto ben poco e nn conosce assolutamente il
framework di joomla!!
Prima di fare certe affermazione gratuite bisognerebbe riflettere ed evitare di dire cose di cui non si riesce nemmeno a capire o conoscere.
 

 



Web Design Bolzano Kreatif