讓我的標籤(文章分類),也可以階層的方式呈現!
以下引述Gormit's 原型製作 的教學文章
......................................................................................
可以支援多層次的分類,並且可以展開/關閉分類
分類仍以中括號作為分類的標籤
使用 [分類1][分類2]標籤 的格式來定義標籤即可
安裝如同第一版的步驟
步驟一
打開版面配置,加入標籤這個小工具, 一定要設定為用按字母排序
顯示設定不重要等下一步的script只會以清單表現
步驟二
選擇"修改HTML" 並鉤選"展開小裝置範本"
找到步驟一新加的小工具 找像下列的字串
<b:widget id="Label2" locked="false" title="標籤" type="Label">
一直到
</b:widget>
為止
步驟三
將上述範圍內的內容改為:
分類仍以中括號作為分類的標籤
使用 [分類1][分類2]標籤 的格式來定義標籤即可
安裝如同第一版的步驟
步驟一
打開版面配置,加入標籤這個小工具, 一定要設定為用按字母排序
顯示設定不重要等下一步的script只會以清單表現
步驟二
選擇"修改HTML" 並鉤選"展開小裝置範本"
找到步驟一新加的小工具 找像下列的字串
<b:widget id="Label2" locked="false" title="標籤" type="Label">
一直到
</b:widget>
為止
步驟三
將上述範圍內的內容改為:
<b:widget id='Label3' locked='false' title='文章分類(v2)' type='Label'> <b:includable id='main'> <b:if cond='data:title'> <h2><data:title/></h2> </b:if> <div expr:class='"widget-content " + data:display + "-label-widget-content"'> <script> var label_tree= new Object(); function tn(tag) { return tag.substring(1,tag.length-1); } function build_node(tree,idx,cnt) { if(!tree[idx[0]]){ tree[idx[0]]=new Object(); tree[idx[0]]['_cnt']=0; tree[idx[0]]['_item']=new Array(); } tree[idx[0]]['_cnt'] = parseInt(tree[idx[0]]['_cnt']) + parseInt(cnt); if(idx.length==1){ return tree[idx[0]]; } return build_node(tree[idx[0]],idx.slice(1),cnt); } function add_label(_name,_cnt,_url,_dir) { var e1 = new RegExp("\\[(.+?)\\]","g"); var e = new RegExp("\\[(.+)\\]","g"); var m = _name.match(e); var tag = _name; var obj=new Object(); obj['tag']=_name; obj['cnt']=_cnt; obj['dir']=_dir; obj['url']=_url; if(m){ obj['tag']= _name.substring(m[0].length,_name.length); var m1 = _name.match(e1); if(m1){ node=build_node(label_tree,m1,_cnt); if(node){ node['_item'].push(obj); } } } else{ if(!label_tree['_item']){ label_tree['_item']=new Array(); } label_tree['_item'].push(obj); } } function menu_exp(id) { var ul=document.getElementById("ul_"+id); var li=document.getElementById("li_"+id); if (ul.style.display=="none"){ ul.style.display="block" li.style.backgroundImage="url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdKC4z8LTatpNYs_oF7hAbw6v8vT5l6BGlI_UjdoTHq09EMXyY3QllksogGX2WOT3eznsRm4LUByfNWqrACq4CfVWS7794j1sJmWUhde24U84GwxpIYPLK0SHT4FQaL3C5niG129sGPbI/)" } else { ul.style.display="none" li.style.backgroundImage="url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh46ydI74Q9UEB9ZrDHqnW73P-MC8ZXvNHoFAlg7R1I2a5XjbEtY14JztPYsBra8EnrgWOv5ouLH5lP6DTRKt7pbJR2OLAztpOovB-2ltz-s5ku5iHf2Or2CPfN6CUJRwRW3SWUGOFO7Hs/)" } } function draw_obj(obj) { document.write("<li style='padding-left: 0px>'"); document.write("<img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzuH5ksU7pKztuDsxB_rsOi0BlhYHi1ulAQXsJGTWDAkQ1nW7M1Y4QcgH7kdoJPRHAXTvLko_x-4cdWDf8pnSm_Ryy4aaeFqLoCGA4OJfPdc2eUVHjVH40usT9l-b14au2KZNJvBACgyw/s1600/icon-yellow-bullet.png' /><a dir='"+obj['dir']+"' href='"+obj['url']+"'>"+obj['tag']+"</a>"); document.write("<span dir='"+obj['dir']+"'>("+obj['cnt']+")</span>"); document.write("</li>\n"); } function draw_tree(tree) { for(var tag in tree){ if(tag!='_item'&& tag!='_cnt'){ var rid = Math.random(); document.write("<li class=submenu id=li_"+rid+" onclick=menu_exp('"+rid+"'); style='font-weight:bold;padding-left: 20px;background: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh46ydI74Q9UEB9ZrDHqnW73P-MC8ZXvNHoFAlg7R1I2a5XjbEtY14JztPYsBra8EnrgWOv5ouLH5lP6DTRKt7pbJR2OLAztpOovB-2ltz-s5ku5iHf2Or2CPfN6CUJRwRW3SWUGOFO7Hs/) no-repeat left 0px;cursor: pointer'>"); document.write(tn(tag)); document.write("("+tree[tag]['_cnt']+")"); document.write("</li>"); document.write("<ul id=ul_"+rid+" style='display:none;padding-left: 20px'>"); draw_tree(tree[tag]); document.write("</ul>\n"); } } if(tree['_item']){ for(var i=0;i < tree['_item'].length;i++){ draw_obj(tree['_item'][i]); } } } </script> <b:loop values='data:labels' var='label'> <script> add_label('<data:label.name/>','<data:label.count/>','<data:label.url/>','<data:blog.languageDirection/>'); </script> </b:loop> <ul> <script> draw_tree(label_tree); </script> </ul> <b:include name='quickedit'/> </div> </b:includable> </b:widget>
可由此下載原始碼
步驟四
按下儲存範本就完成了
步驟五
使用以下的格式作為文章的標籤
使用 [分類1][分類2]標籤
程式會自動抓出[分類]的內容列表
.....................................................................................................
沒有留言:
張貼留言