回到首頁
章魚約翰的Flickr
關於章魚約翰
回到最上方
留言板
訂閱我的RSS
寫信給章魚約翰
Loading...Please wait...
Feed on
Posts

【Blogger】設定Widget出現的頁面

有製作過網頁的朋友應該都知道,自從現在流行的所謂兩欄式或是三欄式的風格出現後,所謂邊欄的內容便常常會隨著網頁的變化而有所不同。
比如說搜尋的邊欄,可能就只有在首頁才會出現,而進到特定頁面時便讓它消失!!
這個功能,在Blogger其實要達到也非常的容易!!
在上一篇的【Blogger】“Read More” Expandable Posts Link裡,小弟有稍微提到一點點基礎的概念,即判斷在首頁、文章內文的條件式;也就是利用這簡單的條件式,我們就可以輕易達到上面的功能囉!!

在往下介紹怎麼實作之前,我們得先學一下另一個基礎的東東,要針對不同的Widget修改,總得先知道怎麼找到這個Widget在那裡是吧,所以我下面先跟各位簡單介紹要如何找出Widget來囉!!
每個邊欄(在regular的blogger template裡叫sidebar)的每個不同的Widget1,都有其特定的id、及其抬頭(title)。
而以程式來說的話,每個不同的Widget會以下面的方式包著
<b:widget id='Profile1' locked='false' title='About Me' type='Profile'>
...
</b:widget>

其中,上面寫用紅色粗體的部份,便是我們用來分辨是那個Widget的關鍵字囉!!
通常,在作者資料的這個Widget,Blogger會預設用"Profile1"這個id,而顯示所有文章Label的這個Widget則會預設為"Label1"。
而上面的title,就是您頁面上該Widget顯示的title,這個是在您設定置放該Widget時設定的。
透過上面的資訊,您應該對於要怎麼在那麼長的程式裡找到您要修改的Widget有一點譜了吧?!

Okay,假設您已經具備找備找到該Widget的基本能力了,接下來就是來去實作這個功能囉!! Let's go ~~

作法,一樣…先進到"修改HTML"的頁面後,由於我們要設定Widget的顯示方式,所以不能把Widget的程式碼隱藏,千萬要記得勾選"展開小裝置範本"喲!!
接下來就是找到您要設定的Widget啦,我們用下面這一段當範例:
<b:widget id='HTML1' locked='false' title='Guest Book' type='HTML'>
  <b:includable id='main'>
    <!-- only display title if it's non-empty -->
    <b:if cond='data:title != ""'>
      <h2 class='title'><data:title/></h2>
    </b:if>
    <div class='widget-content'>
      <data:content/>
    </div>
    <b:include name='quickedit'/>

  </b:includable>
</b:widget>


上面的灰色字體部份,是該Widget顯示的內容,就不是我們這次要修改的地方,我們要改的,就是在灰色字體的外面加上一點東西,決定他們何時才要顯示!!
如果要設定這個Widget只在首頁才顯示,就在灰色的這一段程式上、下各加上下面的程式(即<b:includable id='main'>這段的下面,以及</b:includable>的上面)
<b:if cond='data:blog.url == data:blog.homepageUrl'>
  Widget內容(即上段程式灰色字體部份)
</b:if>


而如果是要設定這個Widget是在單篇文章的頁面才顯示的話,程式則修改為如下
<b:if cond='data:blog.pageType == "item"'>
  Widget內容(即上段程式灰色字體部份)
</b:if>


其實兩種,只差在第一行的判斷式囉!!
最後,當然就是儲存、打完收工囉!!!

  • 1在這邊我們還是先用Widget來稱呼這個元素element,而先不管上一篇Blogger in draft所提到新的Gadget。

  • 2年紀大了,常常會沒注意而打錯,還發生讓好朋友幫我花時間debug的糗事,如果各位有任何疑問或發現錯誤,敬請見諒並懇請通知小弟修正囉^^

0 Comments:

張貼留言

 
子物件比較
20090725 20090726