Autore Topic: Pagine diverse stesso template  (Letto 2320 volte)

Offline paulfreeman

  • Esploratore
  • **
  • Post: 111
    • Mostra profilo
Pagine diverse stesso template
« il: 13 Apr 2007, 12:15:52 »
Nell'affidare particolari pagine di uno stesso template ad alcune pagine (di sezione o statiche) di joomla ho qualche problema.
Di solito uso il seguente trick:
creo due pagine supplementari che richiamo nella index del template con il seguente codice
<?php
defined( '_VALID_MOS' ) or die( 'Oops... Sorry, wrong page.' );

switch ($option) {
   case 'com_frontpage': //show home page template
     include_once ('front.php');
     break;
           
   default:  // DEFAULT FOR ALL
      include_once ('seconda.php');
      break;   
     
}   
?>
tale stratagemma a meno che non si abbiano esigenze particolari mi sembra che funzioni meglio dell'assegnare diversi template a diverse sezioni se si ha installato il componente ARTIO. Infatti il mod rewrite con diversi template non sempre riesco a configurarlo a dovere.
Il problema è.
ma se io dovessi avere un'altra pagina, di sezione, di categoria o anche statica?
Come dovrei configurare il trick?
La pagina potrebbe essere, che ne so "terza.php" e avere un layout diverso.. come richiamarla con lo script?
Qualche idea?

Offline paulfreeman

  • Esploratore
  • **
  • Post: 111
    • Mostra profilo
Re: Pagine diverse stesso template
« Risposta #1 il: 13 Apr 2007, 22:35:58 »
Se a qualcuno può interessare.. sembra si possa agire così.
mettiamo che vogliamo utilizzare un solo template che però abbia tre pagine diverse
una per l'home page per es front.php
una per i contenuti per es cont.php
una per tutte le altre sezioni other.php
basti creare oltre queste tre pagine
una index.php con il seguente codice
<?php
defined( '_VALID_MOS' ) or die( 'Oops... Sorry, wrong page.' );

switch ($option) {
   case 'com_frontpage': //show home page template
     include_once ('front.php');
     break;
         
         case 'com_content': //show content page template
     include_once ('cont.php');
     break;
   
   default:  // DEFAULT FOR ALL
      include_once ('other.php');
      break;   
     
}   
?>
se poi si vogliono avere tre diverse configurazioni per ognuna delle tre pagine basti creare tre cartelle css (css1, ccs2, ecc)
e tre per le immagini.
ovviamente richimate dai percorsi corretti di ognuna delle tre pagine.
Il file xml può avere l'indice completo dei files.
Il vantaggio rispetto all'usare tre template diversi a me pare sia una maggiore flessibilità di mod rewrite con ARTIO e il fatto che in una sola cartella abbiamo tutto il nostro template e le sue varianti.
Ovvio che se applichiamo la modalità al resto dei componenti
per esempio wrapper
news feed
links
potremmo avere per ognuna di queste pagine un diverso template.
A me funziona.
Gli specialisti dei template sapranno smentire o confermare.
 :)

Offline joomlapixel

  • Abituale
  • ****
  • Post: 1555
    • Mostra profilo
Re: Pagine diverse stesso template
« Risposta #2 il: 13 Apr 2007, 23:31:03 »
In realtà credo che sarebbe giusto interpellare in primis i programmatori,se funziona come dici è un bel passo in avanti.
Grazie per la condivisione e sentiamo gli altri.

Offline paulfreeman

  • Esploratore
  • **
  • Post: 111
    • Mostra profilo
Re: Pagine diverse stesso template
« Risposta #3 il: 14 Apr 2007, 00:44:23 »
L'ho testato in locale con Ravenswood-JS-1.0.12.1
con tre modelli grafici dello stesso template
e on line con due..
per ora tutto ok.. e con molta duttilità. :)

Offline paulfreeman

  • Esploratore
  • **
  • Post: 111
    • Mostra profilo
Re: Pagine diverse stesso template
« Risposta #4 il: 07 Lug 2007, 09:39:46 »
Riprendo il post perché sollecitato da messaggio privato ad una spiegazione.

Fare un template con due modelli grafici distinti
uno per la home
e uno per le altre pagine
è possibile.

Io faccio così. Premetto che non sono sicuro al 100 % che ciò sia giusto da parte della programmazione core di Joomla!

1 - prendete un template free di vostro gradimento in cui vedete le possibili variazioni funzionali al vostro lavoro.

2 - aprite la cartella del vostro template e create due pagine speculari nel codice alla index.php
per esempio
front.php
e
other.php
rispettivamente la front.php sarà la vostra homepage e la pagina other.php sarà tutte le altre pagine del sito

3 - aprite la pagine index.php e sostituite il codice presente con questo codice:

<?php
defined( '_VALID_MOS' ) or die( 'Oops... Sorry, wrong page.' );

switch ($option) {
   case 'com_frontpage': //show home page template
     include_once ('front.php');
     break;
           
   default:  // DEFAULT FOR ALL
      include_once ('other.php');
      break;   
     
}   
?>

questo codice farà da sniff per fare in modo che la vostra home sia front.php (ed il suo codice)
e le altre pagine utilizzino la pagina other.php

4 - adesso dobbiamo creare un'altro css per la seconda pagina php.
Creiamo una seconda cartella che possiamo chiamare css2 e rinominiamo i file interni così:
template_css_2.css
Tale cartella css2 conterrà, per ora, i file css speculari alla cartella originaria ma, appunto, rinominati.
Attenzione!
Bisognerà fare in modo, nel contempo, che la pagina other.php punti a questo template.. pertanto nei tag bisognerà modificare il puntamento in maniera appropriata così:
<link rel="stylesheet" type="text/css" href="<?php echo _TEMPLATE_URL; ?>/css2/template_css2.css" />

4 - allo stesso modo dobbiamo creare una cartella speculare per le immagini dentro la cartella del template che potremmo chiamare "images2".
Anche questa cartella potrà avere le immagini personalizzate della pagina other.php.
Attenzione! Anche qui il percorso delle immagini dovrà puntare alla seconda cartella "images2"; pertanto facciamo le dovute modifiche nella pagina other.php
Basti cambiare eventuale stringa di percorso da "images" a "images2".

5 - fatta questa operazione modifichiamo per correttezza anche il file xml templateDetails
fornendo i duplici percorsi delle immagini  e dei css.

Alla fine il nostro template free dovrà contenere nella sua cartella i seguenti files e cartelle:
index.php
front.php
otherpage.php
images (cartella)
images2 (cartella)
css (cartella)
css2 (cartella)
templateDetails
template_thumbnail

questa semplice tecnica è stata utilizzata per diversi siti e testata con molti componenti, moduli e bot.
Anche con i più conosciuti mod-rewrite e non ha dato, fino ad ora, nessun problema.
Ovviamente il fatto che funzioni non vuol dire, ripeto, che sia giusta dal punto di vista del core di Joomla!
Non sono programmatore e non sta a me dirlo.
Con l'augurio che possa essere utile. ;)

Offline stelici

  • Appassionato
  • ***
  • Post: 391
  • Sesso: Maschio
    • Mostra profilo
Re: Pagine diverse stesso template
« Risposta #5 il: 07 Lug 2007, 10:58:20 »
Ciao ho letto con attenzione i tuoi post, e credo siano abbastanza chiari (bisogna mettere in pratica).

Per capire meglio l'utilità di tutto ciò potresti fare un esempio, del tuto sito o altro in modo da vedere visivamente cosa è.

grazie


ti spiego meglio il perchè della mia richiesta.

sto realizzando un sito di fantacalcio, quindi ho la mia index con il suo template strutturato come desidero, dal quale attraverso link del menu, punto ad altre pagine del sito (sezioni vere  e proprie) che devono avere un altra struttura pur avendo lo stesso template (menu diverso e/o aggiunta di altro menu e cosi via).


credo se ho capito bene, è cio che hai fatto.
Ti piace il fantacalcio!!!
Allora vieni a trovarmi su www.fantacalciobazar.altervista.org.
Cerchiamo persone capaci e volenterose per lo sviluppo della nuova piattaforma.

Offline paulfreeman

  • Esploratore
  • **
  • Post: 111
    • Mostra profilo
Re: Pagine diverse stesso template
« Risposta #6 il: 07 Lug 2007, 12:13:51 »
Un esempio è questo che ho svolto con un template acquistato..
le diversità sono minime ma importanti ai fini del layout
www.zammerumaskil.com
un altro esempio è stato fatto qui per distinguere i due loghi tra home e altre pagine
www.labriolainafrica.com
tuttavia le differenze possono essere anche radicali per colore, immagini, etc

 

Host

Torna su