Back to top

Autore Topic: [RISOLTO + SOLUZIONE] Aggiungere una nuova posizione x moduli al template  (Letto 28768 volte)

Offline nar

  • Nuovo arrivato
  • *
  • Post: 22
    • Mostra profilo
Ciao!
Ho la necessita di inserire alcuni moduli in posizione "CENTER" nel mio abbozzo di Joomla1.5.

Ho trovato qualche guida...però cmq non sono riuscito nel mio intento.

Come faccio a creare una posizione che chiamerò "custom" che assumerà come posizione "center" (quella degli articoli, tanto per intenderci), nel template?

Qualcuno mi può consigliare qualche template free con molte posizioni già inserite, per i moduli?

Grazie mille!
Luca.
« Ultima modifica: 05 Lug 2008, 10:44:27 da nar »

Offline nar

  • Nuovo arrivato
  • *
  • Post: 22
    • Mostra profilo
Re: Aggiungere una nuova posizione x moduli al template
« Risposta #1 il: 05 Lug 2008, 10:44:08 »

Ho risolto, da solo.
Per gli sventurati programmatori che verrano, cerco di spiegare come ho fatto, anche se...non e' stato facilissimo, perchè i file css dei template e l'index.php dei template, sono molto confusionarie, e poco commentate, come dovrebbero invece essere!!! Bacchettata sulle mani agli sviluppatori!


ATTENZIONE

Effettuare prima di procedere una copia di BACKUP dei file che stiamo andando a modificare!! Basta cancellare un > di troppo e la frittata e' fatta!!!
I file da modificare, sono essenzialmente 3. L'index.php e il templateDetails.xml nella cartella del template, infine il template.css nella cartella css del template.

Iniziamo con il primo passo:

Per far si che Joomla! ti dia la possibilità quantomeno di scegliere una posizione (anche se fittizia) dobbiamo inserirla nel menu a tendina delle posizioni, quindi aprire il file "templateDetails.xml" con un qualsiasi editor sia html\php\testo e cercare la tag <positions>, dentro questa tag, ci sono tutte le posizioni disponibili per i moduli, che vedete nel menu a tendina "positions". Aggiungiamo la seguente riga in fondo: <position>center</position>, salviamo ed andiamo a modificare il css.

Il Css va modificato perchè dobbiamo creare un nuovo DIV che chiameremo "center" al quale vanno dati alcuni paramentri per farlo visulalizzare correttamente. In fondo al css aggiungete questo codice:

Codice: [Seleziona]
#center {
  float: left;
  width:100%}
 

Float: Left; indica che deve stare a sinistra, sopra tutto quello che trova.

width: 100%; assegna la larghezza al 100% dello spazio disponibile, e' possibile anche assegnare una variabile nel caso vogliamo mettere due posizioni center1 e center2 affiancate, però di questo ancora non sono certo di poterlo spiegare correttamente!

Con il css abbiamo finito!

Adesso...la parte che mi ha portato via un pò più di tempo, perchè molto poco intuitiva....(Ribadisco la bacchettata!)

Andiamo a modificare il file "index.php"

Sicuramente nel vostro template ci sarà questa stringa:

Codice: [Seleziona]
$user1 = $this->countModules('user1')?1:0;
Cercatela all'interno del file index.php, appena sotto aggiungete quest'altra:

Codice: [Seleziona]
$center = $this->countModules('center')?1:0;
Adesso viene il macello! :)

generalmente tutti i template che ho visto di joomla, bene o male hanno i due moduli "Notizie recenti" e "I piu letti", nel 90% dei casi, sono affibbiati alle posizioni "user1" ed "user2" per il secondo. Quindi se questo è il nostro caso, cerchiamo la stringa:

Codice: [Seleziona]
<jdoc:include type="modules" name="user2" style="xhtml" />
tutto il tag del codice della posizione "user2" e' questo:
Codice: [Seleziona]
<?php endif; ?>
<?php if ($user2) : ?>
      <div id="user2" style="<?php echo $user2_style?>">
      <jdoc:include type="modules" name="user2" style="xhtml" />
      </div>
            <?php endif; ?>
      </div>

Sotto quest'utilmo stralcio di codice noi dobbiamo inserire questo:

Codice: [Seleziona]
<?php /*Aggiungo la posizione center!!!! */?>                                       
<?php if ($this->countModules('center')) : ?>
  <div id="center">
        <jdoc:include type="modules" name="center" style="xhtml" />
    </div>
<?php endif; ?>
<?php /*Fine*/?>

Salviamo...il tutto, e provate poi a mettere un modulo qualsiasi nella nuova posizione che abbiamo chiamato "center".

Dovrebbe funzionare correttamente, salvo qualche errore di visualizzazione che potete corregere nel div center del file css di prima.

Grazie, spero di essere stato utile a qualcuno...

Ecco il risultato finale:



« Ultima modifica: 05 Lug 2008, 11:43:43 da nar »

Offline = odino =

  • Instancabile
  • ******
  • Post: 5696
  • Sesso: Maschio
  • "In realtà li trasforma in menomati" Danzel
    • Mostra profilo
Bravo nar, ti faccio solo notare che anche senza commenti degli sviluppatori andando qui ne avevi di roba da leggere  :D

ciao  :)

Offline nar

  • Nuovo arrivato
  • *
  • Post: 22
    • Mostra profilo
sisi, le ho lette tutte o quasi quelle guide, però non è che vanno molto nello specifico, sono molto generiche, e sinceramente ci ho capito non tantissimo, quanto è bastato per capire il meccanismo di joomla!

cmq sarai concorde con me, che hanno risparmiato sui commenti :P
Poi vabbè io ho la mania del programmatore incallito, metto un commento anche quando mi fermo per un caffè tra un pò, quindi prendi con le pinze le mie critiche :P però, l'avessi fatto io avrei descritto ogni signola funzione, anche per comodità del programmatore stesso.

Io lo faccio perchè sono un casinista unico, anche nella programmazione, dove metto codice a destra e sinistra, se non aggiungo commenti, divento scemo a fare i debug, e la successiva puliza del codice superfluo...

Offline raizen

  • Esploratore
  • **
  • Post: 150
    • Mostra profilo
Re: Aggiungere una nuova posizione x moduli al template
« Risposta #4 il: 05 Ago 2008, 23:52:32 »


Per far si che Joomla! ti dia la possibilità quantomeno di scegliere una posizione (anche se fittizia) dobbiamo inserirla nel menu a tendina delle posizioni, quindi aprire il file "templateDetails.xml" con un qualsiasi editor sia html\php\testo e cercare la tag <positions>, dentro questa tag

A me non compare nulla di tutto questo!

Offline PakOOn

  • Esploratore
  • **
  • Post: 99
  • Sesso: Maschio
    • Mostra profilo
Ottimi suggerimenti.....
con qualche modifica si puo` modificare quasi tutti i template.

Grazie.
********************************************
"Io stimo più il trovar un vero, benché di cosa leggiera, ché il disputar lungamente delle massime questioni, senza conseguir verità nissuna." Galileo Galilei

Offline tonicopi

  • Global Moderator
  • Instancabile
  • ********
  • Post: 12790
  • Sesso: Maschio
    • Mostra profilo
Bravo nar! :D
Con il tuo post mi hai fatto venir voglia di modificare, migliorandola   e rendendola più comprensibile, la Faq del wiki.
Adesso faccio poi torno a mostrarti :)
EDIT: ho fatto. Dimmi se è chiaro:
http://wiki.joomla.it/index.php?title=Come_aggiungo_nuove_posizioni_modulo%3F
« Ultima modifica: 27 Ott 2008, 17:10:43 da tonicopi »
joomlacsszengarden.com = il giardino dei css di Joomla!
L'attesa del piacere è essa stessa... piacere!

Offline Crazy

  • Nuovo arrivato
  • *
  • Post: 13
    • Mostra profilo
Hola!
ho provato la soluzione di nar e quella inserita su wiki da tonicopi, ma non riesco ad adattarla alla mia situazione, sebbene molto simile...
se avete voglia e tempo da dedicarmi...  ;D

- prendiamo come esempio un template che tutti hanno sotto mano, JA_Purity di default su joomla.
- supponiamo volessi inserire un componente al centro della pagina e sopra la notizia "flash" dal titolo " Versione 1.5! ".

che passi devo seguire?

Grazie

Crazy

Offline tonicopi

  • Global Moderator
  • Instancabile
  • ********
  • Post: 12790
  • Sesso: Maschio
    • Mostra profilo
Non puoi mettere un modulo al centro della pagina inserendolo nella index.php del template. Là puoi inserirlo solo sopra o sotto gli articoli. Se lo vuoi inserire dentro un articolo, per esempio per mettere un banner di google nel bel mezzo del testo di un articolo devi usare il codice
Codice: [Seleziona]
{loadposition nomeposizionecreata}nel punto dove vuoi richiamare il modulo.

Ma non capisco cosa trovi di difficile nella faq. Se la segui passo passo dovresti riuscire ad inserire il modulo. ;D

Venendo a Ja_Purity io in questo sito
www.common.it
ho inserito diverse posizioni nel corpo centrale.
Sopra gli articoli vedrai un banner. Poi gli articoli. Poi un altro banner. Poi un modulo della componente eventi. E infine un altro banner.

Qui posto il codice contenuto nella index.php prima degli inserimenti delle nuove posizioni modulo e che dà origine al content. Non è certo difficile individuarlo perchè è commentato e ci dicono quando inizia e quando finisce il content che è appunto la parte della pagina che ci interessa esaminare. Io inserisco altri commenti per facilitare la lettura del codice.
Codice: [Seleziona]
<!-- BEGIN: CONTENT -->
<div id="ja-contentwrap">
<div id="ja-content">
<!-- la riga che segue serve per far apparire i messaggi di sistema di joomla, tipo grazie di averi contattato, ecc. -->
<jdoc:include type="message" />
<!-- qui inizia il codice per inserire la breadcrumbs, briciole di pane che servono per dirci dove ci troviamo nel sito tipo: home -chi siamo - contatti - webmaster -->
<?php if(!$tmpTools->isFrontPage()) : ?>

<div id="ja-pathway">
<jdoc:include type="module" name="breadcrumbs" />
</div>
<?php endif ; ?>
<!-- qui si richiamano gli articoli come li abbiamo impostati nei settaggi. Quante notizie, in quante colonne, con il leggi tutto, ecc -->
<jdoc:include type="component" />
<!-- qui, sotto gli articoli era già prevista una posizione modulo per i banner -->
<?php if($this->countModules('banner')) : ?>
<div id="ja-banner">
<jdoc:include type="modules" name="banner" />
</div>
<?php endif; ?>

</div>
</div>
<!-- END: CONTENT -->

E qui posto il codice dopo aver inserito le nuove posizioni modulo. Inserisco i commenti come piace a nar e come sarebbe bene fare ;D
Codice: [Seleziona]
<!-- BEGIN: CONTENT -->
<div id="ja-contentwrap">
<div id="ja-content">



<?php if(!$tmpTools->isFrontPage()) : ?>
<div id="ja-pathway">
<jdoc:include type="module" name="breadcrumbs" />

</div>
<?php endif ; ?>
<!-- Qui inserisco la posizione per il banner in alto sopra gli articoli che chiamo user7 -->
<?php if($this->countModules('user7')) : ?>
<div id="ja-banner2">
            <jdoc:include type="modules" name="user7" style="xhtml" />
</div>
<?php endif; ?>
<!--qui termina user7-->
<div style="clear:both; padding-top:10px">
<jdoc:include type="message" />
<jdoc:include type="component" />
</div>
<!-- ecco la user8 per il banner sotto gli articoli -->
<?php if($this->countModules('user8')) : ?>
<div>
<jdoc:include type="modules" name="user8" style="xhtml" />

</div>
<?php endif; ?>
<!-- finisce la user8 e inizia la user9 per il modulo degli eventi -->
<?php if($this->countModules('user9')) : ?>
<div>
<jdoc:include type="modules" name="user9" style="xhtml" />

</div>
<?php endif; ?>
<!-- fine user9 e inizio user11 al momento non utilizzata-->
<?php if($this->countModules('user11')) : ?>
<div>
<jdoc:include type="modules" name="user11" style="xhtml" />

</div>
<?php endif; ?>

<!-- fine posizione user11 e inizio della posizione banner -->
<?php if($this->countModules('banner')) : ?>
<div id="ja-banner">

<jdoc:include type="modules" name="banner" />
</div>
<?php endif; ?>

</div>
</div>
<!-- END: CONTENT -->

Fammi sapere se dopo questa mia faticaccia sei almeno riuscito ad inserire il tuo modulo! :D :D :D
joomlacsszengarden.com = il giardino dei css di Joomla!
L'attesa del piacere è essa stessa... piacere!

Offline pentolino75

  • Nuovo arrivato
  • *
  • Post: 16
    • Mostra profilo
Salve, io ho il problema invece di inserire una posizione a sinistra ( www.xboxlivenews.it) dove vorrei metterci i menù ed altre cose, ma inserendo il codice in qualsiasi posizione dell'index.php, mi appare sopra le notizie (user1). Io vorrei inserire la posizione a sinistra, come succede per la posizione "inset" e "Right".
Potreste aiutarmi?
Grazie

Offline tonicopi

  • Global Moderator
  • Instancabile
  • ********
  • Post: 12790
  • Sesso: Maschio
    • Mostra profilo
Salve, io ho il problema invece di inserire una posizione a sinistra ( www.xboxlivenews.it) dove vorrei metterci i menù ed altre cose, ma inserendo il codice in qualsiasi posizione dell'index.php, mi appare sopra le notizie (user1). Io vorrei inserire la posizione a sinistra, come succede per la posizione "inset" e "Right".
Potreste aiutarmi?
Grazie
Scusami ma non mi è chiara la domanda. Vuoi davvero inserire una nuova posizione modulo in quel template? Ce ne sono già più che a sufficienza, secondo me. Vofrresti creare una terza colonna  a destra accanto ad inset a right? O invece inserire una nuova colonna a sinistra? ;D
joomlacsszengarden.com = il giardino dei css di Joomla!
L'attesa del piacere è essa stessa... piacere!

Offline pentolino75

  • Nuovo arrivato
  • *
  • Post: 16
    • Mostra profilo
Mi servirebbe inserire una nuova colonna a sinistra e magari eliminarne una a destra

Offline tonicopi

  • Global Moderator
  • Instancabile
  • ********
  • Post: 12790
  • Sesso: Maschio
    • Mostra profilo
Allora devi individuare il div che compone la colonna inset nella index.php del template e spostarlo sopra a quello che forma il main della pagina. Devi anche modificare l'immagine di background della pagina perchè altrimenti la righetta che divide la colonna continua ad apparire in mezzo ai contenuti. :)
joomlacsszengarden.com = il giardino dei css di Joomla!
L'attesa del piacere è essa stessa... piacere!

Offline Crazy

  • Nuovo arrivato
  • *
  • Post: 13
    • Mostra profilo

Fammi sapere se dopo questa mia faticaccia sei almeno riuscito ad inserire il tuo modulo! :D :D :D

Grazie mille  ;D
tutto ok!

Offline pentolino75

  • Nuovo arrivato
  • *
  • Post: 16
    • Mostra profilo
Allora devi individuare il div che compone la colonna inset nella index.php del template e spostarlo sopra a quello che forma il main della pagina. Devi anche modificare l'immagine di background della pagina perchè altrimenti la righetta che divide la colonna continua ad apparire in mezzo ai contenuti. :)

Grazie ci provo e ti faccio sapere!

Offline nar

  • Nuovo arrivato
  • *
  • Post: 22
    • Mostra profilo
Bravo nar! :D
Con il tuo post mi hai fatto venir voglia di modificare, migliorandola   e rendendola più comprensibile, la Faq del wiki.
Adesso faccio poi torno a mostrarti :)
EDIT: ho fatto. Dimmi se è chiaro:
http://wiki.joomla.it/index.php?title=Come_aggiungo_nuove_posizioni_modulo%3F


E' perfetta..anche se ti rispondo con un pò di ritardo.. :P

Offline tonicopi

  • Global Moderator
  • Instancabile
  • ********
  • Post: 12790
  • Sesso: Maschio
    • Mostra profilo
Alla faccia del ritardo! Sono passate tutte le feste natalizie e siamo quasi in quaresima :D
Non ricordavo nemmeno più questo post...
joomlacsszengarden.com = il giardino dei css di Joomla!
L'attesa del piacere è essa stessa... piacere!

Offline fabrisc

  • Esploratore
  • **
  • Post: 71
  • Sesso: Maschio
    • Mostra profilo
Grazie mi sei stato molto utile per risolvere un problema simile
http://forum.joomla.it/index.php/topic,78740.0.html

Offline Jurimbert

  • Nuovo arrivato
  • *
  • Post: 13
    • Mostra profilo
Ciao a tutti, io ho seguito questo interessante post per riuscire ad aggiungere, nel template "Rando" una nuova posizione "menu" dove dovrebbe stare la posizione "left" normale, che in questo template viene, credo erroneamente visualizzata a destra del corpo articolo...
Come vedete, seguendo le vostre istruzioni sono riuscito ad inserire il menu, ma :
 1 come posso fare per farlo risultare più visibile, magari tramite uno sfondo solamente dietro al menu ?
Anche uguale al menu sotto l'header, cosi si prende graficamente....
 2 (RISOLTO) come posso fare in modo che il corpo articolo non parta sotto il menu, ma alla sua destra?
 3 nel seguente codice:
Codice: [Seleziona]
<?php /*Aggiungo la nuova posizione modulo */?>                                       
    <?php if ($this->countModules('nomeposizionecreata')) : ?>
      <div id="nuovo_div">
        <jdoc:include type="modules" name="nomeposizionecreata" style="xhtml" />
      </div>
   <?php endif; ?>
 <?php /*Fine aggiunta nuova posizione modulo*/?>

io ho tolto
Codice: [Seleziona]
<?php /*Aggiungo la nuova posizione modulo */?>      ed     
Codice: [Seleziona]
<?php /*Fine aggiunta nuova posizione modulo*/?>e vedo che ha funzionato lo stesso, ho fatto bene?

il sito è http://www.prolocoparre.com

Un grazie a chi si interesserà ;)
« Ultima modifica: 15 Ago 2009, 16:24:31 da Jurimbert »

Offline kyboy

  • Nuovo arrivato
  • *
  • Post: 1
    • Mostra profilo
A distanza di ormai 2 anni abbondanti.... GRAZIE RAGAZZUOLI !!!   ;D

 



Web Design Bolzano Kreatif