2015-07-16 2 views
0

Il y a trois régions verticales dans le thème Drupal Bootstrap: primaire (étroite), Contenu (large), secondaire (étroite)Comment changer l'ordre et la largeur de deux régions verticales dans le thème Drupal Bootstrap?

Je dois déplacer la région de contenu vers la gauche:

contenu (large), primaire (étroit), secondaire (étroit) et changer la largeur de deux régions: élargir la zone de contenu (par exemple, une colonne de la grille plus large) et la région primaire - une colonne plus étroite, respectivement.

Comment cela devrait-il être fait?

Répondre

0

Dans votre sous-thème d'amorçage, vous pouvez remplacer le fichier

/sites/all/themes/bootstrap/theme/system/page.tpl.php 

, où est définie la disposition générale.

régions sont rendus dans ce fichier avec (le « contenu » région):

<?php print render($page['content']); ?> 

Donc, fondamentalement, créer un sous-thème du thème d'amorçage, puis dans le dossier/modèles de votre sous-thème, créez une page fichier .tpl.php, copiez le contenu de

/sites/all/themes/bootstrap/theme/system/page.tpl.php 

et vous pouvez commencer à modifier la mise en page, modifier le balisage, et se déplacer autour du

<?php print render($page['region_machine_name']); ?> 

... pour obtenir ce que vous voulez.

Le « region_machine_name » peut être trouvé dans votre fichier .info (thème racine):

regions[content] = 'Content' 

Dans ce fichier, vous verrez que les barres latérales sont toujours 4 colonnes large dans bootstrap thème drupal:

<?php if (!empty($page['sidebar_first'])): ?> 
    <aside class="col-sm-4" role="complementary"> 
    <?php print render($page['sidebar_first']); ?> 
    </aside> <!-- /#sidebar-first --> 
<?php endif; ?> 

La largeur des régions est définie par les classes d'échafaudage bootstrap ("col-sm-4", col-xs-3 "...) dans le même fichier (page.tpl.php) et dans/sites/all/themes /bootstrap/theme/system/page.vars.php Dans ce fichier, les hooks sont implémentés (bootstrap_preprocess_page par exemple), et la classe d'échafaudage es sont "calculés" (si une seule barre latérale alors ... si deux barres latérales alors ...). Vous pouvez implémenter ces hooks dans template.php de votre sous-thème et modifier la largeur des régions en modifiant ces classes.

Voici une partie de la bootstrap_preprocess_page par défaut() crochet:

// Add information about the number of sidebars. 
// 2 sidebars -> content is 6 columns wide 
if (!empty($variables['page']['sidebar_first']) && !empty($variables['page']['sidebar_second'])) { 
    $variables['content_column_class'] = ' class="col-sm-6"'; 
} 
// only one sidebar -> content is 9 columns wide 
elseif (!empty($variables['page']['sidebar_first']) || !empty($variables['page']['sidebar_second'])) { 
    $variables['content_column_class'] = ' class="col-sm-9"'; 
} 
// no sidebar : full width content (12 columns) 
else { 
    $variables['content_column_class'] = ' class="col-sm-12"'; 
} 

Donc, en fait, de modifier largeur sidebars, il est dans votre page.tpl.php (par défaut: 4 colonnes). Si vous modifiez les largeurs de vos barres latérales, vous devez aussi modifier la largeur du contenu, et c'est dans template.php/your_subtheme_name_preprocess_page(): remplacez $ variables ['content_column_class'] par la bonne classe d'amorçage