Joomla.it Forum

Joomla! 2.5 (versione con supporto terminato) => Joomla! 1.6/1.7/2.5 => I Template di Joomla 1.6/1.7/2.5 => Topic aperto da: GinoG - 19 Feb 2013, 17:09:43

Titolo: [Risolto]Come adattare lo sfondo del sito alla pagina del browser?
Inserito da: GinoG - 19 Feb 2013, 17:09:43
 Ciao a tutti, ho bisogno di una mano. Dovrei cambiare lo sfondo ed ho sostituito l’immagine precedente con una a mio piacimento. Ho già cambiato l’immagine altre volte ma stavolta non riesco a farla comparire correttamente su tutta la pagina.
Ho già fatto una ricerca sul forum ed ho trovato diverse discussioni, come questa:
http://forum.joomla.it/index.php/topic,154300.0.html (http://forum.joomla.it/index.php/topic,154300.0.html)
e questa:
http://forum.joomla.it/index.php?topic=165348.0 (http://forum.joomla.it/index.php?topic=165348.0)
utili per approfondire, ma il fatto è che non ho trovato i comandi da inserire nel css, che mi permettano di “adattare“ l’immagine alla pagina web.
Fino ad ora ho provato questi comandi inserite nel color1.css del mio template:
1-
Codice: [Seleziona]
body {
   color: #FFFFFF;
   background: url("http://www.abaca.altervista.org/images/sfondi/trattore.jpg") repeat fixed center top black;
 }
2-
Codice: [Seleziona]
body {
   color: #FFFFFF;
   background: url("http://www.abaca.altervista.org/images/sfondi/trattore.jpg") center top repeat black;
 }
3-
Codice: [Seleziona]
body {
   color: #FFFFFF;
   background: url("http://www.abaca.altervista.org/images/sfondi/trattore.jpg") repeat fixed center top black) center top fixed black;
 }
4-
Codice: [Seleziona]
body {
background-attachment: fixed; background-clip: border-box;
background-color: black;
 background-image: url("http://www.abaca.altervista.org/images/sfondi/trattore.jpg");
 background-origin: padding-box;
    background-position: center top;
    background-repeat: repeat;
    background-size: contain;
    color: #FFFFFF;
}

 E per ultima:
Codice: [Seleziona]
{
background-attachment: scroll; background-clip: border-box;
background-color: black;
 background-image: url("http://www.abaca.altervista.org/images/sfondi/trattore.jpg");
 background-origin: padding-box;
    background-position: center top;
    background-repeat: repeat;
    background-size: cover;
    color: #FFFFFF;
}

Ho trovato in rete delle regole da applicare al body mediante il css ma provandole con nessuna riesco a ottenere un buon risultato. Ecco come si vede lo sfondo: www.abaca.altervista.org (http://www.abaca.alterivista.org)
Qualcuno di voi, saprebbe aiutarmi? Grazie a tutti/e in anticipo

PS: Facendo Ctrl – per 4 volte appare l’immagine di sfondo come io vorrei che si vedesse
Titolo: Re:Come adattare lo sfondo del sito alla pagina del browser?
Inserito da: Cereal___killer - 19 Feb 2013, 21:33:54
Ciao,
 


immagino ti riferisca al fatto che l'immagine è troppo grande....


In  color1.css, nella sezione "body", c'é l'istruzione "background-size: cover;"


cambiala in "background-size: contain;"

Come l'hai messa tu, significa che lo sfondo copre tutta l'area del body... Nel caso ad esempio della home page, si adatta per coprire tutto lo sfondo e dato che l'altezza della pagina è maggiore della larghezza, l'immagine è adattata usando come parametro l'altezza... Per cui è gigante (ovviamente in larghezza non ci sta e va fuori dallo schermo)...

Se la metti a "contain", significa che lo sfondo si adatta all'area visibile del body...
Titolo: Re:Come adattare lo sfondo del sito alla pagina del browser?
Inserito da: Cereal___killer - 19 Feb 2013, 21:52:24
Cmq se posso darti alcuni consigli:


- secondo me le immagini di sfondo, se sono delle foto, non devono ripetersi, perché l'effetto è brutto; vedi che, dopo aver fatto le modifiche che ti ho indicato, se scorri la pagina verso il basso, la foto si ripete più volte... Bruttissimo; io metterei "background-repeat: no-repeat" (sempre in "body");
in tal modo l'immagine è usata solo una volta in cima e sotto rimane semplicemente il colore di sfondo scelto con "background-color" sempre nel "body"... Anche così non è il massimo, dovresti (con un programma di fotoritocco) fare in modo che il bordo inferiore della foto di sfondo "sfumi in trasparenza" in modo che lasci intravvedere il colore di sfondo a poco a poco e non con un taglio netto...


- il riquadro semitrasparente che usi dietro al testo del sito, ha il bordo troppo appiccicato al testo stesso;
in "template.css", modificherei queste righe:



.blog-featured {
padding: 0;
}


in questo modo:



.blog-featured {
padding: 20px;
}


per distanziare il testo dal bordo del riquadro


- anche il balloon che ti avevo aiutato a mettere, è troppo semitrasparente per il tuo sito, il testo all'interno si legge con difficoltà... Lo metterei meno trasparente aggiungendo la proprietà "opacity = 0.95" al suo stile... In questo caso si fa direttamente nello script del balloon, facendolo diventare:





        // <![CDATA[
    jQuery(document).ready(function(){
        jQuery(function() {
            jQuery('.ck-balloon').balloon({
                tipSize: 24,
                css: {
                    border: 'solid 4px #5baec0',
                    padding: '10px',
                    fontSize: '150%',
                    fontWeight: 'bold',
                    lineHeight: '3',
                    backgroundColor: '#666',
                    color: '#fff',
          opacity: '0.95'
                }
            });
        });
    });
        // ]]>
       
   
Titolo: Re:Come adattare lo sfondo del sito alla pagina del browser?
Inserito da: GinoG - 20 Feb 2013, 17:09:11
Ciao C_K, certo! I tuoi consigli sono sempre ben accetti  ;) . Per balloon e sfondo trasparente ho già provveduto facendo come mi hai detto. In effetti lo sfondo che avevo assegnato agli articoli era troppo attaccato al testo e in aggiunta ho "arrotondato" un pò gli spigoli, mentre per quanto riguarda il ballon pensavo potesse andar bene così, ma con la tua correzione è ancora meglio perchè adesso il testo degli altri elementi del sito non interferisce con quello dei balloon. :D
Per quanto riguarda invece lo sfondo del sito la cosa si complica. Concordo con te sul fatto che sia brutto vedere uno sfondo ripetersi. Però con il comando:
Codice: [Seleziona]
background-size:contain;  come hai detto anche tu lo sfondo arriva a metà pagina e questo non mi piace tanto. Vorrei che l'immagine si vedesse a tutta pagina senza però comprometterne troppo la qualità...Conosci qualche altro comando che potremmo provare?

PS: Per il momento sono tornato allo sfondo precedente e sto facendo le prove in locale.
Titolo: Re:Come adattare lo sfondo del sito alla pagina del browser?
Inserito da: Cereal___killer - 21 Feb 2013, 00:09:38
Vedo che hai optato per un'altra soluzione; però così l'immagine si distorce per riempire l'area visibile dello schermo...
Titolo: Re:Come adattare lo sfondo del sito alla pagina del browser?
Inserito da: GinoG - 21 Feb 2013, 10:24:26
Si, :D ho inserito direttamente l'immagine dal file index.php. Ed ho assegnato delle regole dal css. Si l'immagine si distorce un pò ma comunque con questo metodo si riesce a coprire tt la pagina. Vorrei che l'immagine non fosse fissa ma non posso far altro che assegnare al parametro position "fixed" perchè assegnando "scroll" anche in questo caso l'immagine arriva fino a metà pagina.
Credo che dovrò accontentarmi, tu che dici? Non ho trovato altri metodi per adottare lo sfondo alla pagina. Come potrei migliorare ulteriormente la visualizzazione?
Titolo: Re:Come adattare lo sfondo del sito alla pagina del browser?
Inserito da: Cereal___killer - 21 Feb 2013, 12:17:06
Mah, sai, è anche una questione un po' di gusti; a me non piace che le immagini si deformino, quindi solitamente utilizzo due approcci:


1 - se uso come sfondo una foto, la metto con scroll e faccio in modo che il suo bordo inferiore sfumi sul colore di sfondo... In questo modo in alto hai la foto, se vai scorri la pagina verso il fondo pian piano la foto sfuma e diventa un colore unico...
Gli metto anche un "background-position-x: center;" così la foto è centrata orizzontalmente; in questo modo, sia su monitor stretti che larghi si vede nella stessa posizione (altrimenti viene allineata al bordo sinistro, e chi ha un monitor molto grande ad alta risoluzione la vedrebbe tutta su un lato anziché dietro al corpo del sito)..


2 - a volte uso uno sfondo che non è una foto ma bensì un disegno astratto... In questo caso la metto fixed e faccio in modo che l'immagine di sfondo sia almeno 2000 * 1500... In questo modo copre l'area di tutti i monitor; i monitor piccoli ne vedranno solo una porzione, mentre quelli grandi la vedranno quasi tutta, ma non importa perché tanto è un'immagine astratta e quindi non è necessario vederla nella sua totalità... Anche qui si può mettere il "background-position-x: center;" e forse pure un "background-position-y: center;" per centrare per bene il centro dell'immagine col centro dello schermo di ogni monitor...
Titolo: Re:Come adattare lo sfondo del sito alla pagina del browser?
Inserito da: GinoG - 21 Feb 2013, 13:26:01
Si, infatti anche a me il fatto che si deformino le immagini non piace...molto bella la seconda idea del disegno astratto. Per il sito mi hanno chiesto comunque di inserire una foto "reale" che sia in tema con il suo contenuto. Non so come potrebbe sembrare sfumando il bordo inferiore dell'immagine sul colore di sfondo impostato, perchè non ne ho mai visti. Terrò comunque presenti i tuoi suggerimenti perchè potrebbero servirmi per altri siti. Grazie.
Titolo: Re:Come adattare lo sfondo del sito alla pagina del browser?
Inserito da: Cereal___killer - 21 Feb 2013, 13:28:48
Semplicemente rimane così:


http://globalmountain.it/
Titolo: Re:Come adattare lo sfondo del sito alla pagina del browser?
Inserito da: GinoG - 21 Feb 2013, 13:55:52
Ah ok adesso mi è più chiaro  ;) ...penso che la cosa diventi più complicata quando si usa un'immagine caratterizzata da un numero consistente ci colori (io per esempio vicino al margine ho un campo di girasoli e sfumare diventa un po più difficile come anche trovare un colore di sfondo che si adatti bene alla "sfumatura" del bordo...cmq sul tuo sito l'effetto ci sta molto bene ;D anche perchè il tuo sfondo sembra essere un unica immagine...bello l'effetto di movimento  di News del menu, ti posso chiedere se l'hai fatto con maxi menu?
Titolo: Re:Come adattare lo sfondo del sito alla pagina del browser?
Inserito da: Cereal___killer - 21 Feb 2013, 14:27:35
Basterebbe ritagliare il bordo sotto dell'immagine non con una linea dritta ma seguendo un po' il bordo di una fila di fiori... e poi sfumare un po' il bordo...


Per il menù, utilizzo un modulo personalizzato che non ti posso neanche linkare qui, perché ho modificato il codice a partire da un modulo di un servizio a pagamento; in ogni caso non è l'importante, dato che come puoi vedere non utilizzo, in questo caso, nessuna delle funzioni del modulo in questione perché il mio menù al momento è statico (il modulo in ogni caso è simile a mega menu, ma fatto un po' meglio, cioé da' la possibilità di aprire tendine con effetto easing... Cm
Titolo: Re:Come adattare lo sfondo del sito alla pagina del browser?
Inserito da: GinoG - 21 Feb 2013, 14:36:42
Approfitto della tua disponibilità per un' altra domanda :P : Ho creato una nuova posizione (l'ho chiamata lingua) :
http://abaca.altervista.org/?tp=1 (http://abaca.altervista.org/?tp=1) se io volessi creare altre posizioni sullo stesso piano della nuova posizione crata cioè creare una posizione a sinistra, una centrale e una a destra, è possibile farlo? come potrei agire?
Titolo: Re:Come adattare lo sfondo del sito alla pagina del browser?
Inserito da: Cereal___killer - 21 Feb 2013, 14:52:57
Nello stesso modo in cui hai inserito quella, ne inserisci altre... La loro posizione gliela dai inserendo il richiamo della posizione dentro un div con classe CSS adatta a posizionarlo...


Per la domanda sul tasto avevo scritto tutto lo spiegone, ma non mi ha inviato il post completamente...
Cmq la sostanza è che è fatto con plugin jquery.jrumble


http://jackrugile.com/jrumble/


che puoi integrare esattamente come quello dei balloon...


Resta il fatto che non riuscirai a farlo funzionare su una voce di menu perché non ne mastichi abbastanza a quel che ho visto mi spiace:


il plugin jrumble si attiva su un ID CSS e fin qui tutto ok; con quel che hai imparato finora riesci a integrarlo e farlo funzionare ad esempio su un div all'interno di un articolo; ma su una voce di menu significa che devi modificare il file php che crea il menu in modo da fargli fare le voci di menu con un particolare ID... Il modo di far questo dipende dal modulo con cui crei il menu, dal fatto se ci sono override nel template e necessita di comprendere il PHP...
Titolo: Re:Come adattare lo sfondo del sito alla pagina del browser?
Inserito da: GinoG - 21 Feb 2013, 15:12:35
Si in effetti ancora non "mastico" molto di php, ma sto imparando (piano, piano ma sto imparando) ::) . Sai, l'effetto era carino ed ero curioso di sapere come avevi fatto . Provare, alla fine, non mi costa nulla.  ;) Grazie ancora.
Titolo: Re:Come adattare lo sfondo del sito alla pagina del browser?
Inserito da: Cereal___killer - 21 Feb 2013, 15:20:04
Ok allora...

Comincia farlo funzionare su un div qualsiasi dentro un articolo...


Si fa come per il ballon, ma lo script mettilo al fondo della pagina in modo che sia l'ultima cosa ad essere caricata...


Quello del mio sito è:

<script type="text/javascript">
// tipo rumble news (pulsante)


jQuery('#ck_demo5').jrumble({
   x: 7,
   y: 7,
   rotation: 3
});
var demoStart = function(){
   jQuery('#ck_demo5').trigger('startRumble');
   setTimeout(demoStop, 700);
};


var demoStop = function(){
   jQuery('#ck_demo5').trigger('stopRumble');
   setTimeout(demoStart, 7000);
};
demoStart();
</script>


Come vedi è basato sul demo 20 della pagina jrumble (pulse); "rumbla" per 700 ms e poi sta fermo per 7000 ms (dato dalle funzioni demoStart e demoStop)... I parametri x, y e rotation sono le ampiezze di movimento sugli assi e la rotazione di quando "rumbla"...


Ho già messo "jQuery" al posto di "$" per il noconflict mode; noterai che lo script si attiva sull'ID #ck_demo5 (puoi dargli il nome che vuoi es: #mio_nome, l'importante è che lo assegni anche all'elemento HTML che vuoi far "rumblare", es:     <div id="mio_nome">...<>


Devi poi dirmi che modulo usi per fare il menu (il modulo standard di joomla?); è anche fondamentale che mi elenchi il nome di tutti i file (eventualmente) presenti nella sottocartella html del tuo template (guardi da FTP dentro /templates/tuo_template/html



Titolo: Re:[Risolto]Come adattare lo sfondo del sito alla pagina del browser?
Inserito da: Cereal___killer - 21 Feb 2013, 18:15:17
(Ovviamente ho tralasciato la parte in cui scarichi la libreria jrumble dal loro sito, la carichi con FTP e la integri nell'head del tuo sito (come hai fatto per i balloon))...
Titolo: Re:[Risolto]Come adattare lo sfondo del sito alla pagina del browser?
Inserito da: GinoG - 21 Feb 2013, 20:25:12
Ok, fatto. Ho dato l'effetto al titolo dell'articolo.
Per quanto riguarda il menu (quello sulla sinistra), si, uso il modulo di default di joomla.
per l'altra domanda, la cartella html contiene una cartella (com_content) che ne contiene un' altra (article) che contiene il file default.php
Titolo: Re:[Risolto]Come adattare lo sfondo del sito alla pagina del browser?
Inserito da: Cereal___killer - 21 Feb 2013, 21:40:11
Ok quindi nel template non c'é override del menu;
vedi che hai assegnato la vibrazione al tag "h2", ma così facendo vibra anche il titolo del sito, perché vibrano tutti gli elementi "h2"...


Per questo conviene attivare la vibrazione su degli ID, in modo che si applichi ad un solo elemento...




Proviamo a modificare il menu di joomla in modo che assegni un ID univoco a ciascuna voce di menu:




scaricati (via FTP) il file http://www.abaca.altervista.org/modules/mod_menu/tmpl/default.php (http://www.abaca.altervista.org/modules/mod_menu/tmpl/default.php)




Alla riga 14, ovvero prima della riga


<ul class="menu<?php echo $class_sfx;?>"<?php


mettici


$counter = 0;


Modifica la riga 54, che ora è:


   echo '<li'.$class.'>';


in questa:


   echo '<li id="jrumble-'.$counter.' '.$class.'>';


Infine modifica riga 81, che ora è


}


(e precede la riga 82 che contiene endforeach;)


in:


} $counter++;


Salva e sovrascrivi il file via FTP...


A questo punto il tuo sito dovrebbe, ad ogni voce di menu, assegnare un ID del tipo "jrumble-0, jrumble-1, jrumble2 ...."


Così potrai richiamare lo script su un ID specifico...
Titolo: Re:[Risolto]Come adattare lo sfondo del sito alla pagina del browser?
Inserito da: GinoG - 21 Feb 2013, 23:04:30
ok ho modificato il default.php che mi hai indicato seguendo le tue istruzioni. Adesso dove inserisco lo script? Ho provato a metterlo sia nell'index.php che nell'articolo ma sulla voce di menù l'effetto non viene applicato. Vorrei dare l'effetto alla vece di menu "Notizie" ed ho inserito questo script:
 
Codice: [Seleziona]
<script type="text/javascript">
  // <![CDATA[
  jQuery('#jrumble-1 class=').jrumble({
    x: 7,
    y: 7,
    rotation: 3
  });
  var demoStart = function() {
      jQuery('#jrumble-1 class=').trigger('startRumble');
      setTimeout(demoStop, 700);
    };
  var demoStop = function() {
      jQuery('#jrumble-1 class=').trigger('stopRumble');
      setTimeout(demoStart, 7000);
    };
  demoStart();
  // ]]>
 
</script>
Ho sbagliato qualcosa nello scrivere lo script o nel posizionarlo?

Inoltre sul sito è comparsa questa scritta sui 2 menù che ho sul sito: $counter = 0;
 
Titolo: Re:[Risolto]Come adattare lo sfondo del sito alla pagina del browser?
Inserito da: Cereal___killer - 21 Feb 2013, 23:11:19
ok fammi copia e incolla di tutto il file che hai modificato perché c'é un errore da qualche parte (assegna correttamente l'id alla seconda voce di menu ma non alla prima mentre compare visibile sul sito un $counter = 0; che proprio non va bene ;)


Per quanto riguarda lo script, devi attivarlo su


#jrumble-1


non su


#jrumble-1 class=


;)
Titolo: Re:[Risolto]Come adattare lo sfondo del sito alla pagina del browser?
Inserito da: GinoG - 21 Feb 2013, 23:50:24
ok,  :D ecco questo è il file modificato:
Codice: [Seleziona]
<?php
/**
 * @package        Joomla.Site
 * @subpackage    mod_menu
 * @copyright    Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
 * @license        GNU General Public License version 2 or later; see LICENSE.txt
 */

// No direct access.
defined('_JEXEC') or die;

// Note. It is important to remove spaces between elements.
?>

$counter = 0;
<ul class="menu<?php echo $class_sfx;?>"<?php
    $tag 
'';
    if (
$params->get('tag_id')!=NULL) {
        
$tag $params->get('tag_id').'';
        echo 
' id="'.$tag.'"';
    }
?>
>
<?php
foreach ($list as $i => &$item) :
    
$class 'item-'.$item->id;
    if (
$item->id == $active_id) {
        
$class .= ' current';
    }

    if (
in_array($item->id$path)) {
        
$class .= ' active';
    }
    elseif (
$item->type == 'alias') {
        
$aliasToId $item->params->get('aliasoptions');
        if (
count($path) > && $aliasToId == $path[count($path)-1]) {
            
$class .= ' active';
        }
        elseif (
in_array($aliasToId$path)) {
            
$class .= ' alias-parent-active';
        }
    }

    if (
$item->deeper) {
        
$class .= ' deeper';
    }

    if (
$item->parent) {
        
$class .= ' parent';
    }

    if (!empty(
$class)) {
        
$class ' class="'.trim($class) .'"';
    }

    echo 
'<li id="jrumble-'.$counter.' '.$class.'>';

    
// Render the menu item.
    
switch ($item->type) :
        case 
'separator':
        case 
'url':
        case 
'component':
            require 
JModuleHelper::getLayoutPath('mod_menu''default_'.$item->type);
            break;

        default:
            require 
JModuleHelper::getLayoutPath('mod_menu''default_url');
            break;
    endswitch;

    
// The next item is deeper.
    
if ($item->deeper) {
        echo 
'<ul>';
    }
    
// The next item is shallower.
    
elseif ($item->shallower) {
        echo 
'</li>';
        echo 
str_repeat('</ul></li>'$item->level_diff);
    }
    
// The next item is on the same level.
    
else {
        echo 
'</li>';
    } 
$counter++;
endforeach;
?>
</ul>
Titolo: Re:[Risolto]Come adattare lo sfondo del sito alla pagina del browser?
Inserito da: Cereal___killer - 21 Feb 2013, 23:57:12
Sostituisci tutto con questo ;)



Codice: [Seleziona]
<?php
/**
 * @package        Joomla.Site
 * @subpackage    mod_menu
 * @copyright    Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
 * @license        GNU General Public License version 2 or later; see LICENSE.txt
 */


// No direct access.
defined('_JEXEC') or die;


// Note. It is important to remove spaces between elements.
?>

<?php $counter 0?>
<ul class="menu<?php echo $class_sfx;?>"<?php
    $tag 
'';
    if (
$params->get('tag_id')!=NULL) {
        
$tag $params->get('tag_id').'';
        echo 
' id="'.$tag.'"';
    }
?>

<?php
foreach ($list as $i => &$item) :
    
$class 'item-'.$item->id;
    if (
$item->id == $active_id) {
        
$class .= ' current';
    }


    if (
in_array($item->id$path)) {
        
$class .= ' active';
    }
    elseif (
$item->type == 'alias') {
        
$aliasToId $item->params->get('aliasoptions');
        if (
count($path) > && $aliasToId == $path[count($path)-1]) {
            
$class .= ' active';
        }
        elseif (
in_array($aliasToId$path)) {
            
$class .= ' alias-parent-active';
        }
    }


    if (
$item->deeper) {
        
$class .= ' deeper';
    }


    if (
$item->parent) {
        
$class .= ' parent';
    }


    if (!empty(
$class)) {
        
$class ' class="'.trim($class) .'"';
    }


    echo 
'<li id="jrumble-'.$counter.' '.$class.'>';


    
// Render the menu item.
    
switch ($item->type) :
        case 
'separator':
        case 
'url':
        case 
'component':
            require 
JModuleHelper::getLayoutPath('mod_menu''default_'.$item->type);
            break;


        default:
            require 
JModuleHelper::getLayoutPath('mod_menu''default_url');
            break;
    endswitch;


    
// The next item is deeper.
    
if ($item->deeper) {
        echo 
'<ul>';
    }
    
// The next item is shallower.
    
elseif ($item->shallower) {
        echo 
'</li>';
        echo 
str_repeat('</ul></li>'$item->level_diff);
    }
    
// The next item is on the same level.
    
else {
        echo 
'</li>';
    } 
$counter++;
endforeach;
?>
</ul>
Titolo: Re:[Risolto]Come adattare lo sfondo del sito alla pagina del browser?
Inserito da: GinoG - 22 Feb 2013, 00:06:37
Ancora non va :-[ adesso è sparita la scritta $counter = 0; ma mi ha alterato la formattazione della prima voce di menù dei 2 menù ed inoltre l'effetto "rumble" ancora non si vede...
Titolo: Re:[Risolto]Come adattare lo sfondo del sito alla pagina del browser?
Inserito da: Cereal___killer - 22 Feb 2013, 00:27:35

C'erano ancora due errori... Sostituisci di nuovo ;)

Codice: [Seleziona]

<?php
/**
 * @package        Joomla.Site
 * @subpackage    mod_menu
 * @copyright    Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
 * @license        GNU General Public License version 2 or later; see LICENSE.txt
 */


// No direct access.
defined('_JEXEC') or die;


// Note. It is important to remove spaces between elements.
?>

<?php $counter 0?>
<ul class="menu<?php echo $class_sfx;?>"<?php
    $tag 
'';
    if (
$params->get('tag_id')!=NULL) {
        
$tag $params->get('tag_id').'';
        echo 
' id="'.$tag.'"';
    }
?>
>
<?php
foreach ($list as $i => &$item) :
    
$class 'item-'.$item->id;
    if (
$item->id == $active_id) {
        
$class .= ' current';
    }


    if (
in_array($item->id$path)) {
        
$class .= ' active';
    }
    elseif (
$item->type == 'alias') {
        
$aliasToId $item->params->get('aliasoptions');
        if (
count($path) > && $aliasToId == $path[count($path)-1]) {
            
$class .= ' active';
        }
        elseif (
in_array($aliasToId$path)) {
            
$class .= ' alias-parent-active';
        }
    }


    if (
$item->deeper) {
        
$class .= ' deeper';
    }


    if (
$item->parent) {
        
$class .= ' parent';
    }


    if (!empty(
$class)) {
        
$class ' class="'.trim($class) .'"';
    }


    echo 
'<li id="jrumble-'.$counter.'" '.$class.'>';


    
// Render the menu item.
    
switch ($item->type) :
        case 
'separator':
        case 
'url':
        case 
'component':
            require 
JModuleHelper::getLayoutPath('mod_menu''default_'.$item->type);
            break;


        default:
            require 
JModuleHelper::getLayoutPath('mod_menu''default_url');
            break;
    endswitch;


    
// The next item is deeper.
    
if ($item->deeper) {
        echo 
'<ul>';
    }
    
// The next item is shallower.
    
elseif ($item->shallower) {
        echo 
'</li>';
        echo 
str_repeat('</ul></li>'$item->level_diff);
    }
    
// The next item is on the same level.
    
else {
        echo 
'</li>';
    } 
$counter++;
endforeach;
?>
</ul>
Titolo: Re:[Risolto]Come adattare lo sfondo del sito alla pagina del browser?
Inserito da: GinoG - 22 Feb 2013, 00:40:16
ok la visualizzazione è tornata alla normalità ma l'effetto "rumble" si verifica sulla seconda voce del "top menu" e non del mu che vorrei infatti entrambe le voci hanno lo stesso id: jrumble-1 ....
Titolo: Re:[Risolto]Come adattare lo sfondo del sito alla pagina del browser?
Inserito da: Cereal___killer - 22 Feb 2013, 01:31:43
Sì, avevo capito fosse sul top menu da visualizzare l'effetto...

Siccome usi lo stesso modulo per creare entrambi i menu, se vuoi usare rumble con ID sul menu di sinistra, occorre cambiare approccio;


Proviamo con:
Codice: [Seleziona]

<?php
/**
 * @package        Joomla.Site
 * @subpackage    mod_menu
 * @copyright    Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
 * @license        GNU General Public License version 2 or later; see LICENSE.txt
 */


// No direct access.
defined('_JEXEC') or die;


// Note. It is important to remove spaces between elements.
?>

<?php $counter ''?>
<ul class="menu<?php echo $class_sfx;?>"<?php
    $tag 
'';
    if (
$params->get('tag_id')!=NULL) {
        
$tag $params->get('tag_id').'';
        echo 
' id="'.$tag.'"';
    }
?>
>
<?php
foreach ($list as $i => &$item) :
    
$class 'item-'.$item->id;
    if (
$item->id == $active_id) {
        
$class .= ' current';
    }


    if (
in_array($item->id$path)) {
        
$class .= ' active';
    }
    elseif (
$item->type == 'alias') {
        
$aliasToId $item->params->get('aliasoptions');
        if (
count($path) > && $aliasToId == $path[count($path)-1]) {
            
$class .= ' active';
        }
        elseif (
in_array($aliasToId$path)) {
            
$class .= ' alias-parent-active';
        }
    }


    if (
$item->deeper) {
        
$class .= ' deeper';
    }


    if (
$item->parent) {
        
$class .= ' parent';
    }


    if (!empty(
$class)) {
        
$class ' class="'.trim($class) .'"';
    }
    
$counter substr($class,12,3);
    echo 
'<li id="jrumble-'.$counter.'" '.$class.'>';


    
// Render the menu item.
    
switch ($item->type) :
        case 
'separator':
        case 
'url':
        case 
'component':
            require 
JModuleHelper::getLayoutPath('mod_menu''default_'.$item->type);
            break;


        default:
            require 
JModuleHelper::getLayoutPath('mod_menu''default_url');
            break;
    endswitch;


    
// The next item is deeper.
    
if ($item->deeper) {
        echo 
'<ul>';
    }
    
// The next item is shallower.
    
elseif ($item->shallower) {
        echo 
'</li>';
        echo 
str_repeat('</ul></li>'$item->level_diff);
    }
    
// The next item is on the same level.
    
else {
        echo 
'</li>';
    }
endforeach;
?>
</ul>


Se non ho fatto errori questo dovrebbe assegnare ad ogni voce un ID del tipo jrumble-X dove X è pari al numero della classe della voce stessa...


Così dovrebbe essere univoco...


Puoi poi attivare rumble sull'ID appropriato...
Titolo: Re:[Risolto]Come adattare lo sfondo del sito alla pagina del browser?
Inserito da: GinoG - 22 Feb 2013, 15:07:33
oook  ;D grazie sei un grande!
Titolo: Re:[Risolto]Come adattare lo sfondo del sito alla pagina del browser?
Inserito da: Cereal___killer - 22 Feb 2013, 15:15:06

Eh, ti funziona lo stesso ma ho comunque fatto un errore nella funzione di sottoestrazione del nome della classe;


se la classe è class="item-438", avrei voluto ottenere id="jrumble-438", invece ho ottenuto
id="jrumble--43"


Questo perché ho estratto 3 caratteri a partire dalla posizione sbagliata, avrei dovuto partire da una posizione dopo... Lasciandolo così, rischia di non essere univoco (es, le voci con classe item-438 e item-439, genererebbero entrambe un id="jrumble--43")...


Pertanto ti conviene correggere ancora una volta (ovvio che dopo questa correzione devi anche cambiare ancora una volta la classe di attivazione dello script jrumble)...


Codice: [Seleziona]
<?php
/**
 * @package        Joomla.Site
 * @subpackage    mod_menu
 * @copyright    Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
 * @license        GNU General Public License version 2 or later; see LICENSE.txt
 */


// No direct access.
defined('_JEXEC') or die;


// Note. It is important to remove spaces between elements.
?>
<?php $counter ''?><ul class="menu<?php echo $class_sfx;?>"<?php
    $tag 
'';
    if (
$params->get('tag_id')!=NULL) {
        
$tag $params->get('tag_id').'';
        echo 
' id="'.$tag.'"';
    }
?>
><?php
foreach ($list as $i => &$item) :
    
$class 'item-'.$item->id;
    if (
$item->id == $active_id) {
        
$class .= ' current';
    }


    if (
in_array($item->id$path)) {
        
$class .= ' active';
    }
    elseif (
$item->type == 'alias') {
        
$aliasToId $item->params->get('aliasoptions');
        if (
count($path) > && $aliasToId == $path[count($path)-1]) {
            
$class .= ' active';
        }
        elseif (
in_array($aliasToId$path)) {
            
$class .= ' alias-parent-active';
        }
    }


    if (
$item->deeper) {
        
$class .= ' deeper';
    }


    if (
$item->parent) {
        
$class .= ' parent';
    }


    if (!empty(
$class)) {
        
$class ' class="'.trim($class) .'"';
    }
    
$counter substr($class,13,3);
    echo 
'<li id="jrumble-'.$counter.'" '.$class.'>';


    
// Render the menu item.
    
switch ($item->type) :
        case 
'separator':
        case 
'url':
        case 
'component':
            require 
JModuleHelper::getLayoutPath('mod_menu''default_'.$item->type);
            break;


        default:
            require 
JModuleHelper::getLayoutPath('mod_menu''default_url');
            break;
    endswitch;


    
// The next item is deeper.
    
if ($item->deeper) {
        echo 
'<ul>';
    }
    
// The next item is shallower.
    
elseif ($item->shallower) {
        echo 
'</li>';
        echo 
str_repeat('</ul></li>'$item->level_diff);
    }
    
// The next item is on the same level.
    
else {
        echo 
'</li>';
    }
endforeach;
?>
</ul>
Titolo: Re:[Risolto]Come adattare lo sfondo del sito alla pagina del browser?
Inserito da: GinoG - 22 Feb 2013, 15:35:53
Ciao in realtà per attivarlo ho usato il parametro class=item-482 inserindelo direttamente nello script; Credo che quello sia univoco. Ho fotto così:

Codice: [Seleziona]
<script type="text/javascript">
    // <![CDATA[
    jQuery('.item-482').jrumble({
        x: 7,
        y: 7,
        rotation: 1
    });
    var demoStart = function() {
            jQuery('.item-482').trigger('startRumble');
            setTimeout(demoStop, 700);
        };
    var demoStop = function() {
            jQuery('.item-482').trigger('stopRumble');
            setTimeout(demoStart, 300);
        };
    demoStart();
    // ]]>
   
</script>

Se pensi cmq che sia meglio farlo tramite id, ri-modifico default.php e script....
Titolo: Re:[Risolto]Come adattare lo sfondo del sito alla pagina del browser?
Inserito da: Cereal___killer - 22 Feb 2013, 15:38:09
Sì è univoco anche così...


Anche se non mi è chiaro perché il modulo menu di joomla usi una classe anziché un ID per contrassegnare univocamente una voce di menu...
Per questo preferisco gli ID ;)
Titolo: Re:[Risolto]Come adattare lo sfondo del sito alla pagina del browser?
Inserito da: GinoG - 22 Feb 2013, 15:46:08
ok, ;) grazie ancora