
emlog的标签存在着几个不好的地方: 1、标签数量没有限制,如果有200个标签的话,是不是要延伸到桌子底下呢?2、标签使用次数越多字体越大,严重影响美观。3、标签颜色单一缺乏美观。
数量优化:emlog使用缓存的方法,事先将全部标签存放在\content\cache\tags缓存文件中,读取的时候使用模板中的$tag_cache = $CACHE->readCache('newtags')读取。
1.找到\include\lib\cache.php并打开
2.找到private function mc_tags()函数
你会发现他的sql语句是将你设置的所有标签全部查询出来,如果你的标签设置很多时候,打开一次就查询一次,显然不好。所以将他改为每次随机查询28个标签出来,让他放到缓存文件中。
3.将$query = $this->db->query("SELECT gid FROM " . DB_PREFIX . "tag");改为$query = $this->db->query("SELECT gid FROM " . DB_PREFIX . "tag ORDER BY RAND() LIMIT 28");
4.将$query = $this->db->query("SELECT tagname,gid FROM " . DB_PREFIX . "tag");改为$query = $this->db->query("SELECT tagname,gid FROM " . DB_PREFIX . "tag ORDER BY RAND() LIMIT 28");
这样每次显示出来的标签都是随机抽出来的28个,当然这个数字你可以自己改,你想显示多少就改成多少,而且你可以通过更改查询条件来指定你要显示的标签,比如你如果想显示的28个标签不是随机的,而是你最新的28个,只需要将tag ORDER BY后面查询条件改为:
DESC LIMIT 0,28这样就行了。
字体优化:
找到module.php文件,
<?php
//widget:标签
function widget_tag($title){
global $CACHE;
$tag_cache = $CACHE->readCache('tags');?>
<li>
<h3><span><?php echo $title; ?></span></h3>
<ul id="blogtags">
<?php foreach($tag_cache as $value): ?>
<span style="font-size:<?php echo $value['fontsize']; ?>pt; line-height:30px;">
<a href="<?php echo [url=http://www.eehello.com/admin/:tag($value[]Url::tag($value['tagurl'[/url]]); ?>" title="<?php echo $value['usenum']; ?> 篇日志"><?php echo $value['tagname']; ?></a></span>
<?php endforeach; ?>
</ul>
</li>
<?php }?>
将<span style="font-size:<?php echo $value['fontsize']; ?>pt; line-height:30px;">改成<span style="font-size:12px; line-height:25px;">
可以修改那两个数字12和25来找到适合自己的效果
颜色优化:
接上一步,把颜色也优化一下。可以把代码变成:
<?php
//widget:标签
function widget_tag($title){
global $CACHE;
$tag_cache = $CACHE->readCache('tags');?>
<li>
<h3><span><?php echo $title; ?></span></h3>
<ul id="blogtags">
<?php foreach($tag_cache as $value):$color = dechex(rand(-2048,25600)); ?>
<span style="font-size:12px; line-height:25px;">
<a href="<?php echo [url=http://www.eehello.com/admin/:tag($value[]Url::tag($value['tagurl'[/url]]); ?>" title="<?php echo $value['usenum']; ?> 篇日志" style="color:#<?php echo $color;?>"><?php echo $value['tagname']; ?></a></span>
<?php endforeach; ?>
</ul>
</li>
<?php }?>
注意我写的黄色区域,这是决定颜色属性的地方,dechex(rand(-2048,25600)); 里面的数字决定着颜色的变化范围。这里面的数字是10进制的。一般的颜色都是用16进制表示,转化一下,就好了。



本文地址:https://www.xxnet.eu.org/?post=153
版权声明:若无注明,本文皆为“点滴记忆---观雨亭”原创,转载请保留文章出处。

