加州大学论坛博客 blog.ucbbs.org
    转到 加州大学论坛 新版  | 返回论坛旧版   | 日 历 Calendar  | 我的文章 My Posts  | 资料修改 Modify ID  | 留言簿 Message  | 登录 Sign In  | 退出 Sign Out  
  版主: chunhua    
Blog 标签下显示文章题目的方法

发表文章 发起投票 | 关 闭 窗 口     
  Blog > DingMD Blog--www.dingmd.ucbbs.org   Blog 标签下显示文章题目的方法  
 作者  正文: Blog 标签下显示文章题目的方法 回复:0   点数:1000   1 楼  
   dingmd




分区管理员
积 分:1657
总数第:460 贴
来 自:USA-旧金山

 奖惩

   Blog 标签下显示文章题目的方法
   摘自 加州大学论坛旧版 (Universities in California Bulletin Board System)  dingmd  2008-01-20 13:30
今天修改了Blog的模板,使得点击分类标签可以显示文章的标题。参考的是GG派的帖子。但是这个帖子中用的箭头是他网上,我更改代码将箭头改为+号,精简一点操作。简便步骤如下:

第一步:首先把下面的代码复制到你的xml模板里 ]]<>/b:skin> 和 </head> 之间。

<script>
//<![CDATA[

/* Belongs to Aditya Mukherjee (www.aditya-mukherjee.com)
It is licensed under a Attribution/Non-commercial/No derivative CC 2.5 license
http://creativecommons.org/licenses/by-nc-nd/2.5/
*/

function $(){
for( var i = 0, node; i < arguments.length; i++ )
if( node = document.getElementById( arguments[i] ) )
return node;
}

var _id = '';
pic1= new Image(); //preload image
pic1.src="http://bp2.blogger.com/_D5yNUtQ-H5A/Rch72IlMiEI/AAAAAAAAAEA/HXHcUYaLQYg/s320/loading_ani2.gif";
function showLabel(name){
_id = name;
if($(name+'-expanded')) {
$(name+'-expanded').parentNode.removeChild($(name+'-expanded'));
$(name).style.textDecoration = 'none';//removes underline from closed label
$(name+'-tog').innerHTML = '+ ';//the expanding image
}
else {
$(name).style.textDecoration = 'underline';//adds underline to opened label
$(name+'-tog').innerHTML = '- ';//the contracting image
var script = document.createElement('script');
script.src = 'http://<blogname>.blogspot.com/feeds/posts/summary/-/'+name+'?alt=json-in-script&callback=makeList';
script.type = 'text/javascript';

document.getElementsByTagName('head')[0].appendChild(script);
}
}

function makeList(json){
var d = document.getElementById('Label1');
var i=0, j=json.feed.entry[i];
var list = document.createElement('ul');
list.id = _id+'-expanded';
list.setAttribute('class','postList');
$(_id).parentNode.insertBefore(list, $(_id).nextSibling);

var imag = document.createElement('img');
imag.src='http://bp2.blogger.com/_D5yNUtQ-H5A/Rch72IlMiEI/AAAAAAAAAEA/HXHcUYaLQYg/s320/loading_ani2.gif';
$(_id+'-expanded').appendChild(imag);

var frag = document.createDocumentFragment();

while(i<json.feed.entry.length){
j=json.feed.entry[i];
var t_link = document.createElement('a');
t_link.href = j.link[0].href;
t_link.title = j.summary.$t;
if(j.title.$t.length>37)
t_link.appendChild(document.createTextNode((j.title.$t).slice(0,37)+'...'));
else
t_link.appendChild(document.createTextNode(j.title.$t));

var title = document.createElement('span');
title.setAttribute('class','postTitle');
title.appendChild(t_link);

var li = document.createElement('li');
li.appendChild(document.createTextNode('- '));
li.appendChild(title);
frag.appendChild(li);
i++;
}
$(_id+'-expanded').innerHTML = '';
$(_id+'-expanded').appendChild(frag);
}

//]]>
</script>

第二步:将上述代码中script.src = 'http://<blogname>.blogspot.com/feeds/posts/summary/-/'+name+'?alt=json-in-script&callback=makeList'; 里的<blogname>换成你自己的blog 名字。保存模板。
第三步:切换到模版,页面元素的选项,添加一个标签页面元素,放到你觉得好看的位置。保存模板。
第四步:切换回模板编辑的修改 HTML项目,然后勾选扩展窗口小部件模板(Expand widget template),找到你刚刚添加的标签页面元素项目。用下面的代码完整替换之,保存模板就可以了。
<b:widget id='Label1' locked='false' title='Label[分类文章列表]' type='Label'>
<b:includable id='main'>
<b:if cond='data:title'>
<h2><data:title/></h2>
</b:if>
<div class='widget-content'>
<ul class='elegantList'>
<b:loop values='data:labels' var='label'>
<li expr:id='data:label.name'>
<b:if cond='data:blog.url == data:label.url'>
<data:label.name/>
<b:else/>
<span expr:id='data:label.name + "-tog"'>+</span><a href='#category' onclick='javascript:showLabel(this.innerHTML)'><data:label.name/></a>
</b:if>
(<data:label.count/>)
</li>
</b:loop>
</ul>



<b:include name='quickedit'/>
</div>
</b:includable>
</b:widget>
第五步:调整:(非必需):
1. 如果你的单一标签的文章数超过25个,而且你又希望把标题都显示出来,那么你需要像我一样在第一步的代码里修改以下定义代码:
还是修改第一步中blog名字的那个语句:
'http://ggpi.blogspot.com/feeds/posts/summary/-/'+name+'?max-results=999&alt=json-in-script&callback=makeList';
添加的代码"?max-results=999&"的数字999就是定义最多能显示的文章标题是999篇,你也改成你自己想显示的数字。
2.默认设置显示的标题文字数超过37个字就会以"..."代替后面的字数,如果你要显示更长的标题名称,就要修改上面代码的这个位置:

if(j.title.$t.length>37)
t_link.appendChild(document.createTextNode((j.title.$t).slice(0,37)+'...'));
把两个"37"都改成你要显示的字数即可。
3.你也可以改成图片的样式,例如上面代码$(name+'-tog').innerHTML = '+ ';//the expanding image的"+ "号,整体替换为<img src="http://gggpie.googlepages.com/arrow_066.gif"/>就可以变成跟我一样的图片了。
同理,$(name+'-tog').innerHTML = '- ';//the contracting image的"- "号也能改成<img src="http://gggpie.googlepages.com/arrow_279.gif"/>
代码里的图片http://gggpie.googlepages.com/arrow_279.gif 你可以随意替换~
4.第四步代码中的<span expr:id='data:label.name + "-tog"'>+</span><a href='#category' onclick='javascript:showLabel(this.innerHTML)'><data:label.name/></a> 语句是用来控制默认刚刚打开博客时候每个标签题目前方显示的图片, 如果用下面的语句可以自定义任何网络上的图片:

<span expr:id='data:label.name + "-tog"'><img src='http://gggpie.googlepages.com/arrow_066.gif'/></span><a href='#category' onclick='javascript:showLabel(this.innerHTML)'><data:label.name/></a>
其中的http://gggpie.googlepages.com/arrow_066.gif 可以更改为任意网络上的图片。
   摘自 加州大学论坛旧版 (Universities in California Bulletin Board System)  dingmd  2008-01-20 13:30
  
  2008-01-20 13:30        Edit 编辑文章 Quote 引用回复 View ID 查看作者资料 Send Private Message 给作者发悄悄话 Author's all Posts 查看作者的所有帖子 Delete 版主操作 删除文章
 
  发表文章 发起投票 | 关 闭 窗 口
回复标题 Reply Title:
CCB 标签:
缩放输入框: 5 6

回复内容 Reply Contents:
   CCB 标签帮助  [表情分页] [表情全显]
表情图片:

读取表情图片中......
会员代号 UserName:
会员密码 Password:
贴图 Image Link URL:
(可自动分析图片连接)
链接 Link URL:
(可自动分析多媒体连接)
 附件 :
  
附件上传限制在 5000 K 以内
 回复选项:  限注册用户 积分10以上 HTML代码
K&K Hair Design 新出发点发廊 20% off for UCBBS! Citibank $150 Gift cards + Triple ThankYou Points 美国风光旅游文化集团UCBBS特别折扣 沈律师事务所移民等业务特别优惠 台湾茶 UCBBS 特价优惠 llamas 汽车保险折扣for UCBBS 1 DOLLAR MOVING Company 展华家私公司10% discount for UCBBS 华大中文学校特别优惠! Elaine's Skin Care special discount for UCBBS!
旧车买卖特别优惠 新车路考教学特别优惠! 威威旅游全美机票价格最低UCBBS更特惠 . . . . . . .



Powered by CCB Version 5.206 © 2003-3 All Rights Reserved
加州大学论坛 WWW.UCBBS.ORG (Universities in California Bulletin Board System) 版权所有
联系我们 Contact Us