2012-06-09 140 views
3

這是我目前的設置。Drupal 7 - 添加塊到頁面

我用下列區域創建了一個新的自定義主題。

regions[header] = Header 
regions[content] = Content 
regions[footer] = Footer 

page.tpl.php中

<div id="Header"> 
     <div class="row"> 
      <div class="span12" style="text-align:center;padding-top:20px;"> 
       <div><a href="/"><img src="logo.png" width="150" height="150" alt="KT Logo"></a></div> 
      </div> 
     </div> 

     <div class="row">&nbsp;</div> 
    </div><!-- /Header --> 

    <div id="Navigation"> 
     <div class="row" style="text-align:center;"> 
      <div class="span12" style="text-align:center;"> 
       <?php print render($page['header']); ?> 
       <hr class="style-two"> 
      </div> 
     </div> 
    </div><!-- /Navigation --> 

    <div id="Content"> 

     <div class="row">&nbsp;</div> 

     <div class="row"> 
      <div class="span8 offset1"> 
       <h1><?php print $title; ?></h1> 
      </div> 
     </div> 

     <div class="row">&nbsp;</div> 

     <div class="row"> 
      <div class="span10 offset1"> 
       <?php print render($page['content']) ?> 
      </div> 
     </div> 

     <div class="row">&nbsp;</div> 
    </div><!-- /Content --> 

    <footer> 
     <div class="row"> 
      <div class="span12"> 
       <img src="separator.png" alt="separator"> 
       <?php print render($page['footer']); ?> 
      </div> 
     </div> 
     <div class="row">&nbsp;</div> 
    </footer> 

</div><!-- /container --> 

這一切運作良好,我已經創建了幾個基本的網頁罰款。問題出現在我想在頁面上有2個塊的自定義「內容類型」,其中一個包含左側的主要內容,另一個包含右側的側欄。現在我不完全瞭解這些地區的工作方式。

我想要的東西像sidebar_second效果,但我不知道它將如何設置與我的寬度。這是我的地區的屏幕截圖。 http://goo.gl/XFVnl

所以我想我需要改變我的內容區域的顯示方式,以便它可以包含側欄區域?

感謝所有幫助

+0

感謝您的幫助,我現在瞭解更多。我可以爲不同的結構化頁面創建多個page.tpl.php文件。這讓我感到困惑。這張照片也幫了我。 [鏈接](http://goo.gl/OFZgr) –

回答

1

內容類型特定模板通常是node.tpl.php文件,頁面模板是page.tpl.php文件。當您使用node.tpl.php

首先,所有的區域添加到他們的.info文件主題

page.tpl.php中的文件已經被包括在內。這直接影響塊管理頁面中哪些區域可用。 沒有必要讓您定義的所有區域(在.info文件中)出現在所有page.tpl.php文件中。

由於您在page.tpl.php文件中有3個區域,請將其保留並繼續工作。 但是要覆蓋特定節點類型的page.tpl.php,您必須在主題的template.php文件中設置它們。你簡單的「問」Drupal使用這個page.tpl.php文件是節點類型是一個「頁面」(例如)。

添加到您的template.php文件。如果節點類型是(機器名稱)是「book」,Drupal將不會查找頁面 - node-book.tpl.php文件以獲得替代page.tpl.php文件。

<?php 
function themename_preprocess_page(&$variables) { 
    if (!empty($variables['node'])) { 
    $variables['theme_hook_suggestions'][] = 'page__node_' . $variables['node']->type; 
    } 
} 
?> 

現在你可以在page.tpl.php中的文件複製到頁面 - 節點 - 【類型】.tpl.php,使您的變更。無論你放在這個文件中什麼都將用於該節點類型的頁面模板。 (注意:「頁面」和「節點」之間有2個連字符,以及「節點」和「[類型]」之間的連字符) 如果看不到更改,請記住清除緩存。

1

我認爲第一步是在你的.module文件,即使它不會在每一頁上顯示的其他地區一起申報sidebar區域。

在你的頁面模板,你可以檢查(僞代碼)

if (isset($page['sidebar'])) { 
    <div sidebar float left theme this how you want> 
    print render($page['sidebar']); 
    </div> 
} 

現在,當你創建你可以指定它顯示了上或特定內容類型,它顯示一個特定的路徑塊繼續。上面的代碼將檢查頁面是否在您的側邊欄中有一個塊並進行相應的渲染。

如果您在drupal堆棧交換上發佈信息,您將更有可能獲得答案。 https://drupal.stackexchange.com/