logo of Shuibaco

首页/内页隐藏模块

2011. / 1,387字 / 1,040阅 / 3评

有童鞋指出加网的分享按钮加载耗时,其实Cyan也很苦恼,昨天也纠结了好久。今天尝试了多种方法后,退而求其次,算是变相实现了这一功能。同时,Cyan也从网上搜集到了首页或者内页隐藏模块的方法,正好整合一下做个笔记。

首页隐藏加网分享按钮

现行方法

在控制面板的Settings里的Formatting的最后有个Post Template框框,在里面输入如下代码:

<p><div id='ckepop'>
<a class='jiathis_button_tools_1'></a>
<a class='jiathis_button_tools_2'></a>
<a class='jiathis_button_tools_3'></a>
<a class='jiathis_button_tools_4'></a>
<a class='jiathis jiathis_txt jtico jtico_jiathis' href='http://www.jiathis.com/share/?uid=905522' target='_blank'>More…</a>
</div></p>

以上是加网分享按钮的代码(更多详情请至加网)。其实整个代码还包括一个script,不过Cyan把这行东东直接放在html里(Design → Edit HTML)。当然把所有代码都复制到Post Template框框里也可以,只是Cyan觉得script放在html里比较靠谱。这都无所谓啦。输入后就保存。这样以后每次写新博文的时候,这些代码就会自动添加在编辑框内,只要在这些代码之前写好博客,然后利用Insert jump break按钮(就是read more)把这些代码在首页隐藏掉。

Insert jump break按钮
Insert jump break按钮

在点击read more按钮进入博文内页的时候代码才显示。基本式样如下:

首页:点击read more之前不显示
首页:点击read more之前不显示
内页:点击read more之后的样子
内页:点击read more之后的样子

总结

补充:经过Cyan的不懈努力,终于顺利解决了加网分享按钮的问题。其实很简单,上加网找到“按钮式”代码,将里面的图片删掉换成文字,其他decoration自己看着加。比如我就简单用了“Share”。tip:在加网中选择“迷你型按钮”,鼠标悬停时界面更简洁好看。

迷你型按钮
迷你型按钮

首页/内页隐藏模块

类似于Cyan对加网按钮的显示需求,有些模块希望只在首页显示,而有些又希望只在内页显示。而通过修改代码可以实现这一功能。以下内容引用自ABIN'S TECH NOTE

首先,打開範本 (Template) 的完整 HTML 編修模式 (要展開 Widget),找 <b:widget ...> 開頭 </b:widget> 結尾的區段,這樣一個區段就代表一個元件,這個元件的 id, title 和 type 有助於瞭解到底是那個元件。舉個例子,像下面這段:

<b:widget id='Profile1' locked='false' title='AUTHOR PROFILE' type='Profile'>
  <b:includable id='main'>
    <b:if cond='data:title != ""'>
    ............. (程式內文略過不表)
  </b:includable>
</b:widget>

就是一個顯示作者個人資料 (Profile) 的元件,如果我希望到了內頁,也就是單篇文章完整顯示的頁面時,不要顯示這個個人資料的元件,我只要在元件的區段內塞入一個 if 的條件判斷句,就可以輕易地顯示或隱藏元件了。例如:

<b:widget id='Profile1' locked='false' title='AUTHOR PROFILE' type='Profile'>
  <b:includable id='main'>
  <b:if cond='data:blog.pageType != "item"'>
    <b:if cond='data:title != ""'>
    ............. (程式內文略過不表)
  </b:if>
  </b:includable>
</b:widget>

只要塞入兩行,像是上面範例的紅色那兩行判斷句就行了(Cyan注:红色两行是 <b:if cond='data:blog.pageType != "item"'></b:if>)。(缺點:如果和我一樣元件樣式有外框處理的話,即使試圖把元件藏起來,外框的上緣和下緣的部分還是不能完全消失)。而那行判斷 if cond='data:blog.pageType != "item" 的意思是:如果現在所在的頁面不是"內頁"的話,才會顯示該元件 (Profile)。只要把 != 改成 ==,判斷句就變成"只有在內頁的時候才會顯示該元件"了。這類判斷所在頁面的判斷句有幾種,整理如下:

<b:if cond='data:blog.pageType != "item"'>           (如果現在不在內頁的話)
<b:if cond='data:blog.pageType != "archive"'>        (如果現在不在 Archive 存檔頁面的話)
<b:if cond='data:blog.pageType != "index"'>          (如果現在不在 Label 標籤分類頁面的話)
<b:if cond='data:blog.url != data:blog.homepageUrl'> (如果現在不在首頁的話)

有了以上的幾種判斷句,我想不只可以控制 Sidebar 上的元件在哪種頁面顯示,任何範本裡的功能或操作也可以搭配上述條件使用,越玩真是越覺得,Blogger 你實在是太有彈性了啊!

689°
网络社交礼仪
Comments
Write a Comment
  • 哇~让人头晕的模块 @.@

    是你才酱厉害研究出来

  • 感受到那种难过吧

    心在流泪啊 T T

  • Xun Zheng reply

    这么复杂的代码都搞定了,厉害……

    • ccyann reply

      @Xun Zheng 不是我写的代码囧 引用而已哈哈

点击加载Disqus