Back to top

Autore Topic: Creare dei miei moduli personalizzati da inserire dentro tema beez_20  (Letto 5087 volte)

Offline AndreaNobili

  • Appassionato
  • ***
  • Post: 295
    • Mostra profilo
Ciao,
ho qualche dubbio su come procedere.

Ho creato una mia versione modificata del template beez_20

Mi è stato chiesto di rendere più netti e separati i menu e l'area dove viene eseguito il login utente così ho pensato di modificare tali moduli in modo tale che siano dentro un riquadro grigio arrotondato, come è stato fatto nel tempalte Neutrino per capirci, quì l'esempio concreto: http://www.themerepublic.com/demo/?t=Neutrino

Quindi in pratica credo che debba modificare i moduli del mio beez_20 e fare in modo che siano esattamente come quelli di Neutrino, quindi che abbiano una cornice rettangolare grigia con bordi arrotondati ma ho le idee un po' confuse su come fare questa cosa all'atto pratico.

Sono andato a smanacciare dentro la cartella del template Neutrino ed ho notato che dentro la cartella html del template neutrino: /templates/tr_neutrino/html/ sono presenti delle cartelle che sembrano servire all'overriding dei moduli e sono: mod_custom, mod_login, mod_menu, mod_search (più altre 2 cartelle che dovrebbero riferirsi a qualche componente: com_contact e com_content e che credo non dovrò toccare)

Quindi mi è venuto da pensare che ad esempio la directory mod_menu contenga i file che vanno ad eseguire l'override del modulo standard di Joomla che gestiscono il modulo del menu (è corretto o dico cavolate?)

Andando ad aprire tale directory trovo il file default.php che contiene queste linee di codice:

Codice: [Seleziona]
<?php
/**
 * @version        $Id: default.php 18212 2010-07-22 06:02:54Z eddieajau $
 * @package        Joomla.Site
 * @subpackage    Templates.atomic
 * @copyright    Copyright (C) 2005 - 2011 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.
?>

<!-- The class on the root UL tag was changed to match the Blueprint nav style -->
<ul class="joomla-nav<?php echo $params->get('class_sfx');?>"<?php
    $tag 
'';
    if (
$params->get('tag_id')!=NULL) {
        
$tag $params->get('tag_id').'';
        echo 
' id="'.$tag.'"';
    }
?>
>
<?php
foreach ($list as $i => &$item) :
    
$id '';
    if(
$item->id == $active_id)
    {
        
$id ' id="current"';
    }
    
$class '';
    if(
in_array($item->id$path))
    {
        
// Changed the active style to match the Blueprint nav style
        
$class .= 'selected ';
    }
    if(
$item->deeper) {
        
$class .= 'parent ';
    }

    
$class ' class="'.$class.'item'.$item->id.'"';

    echo 
'<li'.$id.$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>

In effetti trovo riscontro andando ad analizzare la pagina usando FireBug in quanto la lista ul che gestisce il menù ha effettivamente classe joomla-nav ma il problema è che tale lista è annidata dentro un div con id pari a "module" che a sua volta è annidato in un altro div con id pari a "border". Il problema è che nel mio template derivato da beez_20 ho la struttura di beez_20 dove ho che il contenitore che contiene la lista ul ha classe pari a "moduletable" che non capisco neanche dove sia definito (non nel file index.php della mia versione di beez_20)

Quindi che fare?

In pratica avrei la necessità di inserire nel mio beez_20 i moduli pari pari a quelli presenti nel template neutrino ma non ho le idee molto chiare in merito?

E' una cosa difficile o si fà senza troppi problemi? C'è qualcuno che sà darmi una mano?

Grazie mille
Andrea












Visitate la mia home page: fotografia naturalistica, subacquea, paesaggi,macrofotografia, ritratti, musica e molto altro:
http://www.andreanobiliphoto.com/

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Ciao
Facendo un override cambieresti l'aspetto a tutti i moduli, un metodo molto semplice sarebbe utilizzare un suffisso modulo come spiegato in questo articolo:
http://www.joomla.it/articoli-della-community/4277-moduli-style-classe-e-suffisso-css.html

Offline AndreaNobili

  • Appassionato
  • ***
  • Post: 295
    • Mostra profilo
Ciao
Facendo un override cambieresti l'aspetto a tutti i moduli, un metodo molto semplice sarebbe utilizzare un suffisso modulo come spiegato in questo articolo:
http://www.joomla.it/articoli-della-community/4277-moduli-style-classe-e-suffisso-css.html

Ti ringrazio, gli stò dando un'occhiata al volo, in serata vedrò di approfondire l'argomento...in che senso facendo l'override cambierei l'aspetto a tutti i moduli?

Stavo leggendo questa guida: http://docs.joomla.org/How_to_override_the_output_from_the_Joomla!_core

Non c'entra nulla?

Tnx
Andrea
Visitate la mia home page: fotografia naturalistica, subacquea, paesaggi,macrofotografia, ritratti, musica e molto altro:
http://www.andreanobiliphoto.com/

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
L'override ti permette di apportare delle modifiche o personalizzazioni senza poi perderle ad ogni aggiornamento.Poichè effettui delle modifiche a livello globale di visualizzazione di un modulo questa modifica interesserà poi tutti i moduli, se invece ne voglio personalizzare solo alcuni devo utilizzare un approccio diverso e l'utilizzo del suffisso è uno di questi metodi.

Offline AndreaNobili

  • Appassionato
  • ***
  • Post: 295
    • Mostra profilo
L'override ti permette di apportare delle modifiche o personalizzazioni senza poi perderle ad ogni aggiornamento.Poichè effettui delle modifiche a livello globale di visualizzazione di un modulo questa modifica interesserà poi tutti i moduli, se invece ne voglio personalizzare solo alcuni devo utilizzare un approccio diverso e l'utilizzo del suffisso è uno di questi metodi.

Aspetta forse non sono stato abbastanza chiaro nello spiegarmi.

Ti faccio vedere l'esempio concreto così magari riesci ad indirizzarmi meglio: http://andreanobiliphoto.com/Joomla252ML/index.php/en/

Prendiamo ad esempio il modulo del menu verticale del mio sito:

al suo esterno c'è la colonna sinistra che di fatto è un div con id: "navbar" e classe: "left1 leftbigger"

Ok...poi il codice html relativo al modulo del menu vero e proprio credo che sia questo:

1) Il contenitore più esterno del modulo è un div con classe: "moduletable"
2) Al suo interno c'è una lista non ordinata realizzata con il tag <ul> con classe: "menu"
3) Al cui interno ci sono tutti i vari tag <li> che rappresentano le varie voci del mio menù

Prendiamo ora la demo dell'articolo da te postato: http://www.joomlacsszengarden.com/demo/index.php?option=com_content&view=article&id=105&Itemid=188

Consideriamo ora il modulo relativo al Menu Principale (quello rosso):

Tale modulo è sempre contenuto in una colonna destra rappresentata da un div con id: "leftcolumn" (e fin quà non cambia molto dal mio caso...)

Ora però andando a vedere il codice che rappresenta proprio tale modulo ho:

1) Il contenitore più esterno è un div con id: "module_menu"
2) Al suo interno c'è un altro div con background impostato su questa immagine: ../images/red/mw_box_br.png"

3) Al cui interno c'è un altro div sempre con background impostato su: /images/red/mw_box_tr.png (che rappresenta una parte superiore della cornice (questa quì: http://www.joomlacsszengarden.com/demo/templates/rhuk_suf/images/red/mw_box_tr.png)

4) All'interno c'è ancora un altro div ha come sfondo il restante pezzo superiore della cornice (in modo da poterlo così espandere in orizzontale credo): http://www.joomlacsszengarden.com/demo/templates/rhuk_suf/css/../images/red/mw_box_tl.png

etcetc

Insomma tutto questo per dire che è proprio la struttura del mio e del suo modulo ad essere diversa.

Io vorrei avere un modulo avente tale struttura per poter gestire cornici intorno al modulo cosa che ora non credo proprio di poter fare

E' per questo che chiedevo lumi sull'overriding perchè mi sembra di capire che serva in queste situazioni...o sbaglio? Mi puoi dare una mano?

Grazie mille
Andrea











Visitate la mia home page: fotografia naturalistica, subacquea, paesaggi,macrofotografia, ritratti, musica e molto altro:
http://www.andreanobiliphoto.com/

Offline 56francesco

  • Fuori controllo
  • *
  • Post: 29585
  • Sesso: Maschio
    • Mostra profilo
non c'entra niente l'override,  devi agire con prefisso modulo
se cerchi in joomla.it e nel wiki ci sono gli articoli di tonicopi e le sue guide ai template
(uso XP perchè win98 non si installa) 
PS: non sono un dipendente dello sbonzor quindi è necessario un "per favore" alla richiesta e un "grazie" alla risposta, sempre! PPS: non scrivo mai per primo in MP, in caso contrario chiedimi una conferma, Grazie.

Offline AndreaNobili

  • Appassionato
  • ***
  • Post: 295
    • Mostra profilo
non c'entra niente l'override,  devi agire con prefisso modulo
se cerchi in joomla.it e nel wiki ci sono gli articoli di tonicopi e le sue guide ai template

Ora lo ristudio meglio ma sai dirmi come è possibile usare quella tecnica se di fatto nel mio modulo non c'è la struttura di div annidati adatta? Stò facendo confusione temo...
Visitate la mia home page: fotografia naturalistica, subacquea, paesaggi,macrofotografia, ritratti, musica e molto altro:
http://www.andreanobiliphoto.com/

Offline MasterTheBest

  • Appassionato
  • ***
  • Post: 338
  • Sesso: Maschio
  • Web is not only a browser's geek things.
    • Mostra profilo
Ehm, mi permetto di dissentire: con l'override potresti tranquillamente risolvere il problema E, per il solo modulo interessato, ne specifichi il layout.


OVVIAMENTE, il tuo beez_20 modificato DEVE avere un nome diverso. Io mi sto divertendo ad overradare ::) [size=78%] qualunque cosa: fai sapere[/size]
RAD • JUG Brescia
Se urgente, ti obbligo a contattarmi su twitter@RedsAnDev linkando la tua risposta su questo forum.
Joomla! è aiutarsi, insieme!

 



Web Design Bolzano Kreatif