Error message

Notice: Undefined offset: 1 in counter_get_browser() (line 70 of /volume1/librarythings/www/sites/all/modules/counter/counter.lib.inc).

Drupal "$is_front"

Categories : 

使用Drupal設計網頁時,通常首頁要呈現的內容,與進入次頁面要顯示的內容會有些許的不同, 以首側欄(First Sidebar)為例,可能在首頁要顯示的區塊,在次頁面中不需顯示 這時候,可以透過"在特定頁面裡顯示區塊"來做設定 但是,當如果是想要讓首側欄在首頁時,顯示於畫面的右方, 但在進入次頁面後,顯示於畫面的左方 這時,就要透過page.tpl.php 與 css 的搭配來呈現了  

範例:


在page.tpl.php檔案中,找出顯示首側欄的區塊 原本的樣貌如下:

<?php if ($page['sidebar_first']): ?> <aside id="sidebar" role="complementary"> <?php print render($page['sidebar_first']); ?> </aside> <?php endif; ?>

修改後如下:

<?php if ($is_front): ?> /*如果是首頁*/ <?php if ($page['sidebar_first']): ?> <aside id="front-sidebar" role="complementary"> /*id指定為front-sidebar*/ <?php print render($page['sidebar_first']); ?> </aside> <?php endif; ?> <?php endif; ?> <?php if (!$is_front): ?> /*如果不是首頁*/ <?php if ($page['sidebar_first']): ?> <aside id="sidebar" role="complementary"> /*id指定為sidebar*/ <?php print render($page['sidebar_first']); ?> </aside> <?php endif; ?> <?php endif; ?>

修改page.tpl.php檔案後,即可繼續修改css檔案 讓id front-sidebar float right 讓id sidebar float left 但有時候還要看原本的css裡面是怎麼搭配的 像我所使用的這個theme會與content有所搭配,所以我在content的部份,亦有設定$is_front 與 !$is_front 以下就是我所設定的css參考

#front-content { margin: 0 33% 0 3%; width: 66%; } #front-sidebar { float: right; margin-right: 3%; width: 27%; } #content { margin: 0 0 0 30%; width: 67%; } #sidebar { float: left; margin: 0 -30% 0 3%; width: 25%; }

最後呈現的效果,可以參考輔仁大學圖書館網站首頁與次頁面的首側欄呈現位置 首側欄呈現於網站首頁的右方:http://web.lib.fju.edu.tw/chi/ 首側欄在進入次頁面後,呈現於網站的左方:http://web.lib.fju.edu.tw/chi/intro/contact   以上就是簡單的說明, 網站做到後來就會對這些哩哩摳摳的小撇步比較信手拈來? 但常常是在卡關很久後才突然開竅的 在這邊跟大家分享,希望有幫助到需要這些小撇步的朋友。

Read more about: