Allegato | Dimensione |
---|---|
![]() | 1.21 KB |
![]() | 298.79 KB |
Ciao Ragazzi
è la prima volta che posto in questa sezione.
Avrei questa necessità e volevo verificare se fosse possibile aggiungere ad un theme
che ho già ampiamente modificato una ulteriore sidebar destra a quella già esistente
La struttura del tema è questa ( vediamo se riesco)
------------------------------------------------
header |
------------------------------------------------
main content |sidebar right|
--------------------------------| |
content | content | |
bottom | bottom | |
left | right | |
| | |
---------------|----------------|---------------|
footer |
-------------------------------------------------|
Io vorrei stringere l'area main content
e strutturare accanto alla sidebar-right già
esistente una sidebar-right-2 più stretta
Più o meno diventare cosi':
------------------------------------------------
header |
------------------------------------------------
main content | sidebar | Sidebar |
---------------------- | right | right |
content | content | 1 | 2 |
bottom | bottom | | |
left | right | | |
| | | |
----------|------------|---------------------- |
footer |
------------------------------------------------|
E' possibile farlo ?
E quali sono i file fondamentali dove andare a ravanare? Ho un poco di confusione
tra template.tpl/page.tpl/page-front.tpl
Chi mi da uan mano a capire?
Grazie e a tutti
Aggiornamento:
Grazie a Krima ho risolto la cosa e nell'ultima mia risposta ci sono un poco di indicazioni sun procedimento.
Ho dimenticato un non piccolo dettaglio: prima di provare ad inserire una nuova sidebar occorre fare in modo che le dimensioni in larghezza del wrapper siano modificate in modo da poterla ospitare, altrimenti non vedrete mai nessun risultato.
Allego uno screenshot del risultato ottenuto. Ovviamente immagini e contenuti sono farlocchi; è solo un localhost di sviluppo.
Grazie a tutti
Uhmmmm...è venuto formattato da schifo, ma credo si capisca cosa dovrei fare.
Ho aggiunto una piccola .png esplicativa
Forse sarebbe meglio un tema a tre colonne.
Ciao Giovanninews ...è quello che ho pensato anch'io, ma credimi. Ho dedicato talmente tanto tempo
allo sviluppo di questo che mi viene male pensare di dover ricominciare da capo.
Se proprio non esiste altra soluzione, come mi pare di capire dal tuo suggerimento, lo farò...ma
se solo esiste un modo di capitalizzare quello che ho già fatto mi piacerebbe almeno provarci
Grazie
Ma...siamo sicuri che non esista un modo di clonare la sidebar-right ed assegnargli le funzioni di quella originale ?
In fondo non è altro che un ulteriore "div con div interni" che va ad ereditare funzioni, view, stili, css....è così complesso creare
un nuovo "object area"?
Penso che tutto sia possibile, forse è anche abbastanza facile, ma non per me. Per fare quello che vuoi probabilmente devi lavorare con i template del tema, forse block.tpl.php
La cosa è fattibile ma bisognerebbe avere in mano il tema per fare delle prove. Ad ogni modo in linea generale (poi bisognerebbe vedere i particolari del tema), nel page.tpl.php un qualcosa del genere:
<?php if ($sidebar-right2): ?>
<div id="sidebar-right2" class="sidebar2">
<?php print $sidebar-right2 ?>
</div>
<?php endif; ?>
Dovrebbe andare bene giusto sotto il codice della sidebar-right che c'è ora.
Poi apri il file .info del tema ed aggiungi:
regions[sidebar-right2] = Sidebar Right 2
Pulisci la cache del sito, metti un blocco qualsiasi nella Sidebar Right 2, e cominci a lavorare di css con il classico
#sidebar-right2{float:right; width: 200px;}
E così via.
Il page-front.tpl.php gestisce la prima pagina mentre il page.tpl.php tutte le altre.
Ciao Krima e grazie per l'intervento... mi sembra un ottimo inizio , perlomeno per cominciare a provarci.
Nel mio tema non ci sono degli If-endif riferiti alla sidebar di dx, che trovo invece nelle sidebar_bottom del bottom content.
Infatti il codice della sidebar_right è semplicemente così:
<?php print theme('grid_row', $sidebar_right, 'st-sidebar-right', 'nested', $sidebar_right_width); ?>
st-sidebar-right è il nome del div
A questo punto dovrebbe bastare:
<?php print theme('grid_row', $sidebar_right, 'st-sidebar-right', 'nested', $sidebar_right_width); ?>
<?php print theme('grid_row', $sidebar_right2, 'st-sidebar-right2', 'nested', $sidebar_right2_width); ?>
Dovrebbe andare bene giusto sotto il codice della sidebar-right che c'è ora.
Grazie moltissime; questo we provo a metterci seriamente le mani . Drupal mi piace sempre più e se riuscissi a capire e governare
la struttura dei template non mi fermerebbe più nessuno ;-)
Visto che l'hai citata tu provo a chiederti una cosa che al momento rappresenta per me un mistero . Più una curiosità che una esigenza.
Sono in sviluppo, in locale, quindi nell'area "prestazioni" ho disabilitato ogni tipo di cache, proprio perchè al momento non mi serve
avere nessuna "velocità" di caricamento o particolare prestazione.
Eppure quando vado ad impostare una nuova views, o assegno un layout personalizzato ad un blocco ed adesso , sostanzialmente per un nuovo div , mi viene sempre chiesto (e devo altrimenti non funziona) di pulire la cache.
Ma cosa pulisci se la cache è disattivata?
E' come se dovessi pulire la cache del browser ad ogni cambiamento che faccio in un file php.......mi sembra un controsenso.
Tu sai cosa avviene esattamente?
Buona giornata
Alcuni dati vengono comunque messi in cache anche se le prestazioni sono disattivate. Se cerchi nel forum c'è qualche post che spiega per bene questa cosa. Per quanto riguarda il tema fai qualche prova e facci sapere :-)
Ciao Krima e Giovanninews ( visto che avendo partecipato forse interessa anche a lui ).
Il consiglio di Krima è perfetto; in pochi passi ( poi naturalmente ho dovuto lavorare di css, ma anche di personalizzazione dei blocchi
con il modulo blocktheme) sono riuscito a creare la tanto agognata sidebarright2 !!! :-)
Passaggi:
Ho individuato nel file front-page.tpl.php il div che posiziona la sidebar-right originale (non è stato facile in quanto il mio tema
tende a confondere: ci sono due sidebar-right, solo che una è posizionata all'interno di un'area chiamata "content-bottom" e che possiede sia una "content-bottom-sidebar-left" che una "content-bottom-sidebar-right". In pratica un'area centrale divisa in due....;-)
Comunque individuata la posizione corretta:
<?php print theme('grid_row', $sidebar_right, 'st-sidebar-right', 'nested', $sidebar_right_width); ?>
non ho fatto altro che aggiungere appena sotto:
<?php print theme('grid_row', $sidebar_right2, 'st-sidebar-right2', 'nested', $sidebar_right2_width); ?>
Indicato nel file theme.info la nuova "region" , ma anche la "region_width" ( la seconda non so quanto serva perchè modificando i valori non cambia nulla)
In prima istanza non vedo nulla. Ma so anche che il mio tema è fatto in modo che se non c'è contenuto, non vedi le aree...il solito
if...ecc
.Quindi decido di forzare la mano. Vado nel css ed oltre al valore height/width assegno un bordo con un bel color:black.
Il div appare, ma in fondo alla pagina, spostarlo sembra una impresa. Poi mi ricordo che deve essere "legato a qualcosa" .
A che cosa? Ma al div precedente !.....Provo, position:relative; senza indicazioni su left/top.
Magicamente la sidebar_right2 mi appare alla destra della sidebar_right originaria...eureka!!
Sposto un blocco al volo , creo un nuovo custom-block con "blocktheme" e gli assegno dei valori di layout diversi da tutto il resto.
Ecco qua il primo blocco sulla "seconda" sidebar-right. Poi il secondo, poi il terzo blocco...ed ecco qui il risultato che avevo in mente.
Neanche mezz'ora di lavoro...naturalmente ci sono poi tutti i perfezionamenti vari ...ma quello è un altro discorso....
Per ora solo nella Home , visto che ho agito solo su front-page.tpl.php , ma domani su tutto il resto ...
Grazie Krima. I tuoi consigli sono stati davvero preziosissimi.
Prego ;-)