Skip to content

Instantly share code, notes, and snippets.

@dieface
Created June 25, 2014 20:31
Show Gist options
  • Save dieface/0879e5023c32a41de62d to your computer and use it in GitHub Desktop.
Save dieface/0879e5023c32a41de62d to your computer and use it in GitHub Desktop.
<b:widget id='Label3' locked='false' title='文章分類' type='Label'>
<b:includable id='main'>
<b:if cond='data:title'>
<h2><data:title/></h2>
</b:if>
<div expr:class='&quot;widget-content &quot; + data:display + &quot;-label-widget-content&quot;'>
<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(http://lh4.ggpht.com/_aunFc5EDRyI/S1u5viwK6ZI/AAAAAAAAAIE/gntN8IjNtQY/minus.gif)"
}
else {
ul.style.display="none"
li.style.backgroundImage="url(http://lh4.ggpht.com/_aunFc5EDRyI/S1u5tkkq3uI/AAAAAAAAAH8/L3MD-dRtmkY/plus.gif)"
}
}
function draw_obj(obj)
{
document.write("&lt;li style='padding-left: 0px&gt;'");
document.write("&lt;img src='http://3.bp.blogspot.com/_WoCJXgXotb8/SsBGEeZ7m-I/AAAAAAAAAJg/9imBipUIe7Q/s1600/icon-yellow-bullet.png' /&gt;&lt;a dir='"+obj['dir']+"' href='"+obj['url']+"'&gt;"+obj['tag']+"&lt;/a&gt;");
document.write("&lt;span dir='"+obj['dir']+"'&gt;("+obj['cnt']+")&lt;/span&gt;");
document.write("&lt;/li&gt;\n");
}
function draw_tree(tree)
{
for(var tag in tree){
if(tag!='_item'&amp;&amp; tag!='_cnt'){
var rid = Math.random();
document.write("&lt;li class=submenu id=li_"+rid+" onclick=menu_exp('"+rid+"'); style='font-weight:bold;padding-left: 20px;background: url(http://lh4.ggpht.com/_aunFc5EDRyI/S1u5tkkq3uI/AAAAAAAAAH8/L3MD-dRtmkY/plus.gif) no-repeat left 0px;cursor: pointer'&gt;");
document.write(tn(tag));
document.write("("+tree[tag]['_cnt']+")");
document.write("&lt;/li&gt;");
document.write("&lt;ul id=ul_"+rid+" style='display:none;padding-left: 20px'&gt;");
draw_tree(tree[tag]);
document.write("&lt;/ul&gt;\n");
}
}
if(tree['_item']){
for(var i=0;i &lt; 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment