2011-01-16 55 views
1

在我創建的主題中,我想將塊放置在與默認區域不同的位置。例如,將搜索塊放在標題中。要求和地方塊在Drupal主題?

有什麼辦法可以做到這一點從一個主題:能夠要求一個塊,並將其放置在某個地方?

回答

0

它破壞了可配置塊的想法,但它是可能的:您必須爲所有區域創建空塊模板,但不允許區域。或者您爲此塊提供/覆蓋主題功能,並且不會爲禁止的區域返回任何內容。

1

Drupal的主題系統足夠靈活,可以將頁面的這一部分完全轉化爲您希望塊出現的區域。爲此,您需要將區域添加到Assigning contents to regions(如regions[foobar] = Foobar)所述的.info文件中。這會爲您的page.tpl.php提供一個新變量$page['foobar']。然後,您可以按照與Drupal的內置區域相同的方式將內容分配到該區域。

如果你想繞過這個系統並顯示一個特別的塊,看看如何_block_render_blocks呈現塊。

+0

看起來腳本'if'語句只有檢查是否這是正確的頁面,並呈現什麼可用。所以如果沒有菜單,那麼我就沒有任何東西可以呈現 – TheLQ

+0

@TheLQ:我很抱歉,我只注意到我鏈接到了Drupal 4.7和5.x的程序。我用Drupal 6.x和7.x的正確程序更新了我的答案。 – Oswald

+0

那真的不是我所追求的。我希望默認情況下,搜索欄位於標題中。底部區域中的Drupal Powered By塊。用戶管理塊位於另一個區域。等'_block_render_block'看起來像一個內部函數來渲染它們,這是我不想調用的東西。有什麼方法可以設置這些默認設置嗎? – TheLQ

0

在D7中,您可以在主題.info文件中添加一個佔位符區域,清除緩存並將您的區塊放在那裏,然後輸出該區域的內容。

print render(block_get_blocks_by_region('region_name'));