Fusion e page.tpl.php

14 contenuti / 0 new
Ultimo contenuto
Fusion e page.tpl.php

Qualcuno ha capito come si customizza il page.tpl.php di Fusion?
Mi sembra particolarmente contorto e messo in mano a troppe funzioni.

Esiste una guida comleta?

dipende cosa devi fare.
se mi dai un po' do dettagli posso provare...

Partendo dal tema fusion_starter io sto creando un tema base che eredita il fusion_core (così non ho problemi di portabilità legati agli aggiornamenti di fusion) e che verrà ereditato da altri temi che avranno solo la funzione di modificare colori o al massimo qualche lieve modifica in page.tpl.php.

La questione è.. io ho creato il tema, ho aggiunto nuovi css x il grid ed impostatto nel file .info nuovi parametri skinr sempre per l'aggiunta del nuovo formato per il grid.

Fino a qui tutto BENE.

A questo punto io dovrei inserire in nel mio tema un page.tpl.php e sistemarlo dal punto di vista delle collocaizoni dei blocchi DIV.

in maniera molto semplificata mi serve quacosa del genere.

<div header></div>
<div pagina>
  <div colonna nodi></div>
<div sidebar>
     <div rectangolo></div>
     <div sidebars>
        <div sidebar destra></div>
        <div sidebar sinistra></div>
    </div>
  </div>
</div>
<div footer></div>

Il blocco div sidebar è quello su cui si concentano la maggiorparte degli inteventi da fare. perchè fusion_core prevede che una delle sidebar sia integrata in un blocco che comprende anche la colonna + ampia, quella dei nodi.

Succede che al momento, non essendo sufficientemente esperto di Fusion, trovo che il page.tpl.php sia stracarico di div e classi... e FORSE molte delle funzioni php richiamate definiscono anche gli stili.

in giornata ci lavoro. se puoi posta un'immagine del layout.
una cosa: attenzione con l'ereditarietà dei temi: core->subtheme funziona, core->subtheme->sub-subtheme è sconsigliato (con fusion?) e a volte non funge. meglio lavorare con skinr.
vedi: http://drupal.org/node/481142
e http://drupal.org/node/629454 (ultimo paragrafo)

Bravo Carlo - sto seguendo con attenzione... Grazie dei consigli.

Più imparo, più dubito.

<a href="mailto:[email protected]" rel="nofollow">[email protected]</a> wrote:
in giornata ci lavoro. se puoi posta un'immagine del layout.
una cosa: attenzione con l'ereditarietà dei temi: core->subtheme funziona, core->subtheme->sub-subtheme è sconsigliato (con fusion?) e a volte non funge. meglio lavorare con skinr.
vedi: http://drupal.org/node/481142
e http://drupal.org/node/629454 (ultimo paragrafo)

Il layout è questo
http://businesstime.ejarvis.eu
http://sanisapori.ejarvis.eu

Quelli che vedi sono basati su un tema che ho preparato tanto tempo fa e che è sempre in miglioramento, mentre tutti gli altri temi non "ereditano" le caratteristiche del tema core, ma sono invece caratterizzati da link simbolici al page.tpl.php, node.tpl.php del tema core, mentre il CSS core viene inserito nel css di ogni signolo tema tramite @import ''.

Funziona benissimo. Però è anche vero che quando ho dovuto migrare da un server all'altro scp non ha ricreato i link ... ma ha duplicato i file. quindi mi sono dovuto mettere a ricreare tutti i link simbolici.

Devo rifare tutti i temi con "maggior criterio" in merito all'ereditarietà. Con Firebug vedi un pò com è strutturata la colonna di destra che all'interno contiene sidebar e un div box che rappresenta il il quadrato in alto.

praticamente il tema con fusion deve avere una struttura simile.

Ma non esiste una guida + specifica?
In genere il tema Core subisce continuamente delle piccole variazioni di stile, una guida a capire i meccanismi di fusion per il page.tpl.php sarebbe cosa buona.

allora, a parer mio hai 2 possibilità, entrambe semplici
1) usare solo i blocchi
2) modificare page.tpl

nel primo caso mantieni tutta la flessibilità del tema ma avrai qualche problema con le altezze dei blocchi, visto che sono tutti nello stesso contenitore.
nel secondo caso perdi in flessibilità perchè alcune dimensioni sono hardcoded.

mi spiego supponendo una grid di 16 colonne fixed (fluid non ci ho nemmeno provato), dove la tua doppia sidebar sia di 360px (180+180), usiamo questa immagine come riferimento per il layout

1) visto che in fusion i blocchi si possono dimensionare via skinr e che sono pensati per incolonnarsi quando non c'è +spazio, potresti mettere la tua box superiore nella sidebar last con larghezza = 360px; a seguire gli altri blocchi (largh = 180px) ordinati secondo le necessità (vedi blocchi di esempio nell'immagine). Il problema qui è che se i blocchi hanno altezze imprevedibili o molto diverse, rischi di trovarti ampi spazi vuoti tra un blocco e l'altro.

2) entro certi limiti aggiungere regioni in fusion è + facile che con gli altri temi perchè il markup è già pronto.
quello che ho fatto è aggiungere 2 regioni: una accanto (prima) alla sidebar last e una sopra ad entrambe (il tuo layout insomma)

- nel file .info aggiungi le regioni

regions[sidebar_last_top] = sidebar last top
regions[sidebar_last_first] = sidebar last first

- copia page.tpl.php dalla cartella fusion_core alla cartella del sub-tema
- in page.tpl.php trova questa riga che definisce la sidebar-last:
<?php print theme('grid_row', $sidebar_last, 'sidebar-last', 'nested', $sidebar_last_width); ?>

- aggiungi il codice per le altre 2 regioni (nota che le larghezze sono hardcoded):
<?php print theme('grid_row', $sidebar_last_top, 'sidebar-last-top', 'nested', 'grid16-6'); ?>
<?php print theme('grid_row', $sidebar_last_first, 'sidebar-last-first', 'nested', 'grid16-3'); ?>
<?php print theme('grid_row', $sidebar_last, 'sidebar-last', 'nested', $sidebar_last_width); ?>

- "correggi" la larghezza del contenuto da grid16-13 a grid16-10 per fare spazio alla seconda sidebar:
in page.tpl.php trova

<div id="content-group" class="content-group row nested <?php print $content_group_width; ?>">

e sostituisci la variabile della larghezza con grid16-10:
<div id="content-group" class="content-group row nested grid16-10">

nota che rimuovendo la variabile, non puoi più impostare il layout dall'interfaccia; o meglio, devi modificare questo e gli altri valori di cui sopra a mano.

fatto. margini, gutter e tutto il resto funzionano da se.

Sarebbe interessante sapere se i miei suggerimenti siano stati utili o meno.
Tanto per validare il lavoro fatto, mica per altro...

<a href="mailto:[email protected]" rel="nofollow">[email protected]</a> wrote:
Sarebbe interessante sapere se i miei suggerimenti siano stati utili o meno.
Tanto per validare il lavoro fatto, mica per altro...

Certo, hai ragione... dammi il tempo di provarli, sono stato preso su altro al momento: priorità!
Sai già che in ogni caso le cose le testo sempre!

Dammi tempo... che poi rispondo!

Ciao,
ho fatto tutte le prove che mi hai indicato.

Chiaramente preferisco + il metodo 1, però purtroppo è vero che lascia gli spazi vuoti e quindi non so se andrà bene. Sebbene mostri tanta flessibilità, questo problema dell'altezza non è proprio il massimo, anche se imposti di allineare le altezze.

Ho provato anche il metodo 2. Premetto che non ho ancora capito molto la cosa, mi sono limitato a fare le tue modifiche e vedere il risultato. In effetti ha funzionato. Devi però considerare di non utilizzare la sidebar first, altrimenti non va bene. Purtroppo nella pagina dei blocchi le colonne inserite te le ritrovi in fondo alla pagina e non a destra o sinistra.

Perchè non hai duplicato la sidebar first ed hai preferito usare la sidebar last?

Lo trovo ancora molto rigido come sistema in merito alle modifiche da fare all'interno dei file del tema, ma magari è solo xkè non lo conosco ancora.
Sono anche andato a cercare in template.php la fuznione phptemplate_preprocess_page(&$vars), dove di solito vado ad inserire quelle 4 righe di codice necessarie per far funzionare Google AdManager, ma questa funzione non c'era.

Credo che dovrò dedicare tantissimo tempo nel cercare di capire come customizzare fusion senza intaccare il tema core.

ti avevo risposto dettagliatamente. purtroppo non ho salvato il post...
riassumo:

- secondo me sei al limite di utilizzo di fusion: quasi ti conviene un tema ad hoc
- la sidebar first si può ancora usare, basta cambiare le classi hardcoded a mano o inserirci una variabile controllata dal tema (questo è anche il motivo per cui ho usato la sidebar last)
- è vero che nella pagina di admin dei blocchi è tutto scombinato, ma tu comunque sai che non lo è. tra l'altro se usi context non dovrai mai più accedere a quella pagina e alla lista interminabile di blocchi.
- per la funzione di preprocess: devi controllare il template di fusion_core ed eventualmente copiarlo nel sub tema. se proprio non c'è, mettila tu!

<a href="mailto:[email protected]" rel="nofollow">[email protected]</a> wrote:
ti avevo risposto dettagliatamente. purtroppo non ho salvato il post...
riassumo:

- secondo me sei al limite di utilizzo di fusion: quasi ti conviene un tema ad hoc
- la sidebar first si può ancora usare, basta cambiare le classi hardcoded a mano o inserirci una variabile controllata dal tema (questo è anche il motivo per cui ho usato la sidebar last)
- è vero che nella pagina di admin dei blocchi è tutto scombinato, ma tu comunque sai che non lo è. tra l'altro se usi context non dovrai mai più accedere a quella pagina e alla lista interminabile di blocchi.
- per la funzione di preprocess: devi controllare il template di fusion_core ed eventualmente copiarlo nel sub tema. se proprio non c'è, mettila tu!

Come fai a dire che sono al limite di utilizzo di fusion?
uhm!... quindi dici di esplorare un pò context?! Mai visto, ma usato, ma sono andato a guardarmi uno screencast ed effettivamente sembra essere veramente strepitoso.

è vero che io al momento utilizzo un tema che all'inizio di questa avventura (1anno e 17 settimane fa) avevo scaricato tra quelli free di drupal (non mi ricordo + quale) e che nell'arco di tutto questo tempo è stato esageratamente stravolto e caricato di funzioni custom in php (funzioni utilizzate all'interno dei blocchi e che si incartano con il tema rubik e tao).

guardando fusion, le nuova versione di questo tema custom è stata particolarmente migliorata e l'ereditarietà adesso va alla grande (niente è link simbolici ecc ecc ), tanto che vorrei trovare una soluzione per poter utilizzare anche il modulo color per customizzare i singoli temi ereditari.

Ma una cosa caratterizza Fusion e cioè le proprietà di Skinr e del Grid ...e cmq sia della gestione dei blocchi in se.
Ed è per via di questi strumenti che forse può valere la pena studiarsi bene fusion al fine di usarlo in maniera versatile.

dicevo che sei al limite perchè fusion, come tutte le framework, pur fornendo scorciatoie limita comunque le possibilità...
quindi, se non riesci a sviluppare un layout come dici tu significa che fusion è troppo limitato.
in sintesi bisogna bilanciare la facilità d'uso con le limitazioni imposte dal tema.
vedi: http://fusiondrupalthemes.com/support/theme-developers/should-you-use-fu...