Nuova regione tema drupal 7

39 contenuti / 0 new
Ultimo contenuto
Nuova regione tema drupal 7

Ciao,
non essendo un esperto di codice php mi trovo ad avere un problema che per molti di voi sarà molto banale, ho inserito il codice php per stampare una regione, questo funziona solo nel page--front.tpl.php ma nel page.tpl.php non viene stampata, me ne accorgo dal fatto che la nuova regione compare solo nella home.

il codice è questo: <div id="top-header">   <?php print render($page['top_header']); ?></div>

Qualcuno sà di che si tratta?

Drupal Version:

.

ciao, scusa ma forse non ho capito il problema... se il codice è in "page - - front.tpl.php" allora va bene che la regione sia solo in front...

scusa, se ho capito bene hai inserito la regione nel page--front.tpl.php e nel page.tpl.php.
Visto che su una pagina ti stampa la regione e sull'altra no, inizio con le domande ovvie (a me capita spesso di dimenticare le cavolate). Hai ricostruito il registro dei temi? Per farlo basta andare nella pagina di amministrazione dei temi; in questo modo viene svuotata la cache dei temi e carica le modifiche ai file .tpl.php. È possibile che tu veda la regione sulla pagina front, perché l'hai dovuta creare da zero, ma il page.tpl.php esiste già.

Se l'hai già fatto bisogna approfindire la questione ;)

---
"Solo gli imbecilli non hanno dubbi"
"Ne sei sicuro?"
"Non ho alcun dubbio!"
(da Il dubbio di Luciano De Crescenzo)

Cancellate le cache?
hai inserito la regione nel file info?

--------------------------------------
--> Dasan Blog

ciao a tutti, vi ringrazio per le risposte, ho vuotato le cache, in genere quando faccio queste modifiche vuoto le cache, poi attivo il tema bartik e naturalemnte ho aggiunto la regione nel file .info altrimenti non potrei vederla nella home, poi attivo di nuovo il tema personalizzato in modo che venga riletto tutto, ditemi se questi passaggi sono corretti.
Continuo a vedere il blocco attivato solo nella home che ha il page--front.tpl.php ma nel page.tplphp cioè in tutte le altre pagine non vedo il blocco :(

Ciao, mi intrometto:
hai provato ad accedere in amministrazioni blocchi (Struttura->Blocchi) e vedere la posizione delle regioni e blocchi con il link: "Dimostrazione regioni dei blocchi (tema da te modificato)" ??
Dai un'occhiata come te lo vede...inoltre se la regione, da te interessata e che vuoi inserire, la vuoi vedere solo in home page allora, credo, vada bene inserirla solo nel template del front-page.tpl.php se no dovresti metterla solo nel page.tpl.php...

ciao, luca_cracco intromettiti quando vuoi ;) il problema che ho posto è strano in quanto si vede nel page--front.tpl.php e quindi home ma non vedo nelle altre pagine seppure il codice è lo stesso! Naturalmente vorrei che si vedesse su tutto il sito, altrimenti andrebbe bene così, ma al di là di questo se lasciarlo o no nella home mi interessa capire perchè succede questo!

Grazie a tutti


hai provato ad accedere in amministrazioni blocchi (Struttura->Blocchi) e vedere la posizione delle regioni e blocchi con il link: "Dimostrazione regioni dei blocchi (tema da te modificato)" ??

Hai provato questo??dovresti veder tutte le regioni!..

la butto li inoltre!
non è che il codice che "stampa" la regione è all'interno di qualche blocco di condizione tipo un "if"??
nel senso che nel codice il tuo "print region;" sia all'interno di un "if(page_is_front){ print region;}" ??una cosa del genere?
inoltre se guardi il sorgente della pagina (non home page) la regione (contenitori o altro) viene stampata o proprio niente??

Ciao, non vi alcun codice all'interno del corpo del blocco, ho fatto come hai detto "dimostrazione regione blocchi" e infatti la regione "top_header" non compare, temo che vi sia una stranezza nel codice php o nel template in generale, altrimenti non si spiega perchè in home vedo la regione e nelle altre pagine no!

Grazie!!

Postaci il codice del template...page.tpl.php.. vediamo se con occhi diversi troviamo qualcosa sul template..se no mi toccherà pensare ad altro

ho controllato sono identici cambia soltanto una regione nel content, ma sono uguali!!!!
posto il codice del page--front.tpl.php:


     <div id="top-header">   <?php print render($page['top_header']); ?></div>
<div id="header">
  <div class="section">
    <div id="site-logo-and-name">
      <?php if ($logo): ?>
        <a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home" id="logo">
          <img src="<?php print $logo; ?>" alt="<?php print t('Home'); ?>" />
        </a>
      <?php endif; ?>
      <?php if ($site_name || $site_slogan): ?>
        <div id="name-and-slogan">
          <?php if ($site_name): ?>
            <?php if ($title): ?>
              <div id="site-name">
                <strong>
                  <a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home"><span><?php print $site_name; ?></span></a>
                </strong>
              </div>
            <?php else: /* Use h1 when the content title is empty */ ?>
              <h1 id="site-name">
                <a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home"><span><?php print $site_name; ?></span></a>
              </h1>
            <?php endif; ?>
          <?php endif; ?>
        </div> <!-- /#name-and-slogan -->
      <?php endif; ?>
    </div> <!-- /#site-logo-and-name -->
    <?php if ($page['header']) : ?>
      <?php print drupal_render($page['header']); ?>
    <?php else : ?>
      <div id="main-menu" class="navigation">
        <?php print theme('links__system_main_menu', array(
         
'links' => $main_menu,
         
'attributes' => array(
           
'id' => 'main-menu-links',
           
'class' => array('links', 'clearfix'),
          ),
         
'heading' => array(
           
'text' => t('Main menu'),
           
'level' => 'h2',
           
'class' => array('element-invisible'),
          ),
        ));
?>

      </div> <!-- /#main-menu -->
    <?php endif; ?>
  </div> <!-- /.section -->
</div> <!-- /#header -->
<div class="box-slogan">
    <?php if ($site_slogan): ?>
            <div id="site-slogan">
              <?php print $site_slogan; ?>
            </div>
          <?php endif; ?>
</div><!-- chiude box slogan -->
<div id="page-wrapper"><div id="page">
  <?php if($page['banner']) : ?>
    <div id="banner">
      <?php print drupal_render($page['banner']); ?>
    </div>
  <?php endif; ?>
  <?php if($page['highlight']) : ?>
    <div id="highlight">
      <?php print drupal_render($page['highlight']); ?>
    </div>
  <?php endif; ?>
      <?php print $messages; ?>
  <div id="main">
    <a id="main-content"></a>
    <?php print render($title_suffix); ?>
       <?php if ($title): ?>
        <h1 class="title-home" id="page-title">
          <?php print $title; ?>
        </h1>
      <?php endif; ?>
     <div id="content">    
      <?php if ($breadcrumb): ?>
        <div id="breadcrumb"><?php print $breadcrumb; ?></div>
      <?php endif; ?>
      <?php if ($action_links): ?>
        <ul class="action-links">
          <?php print render($action_links); ?>
        </ul>
      <?php endif; ?>
      <?php if ($tabs): ?>
        <div class="tabs">
          <?php print render($tabs); ?>
        </div>
      <?php endif; ?>
      <?php print render($page['help']); ?>
      <?php print render($page['content_front']); ?>
      <div class="clear"></div>
<?php print $feed_icons; ?>
    </div> <!-- /#content -->
     <?php if($page['sidebar']) : ?>
      <div id="sidebar">
        <?php print drupal_render($page['sidebar']); ?>
      </div>
    <?php endif; ?>
  </div> <!-- /#main -->
</div></div> <!-- /#page, /#page-wrapper -->
<div class="clear"></div><!-- chiude clear -->
      <?php print render($page['content_front_bottom']); ?>
<?php if($page['footer']) : ?>
  <div id="footer">
    <div class="section">
      <?php print drupal_render($page['footer']); ?>
            <div class="clear"></div>
     </div>
  </div>
<?php endif; ?>

Gurazie a tutti!

scommetto che non 'è nulla che apparentemente non va però di fatto qualche cosa di strano c'è

Prova ad utilizzare quest'altra funzione:

drupal_render($page['top_header']);

inoltre installati questo modulo per i debug:
http://drupal.org/project/devel

una volta installato e fatto la prova sopra descritta con la funzione vediamo che fare...

Ps: il tema (template) è scritto da zero da te o si basa su qualche altro tema?

CIao luca_cracco grazie!
Come dicevo non sono esperto nel php, però è un codice diverso da tutti gli altri che vedo nel page.tpl.php perciò non so esattamente dove intendi che vada inserito se al posto del <div id="top-header">   <?php print render($page['top_header']); ?></div> oppure sai dirmi dove??

Ho customizzato il tema andromeda
Grazie ancora

esegui questa modifca:
al posto di

<div id="top-header">   <?php print render($page['top_header']); ?></div>

metti:
<div id="top-header">   <?php print drupal_render($page['top_header']); ?></div>

e dimmi se funziona..

ciao luca_cracco, grazie ancora ma purtroppo non ha funzionato accidenti! Nessuno ha idea da cosa possa dipendere????

ho eseguito la tua stessa modifica al tema e funziona...

postaci il codice andromenda.info e page.tpl.php, non il page-front.tpl.php: sicuramente ci sarà qualche errore li presente...inoltre, se ti è possibile, segnalarci il link del sito web così da dar un'occhiata al codice "stampato"...

Ciao grazie per il tempi che mi stai dedicando!
posto come hai chiesto il file page.tpl.php:

    <div id="top-header">   <?php print drupal_render($page['top_header']); ?></div>
<div id="header">
  <div class="section">
    <div id="site-logo-and-name">
      <?php if ($logo): ?>
        <a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home" id="logo">
          <img src="<?php print $logo; ?>" alt="<?php print t('Home'); ?>" />
        </a>
      <?php endif; ?>
      <?php if ($site_name || $site_slogan): ?>
        <div id="name-and-slogan">
          <?php if ($site_name): ?>
            <?php if ($title): ?>
              <div id="site-name">
                <strong>
                  <a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home"><span><?php print $site_name; ?></span></a>
                </strong>
              </div>
            <?php else: /* Use h1 when the content title is empty */ ?>
              <h1 id="site-name">
                <a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home"><span><?php print $site_name; ?></span></a>
              </h1>
            <?php endif; ?>
          <?php endif; ?>
        </div> <!-- /#name-and-slogan -->
      <?php endif; ?>
    </div> <!-- /#site-logo-and-name -->
    <?php if ($page['header']) : ?>
      <?php print drupal_render($page['header']); ?>
    <?php else : ?>
      <div id="main-menu" class="navigation">
        <?php print theme('links__system_main_menu', array(
         
'links' => $main_menu,
         
'attributes' => array(
           
'id' => 'main-menu-links',
           
'class' => array('links', 'clearfix'),
          ),
         
'heading' => array(
           
'text' => t('Main menu'),
           
'level' => 'h2',
           
'class' => array('element-invisible'),
          ),
        ));
?>

      </div> <!-- /#main-menu -->
    <?php endif; ?>
  </div> <!-- /.section -->
</div> <!-- /#header -->
<div class="box-slogan">
    <?php if ($site_slogan): ?>
            <div id="site-slogan">
              <?php print $site_slogan; ?>
            </div>
          <?php endif; ?>
</div><!-- chiude box slogan -->
<div id="page-wrapper"><div id="page">
  <?php if($page['banner']) : ?>
    <div id="banner">
      <?php print drupal_render($page['banner']); ?>
    </div>
  <?php endif; ?>
  <?php if($page['highlight']) : ?>
    <div id="highlight">
      <?php print drupal_render($page['highlight']); ?>
    </div>
  <?php endif; ?>
      <?php print $messages; ?>
  <div id="main">
    <a id="main-content"></a>
    <?php print render($title_suffix); ?>
       <?php if ($title): ?>
        <h1 class="title-home" id="page-title">
          <?php print $title; ?>
        </h1>
      <?php endif; ?>
     <div id="content">    
      <?php if ($breadcrumb): ?>
        <div id="breadcrumb"><?php print $breadcrumb; ?></div>
      <?php endif; ?>
      <?php if ($action_links): ?>
        <ul class="action-links">
          <?php print render($action_links); ?>
        </ul>
      <?php endif; ?>
      <?php if ($tabs): ?>
        <div class="tabs">
          <?php print render($tabs); ?>
        </div>
      <?php endif; ?>
      <?php print render($page['help']); ?>
      <?php print render($page['content']); ?>
      <div class="clear"></div>
<?php print $feed_icons; ?>
    </div> <!-- /#content -->
     <?php if($page['sidebar']) : ?>
      <div id="sidebar">
        <?php print drupal_render($page['sidebar']); ?>
      </div>
    <?php endif; ?>
  </div> <!-- /#main -->
</div></div> <!-- /#page, /#page-wrapper -->
<div class="clear"></div><!-- chiude clear -->
      <?php print render($page['footer_bottom']); ?>
<?php if($page['footer']) : ?>
  <div id="footer">
    <div class="section">
      <?php print drupal_render($page['footer']); ?>
            <div class="clear"></div>
     </div>
  </div>
<?php endif; ?>

Questo è il file info:

; $Id$
name = Andromeda
description = A slick Drupal 7 theme with grid support.
core = 7.x
stylesheets[all][] = css/reset.css
stylesheets[all][] = css/layout.css
stylesheets[all][] = css/structure.css
stylesheets[all][] = css/node.css
stylesheets[all][] = css/menu.css
stylesheets[all][] = css/comment.css
stylesheets[all][] = css/form.css
stylesheets[all][] = css/font.css
stylesheets[all][] = css/panel.css
stylesheets[all][] = css/view.css
stylesheets[all][] = css/nivo-slider.css
stylesheets[all][] = css/effetti_transition.css
scripts[] = js/twitter.js
scripts[] = js/script.js
scripts[] = js/jquery-1.7.2.min.js
regions[top_header] = Top Header
regions[header] = Header
regions[banner] = Banner
regions[highlight] = Highlight
regions[content] = Content
regions[content_front] = Content_front
regions[content_front_bottom] = Content_front_bottom
regions[sidebar] = Sidebar
regions[footer] = Footer
regions[footer_bottom] = footer_bottom

ragazzi se avete bisogno di altre informazioni ditemelo!

Vi ringrazio!

ho provato con le stesse tue modifiche e file e funziona..la regione è presente e inserendo un blocco di prova viene visualizzato... hai la possibilità di linkare la pagina (del sito home o interna) o postarci il codice che ne produce??

ciao luca_cracco se non ho altra scelta che svelare la mia identità ;D ...allora il link è questo: link sito

Grazie infinite!

effettivamente non ti stampa la regione...mm..non so che dirti...
hai controllato che i blocchi che inserisci non abbiamo la spunta che siano visualizzabili solamente in home page?? (scusa la domanda ma le penso tutte..)

o sempre più l'idea comunque che sia un discorso di cache sai...non ti stampa nemmeno i i tag div della regione...quindi presumo che il template al momento caricato in memoria sia una versione precedente alla tua modifica... cancella tutte le cache e poi entri in "Aspetto" e risalvi con il tema tuo impostato come predefinito.. prova non costa nulla..

ciao, grazie luca_cracco, ho provato e non una volta a vuotare le cache, disattivando il tema e poi installandolo di nuovo, ma non c'è verso non stampa la regione nelle altre pag. ma solo nella page--front.tpl.php, mi sembra assurda questa cosa!!

Grazie comunque!

naturalmente ho controllato che il blocco non abbia restizione einfatti non ne ha, poi ho controllato le nuove regioni del tema e non vengono visualizzate nonostante però vengano stampate in home page, ma è assurdo!!!!!

HELP!

.

non so che dirti...hai provato ad utilizzare il tema su un'altra installazione o sistema drupal?

grazie luca, ma supponiamo che io installi drupal in locale e che il tema risponda a dovere con le regioni ecc. naturalementa a me interessa che funzioni nel sito in remoto, perciò in questi casi come si fà a risalire al problema? Non posso pensare di dovere gettare mesi di lavoro perchè un aregione non mi stampa e che quindi dovrò rifare il tema da zero?!
Ci deve essere un'altro modo!

Grazie ancora!

beh intanto forse capiamo se il problema è relativo al sistema attuale che hai o al tema stesso..se il problema con la regione si presente anche in un altro sistema allora è il tema in se a dar problemi..se invece funzione vuol dire che qualcosa non funziona correttamente sul sistema drupal.. piccoli passi alla volta a mio avviso..

comunque credo che alla fine si dovrà trovare il modo di avere un ambiente di "sviluppo" dove copiare il sito ed eseguire delle prove e debugarlo dove occorre per risalire al problema..queste son cose che comunque si fanno per qualsiasi problema..

CIao luca_cracco ho fatto la prova in altra installazione che aveo in locale e le regioni si vedono, quindi non resta che capire quale si il problema in questa installazione, visto che anche tu hai fatto una prova e l'hai vista stampare la regione quindi non vi è dubbio che sia un problema da cercare nel sito online. Mi hai chiesto di installare Devel l'ho fatto ma confesso che non so usarlo!

Grazie ancoraaaa!!!!

.

:(


comunque credo che alla fine si dovrà trovare il modo di avere un ambiente di "sviluppo" dove copiare il sito ed eseguire delle prove

hai questa possibilità? in locale di copiare il tuo sito e li vediamo di provare a "smanettare"...

usare devel in "produzione" non mi piace..non tanto per il modulo in se ma per la logica..se dobbiamo metterci le mani e "girarlo sottosopra" meglio non farlo in un sito online visitato ecc...

Ciao luca_cracco, grazie ancora per la tua disponibilità lo apprezzo molto!
Penso che si possa copiare in locale e smanettarci ospra ma non so come sia possibile per te entrare se il sito è in locale, ti confesso che la cosa mi interessa molto anche perchè potrebbe servirmi per mostrare i siti ai clienti...
Comunque prima vedo se riesco a metterlo in locale senza problemi, poi ti aggiorno!

Grazie mille!!!

RISOLTO!
grazie a tutti e in particolare a luca_cracco per la sua disponibilità e il suo tempo!
Il problema era che avevo il page.tpl.php duplicato uno dentro la cartella templates del tema e uno fuori, e evidentemente prende prima quello che sta fuori? In ongi caso non mi ero accorto ovviamente di avere il file duplicato!!!!

Grazie a tutti!!!


RISOLTO!

Ottimo!!!:)


Il problema era che avevo il page.tpl.php duplicato uno dentro la cartella templates del tema e uno fuori, e evidentemente prende prima quello che sta fuori? In ongi caso non mi ero accorto ovviamente di avere il file duplicato!!!!

Ma come mai funzionava invece sull'altro sistema??
Si prende in cascata prima i file tpl.php nella cartella del tema e poi controlla la presenza della cartella "templates" ed eventuali temi all'interno (se non ne trova all'esterno)...se non erro dovrebbe funzionare cosi..

vedi poi questa pagina: è molto utile per la creazione dei temi e per capire il loro funzionamento e personalizzazione:
http://drupal.org/node/171194

grazie luca_cracco, non so ma credo dall'inizio di aver fatto un po di caos anche perchè era il sito di passaggio dalla vers. 6 alla 7 per me quindi probabilmente ho sperimentato un pò.
Rimuovendo il page che stava fuori dalla cartella template tutto ha ripreso a funzionare regolarmente, ovviamente il page che stava fuori non era aggiornato ma vecchio e non conteneva le nuove regioni assegnate, ma continuava a leggere quello che stava fuori dalla cartella template.

Non so se posso approfittare della tua disponibilità, ma mi piacerebbe approfondire il discorso che ho sollevato nell'ultimo post di questa convers. cioè mi piacerebbe capire come è possibile creare una cartella dove installare i siti drupal per farli testare ai clienti, anzichè lavorare nel loro dominio?

Grazie ancora ;)

Ti consiglio allora, visto che cambiamo argomento, di aprire un nuovo thread ed esporre li la cosa in modo specifico...così facciamo in modo che questa discussione resti c'entrata su una cosa sola e vediamo se qualcun'altro può dare consigli...

quando apri il nuovo thread scrivi molto attentamente cosa vuoi: se vuoi crearti un sistema dove mostrare ai tuoi clienti solamente i temi o se propri siti di tipologia diversa (es.blog, ecommerce, ...) ecc ecc

ps: linkami poi la discussione che allora ti rispondo con qualche idea e la seguo:)