Back to top

Autore Topic: [Risolto]Come adattare lo sfondo del sito alla pagina del browser?  (Letto 13959 volte)

Offline GinoG

  • Esploratore
  • **
  • Post: 84
    • Mostra profilo
Re:[Risolto]Come adattare lo sfondo del sito alla pagina del browser?
« Risposta #20 il: 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>

Offline Cereal___killer

  • Appassionato
  • ***
  • Post: 287
    • Mostra profilo
Re:[Risolto]Come adattare lo sfondo del sito alla pagina del browser?
« Risposta #21 il: 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>
No way as a way,
   no limit as a limit...

Offline GinoG

  • Esploratore
  • **
  • Post: 84
    • Mostra profilo
Re:[Risolto]Come adattare lo sfondo del sito alla pagina del browser?
« Risposta #22 il: 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...

Offline Cereal___killer

  • Appassionato
  • ***
  • Post: 287
    • Mostra profilo
Re:[Risolto]Come adattare lo sfondo del sito alla pagina del browser?
« Risposta #23 il: 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>
No way as a way,
   no limit as a limit...

Offline GinoG

  • Esploratore
  • **
  • Post: 84
    • Mostra profilo
Re:[Risolto]Come adattare lo sfondo del sito alla pagina del browser?
« Risposta #24 il: 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 ....

Offline Cereal___killer

  • Appassionato
  • ***
  • Post: 287
    • Mostra profilo
Re:[Risolto]Come adattare lo sfondo del sito alla pagina del browser?
« Risposta #25 il: 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...
No way as a way,
   no limit as a limit...

Offline GinoG

  • Esploratore
  • **
  • Post: 84
    • Mostra profilo
Re:[Risolto]Come adattare lo sfondo del sito alla pagina del browser?
« Risposta #26 il: 22 Feb 2013, 15:07:33 »
oook  ;D grazie sei un grande!

Offline Cereal___killer

  • Appassionato
  • ***
  • Post: 287
    • Mostra profilo
Re:[Risolto]Come adattare lo sfondo del sito alla pagina del browser?
« Risposta #27 il: 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>
No way as a way,
   no limit as a limit...

Offline GinoG

  • Esploratore
  • **
  • Post: 84
    • Mostra profilo
Re:[Risolto]Come adattare lo sfondo del sito alla pagina del browser?
« Risposta #28 il: 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....

Offline Cereal___killer

  • Appassionato
  • ***
  • Post: 287
    • Mostra profilo
Re:[Risolto]Come adattare lo sfondo del sito alla pagina del browser?
« Risposta #29 il: 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 ;)
No way as a way,
   no limit as a limit...

Offline GinoG

  • Esploratore
  • **
  • Post: 84
    • Mostra profilo
Re:[Risolto]Come adattare lo sfondo del sito alla pagina del browser?
« Risposta #30 il: 22 Feb 2013, 15:46:08 »
ok, ;) grazie ancora

 



Web Design Bolzano Kreatif