it-swarm.it

Come posso creare regioni personalizzate in un tema?

Voglio aggiungere una nuova area che sarà estesa a tutto il sito. Descrivi il processo di inserimento di questa nuova regione nel mio tema, se possibile generalizzalo per aggiungere qualsiasi nuova regione personalizzata.

58
palbakulich

Le regioni vengono definite nel file .info del tema. Vedi: Struttura del file .info

È quindi necessario inserire i tag modello pertinenti nel file page.tpl.php.

Quindi, ad esempio, se hai definito la regione sidebar nel tuo file .info dei temi, dovresti quindi aggiungere: <?php print render($page['sidebar']); ?> nella posizione pertinente in page.tpl.php.

68
Camsoft

Un altro punto: non perdere le regioni richieste!

regions[content] = Content
regions[help] = Help
regions[page_top] = Page top
regions[page_bottom] = Page bottom

Ulteriori informazioni al riguardo sono disponibili su http://drupal.org/update/themes/6/7#closure .

Per chiarire questo punto: se si definiscono le proprie regioni, è necessario definire tutto ciò che si sta utilizzando, inclusi quelli richiesti. In altre parole, non puoi semplicemente definire regioni aggiuntive: se ne definisci una, devi definirle tutte.

20
laura

La creazione di una regione per un tema Drupal 7 non è diversa dalla creazione di una regione per una regione Drupal 6; le differenze tra Drupal 7 e le versioni precedenti sono essenzialmente:

  • Le regioni non sono definite usando una funzione mytheme_regions() come è stato fatto in Drupal 5, ma sono definite in mytheme.info usando le direttive regions[], Che è ciò che viene fatto anche con Drupal 6 temi.
  • Le regioni vengono visualizzate utilizzando la funzione Drupal render(), invece di stampare il contenuto di una variabile.

Le regioni predefinite Drupal 7 sono le seguenti:

regions[header] = Header
regions[highlighted] = Highlighted
regions[help] = Help
regions[content] = Content
regions[sidebar_first] = Left sidebar
regions[sidebar_second] = Right sidebar
regions[footer] = Footer

I temi principali di Drupal 7 ora includono una regione chiamata "evidenziata" che utilizza lo stesso display dell'area della missione in Drupal 6; includono anche una regione denominata "help", che per impostazione predefinita ha lo stesso contenuto della variabile $help utilizzata da Drupal 6.

9
kiamlaluno

Le aree tematiche sono definite nel file .info del tema - vedere documenti . Aggiungi una riga con regions[corner] = Corner Per ottenere una regione d'angolo.

Quindi è necessario modificare il file page.tpl.php e aggiungere <php print render($corner); ?> dove si desidera visualizzare la regione. Se il tuo tema non ha un page.tpl.php, copia dal tema di base o dal modulo di sistema.

Insidie ​​comuni:

  • Se nel file theme.info non sono state dichiarate regioni, utilizzava Drupal regioni predefinite. Se si desidera aggiungere, è necessario dichiarare nuovamente le regioni predefinite. È possibile, ovviamente, rimuovi qualsiasi regione, ma ti preghiamo di supportare le regioni richieste. Vedi di nuovo documenti .

  • Le modifiche al file .info o l'aggiunta di nuovi file al tema (come page.tpl.php) verranno notate solo dopo aver svuotato le cache.

  • Omega, un tema di base molto popolare, non avrà bisogno di alcun cambiamento in page.tpl.php, ma solo nel file .info. Ma dovrai visitare le impostazioni del tema nell'interfaccia utente e assegnare la tua regione a una zona.

4
Capi Etheriel

Segui i passaggi seguenti per creare un'area personalizzata nel tuo tema:

  1. Vai al tuo file theme.info e aggiungi questa riga.

    regions[machine_name_of_your_region] = Name of your region
    
  2. Sebbene sia possibile anche chiamare blocchi di regioni nel modello nodo, in genere si aggiungerà la regione al modello di pagina del tema. Questo di solito è page.tpl.php, o se hai file modello personalizzati per pagine diverse, modifica anche quelli. La nuova area verrà visualizzata solo nelle pagine create attorno al modello a cui aggiungi la nuova area. Incollalo dove vuoi che appaia la tua nuova regione.

    <?php if ($page['machine_name_of_your_region']): ?>
      <div id="sidebar-first" class="column sidebar"><div class="section">
      <?php print render($page['machine_name_of_your_region']); ?>
      </div></div> <!-- /.section, /#sidebar-first -->
     <?php endif; ?>
    
  3. Configurazione - Prestazioni - Cancella tutte le cache

2
Astha chauhan

Crea una nuova regione in tema

Hai solo bisogno di definirlo in due file.

  • Theme.info
  • Page.tpl.php

Theme.info

;;;;;;;;;;;;;;;;;;;;;
;; Regions
;;;;;;;;;;;;;;;;;;;;;

regions[navigation]      = 'Navigation'
regions[header]          = 'Top Bar'
regions[highlighted]     = 'Highlighted'
regions[new_region_name] = 'Region Name' ;; Add New Region

Page.tpl.php

Ora esegui il rendering di questa regione

  <?php if ($page['new_region']): ?>
      <div class="new_region_class">
        <?php print render($page['new_region']); ?>
     </div>
  <?php endif; ?>

Ora cancella tutta la cache, ecco qua, hai una nuova regione nel tuo tema. Puoi vederlo nella tua pagina di configurazione del blocco.

Per ulteriori visite http://drupal.org/node/171205

0
gsjha