Emlog TangStyle模板侧边栏导航修改为树状风格
想修改深山的鹿博客的模板,找了很久没有找到先关教程,上淘宝找商家帮忙也未能承购,索性自己类推,进过几个小时的调试终于达成了自己想要的侧边栏如默认模板中的树状图效果。
打开模板中的module.php,找到分类页代码,如下:
<?php //分类 function widget_sort($title){ global $CACHE; $sort_cache = $CACHE->readCache('sort'); ?> <div class="widget"> <h3><?php echo $title; ?></h3> <ul id="blogsort"> <?php foreach($sort_cache as $value): ?> <li class="cat-item"> <a href="<?php echo Url::sort($value['sid']); ?>"><?php echo $value['sortname']; ?>(<?php echo $value['lognum'] ?>)</a> </li> <?php endforeach; ?> </ul> </div> <?php }?>
将其替换,修改为:
<?php //分类 function widget_sort($title){ global $CACHE; $sort_cache = $CACHE->readCache('sort'); ?> <div class="widget"> <li> <h3><span><?php echo $title; ?></span></h3> <ul id="blogsort"> <?php foreach($sort_cache as $value): if ($value['pid'] != 0) continue; ?> <li> <a href="<?php echo Url::sort($value['sid']); ?>"><?php echo $value['sortname']; ?>(<?php echo $value['lognum'] ?>)</a> <?php if (!empty($value['children'])): ?> <ul> <?php $children = $value['children']; foreach ($children as $key): $value = $sort_cache[$key]; ?> <li> →<a href="<?php echo Url::sort($value['sid']); ?>"><?php echo $value['sortname']; ?>(<?php echo $value['lognum'] ?>)</a> </li> <?php endforeach; ?> </ul> <?php endif; ?> <?php endforeach; ?> </ul> </li> </div> <?php }?>
这样就完成了,解释一下其中的道理:
<?php function widget_sort($title){ global $CACHE; $sort_cache = $CACHE->readCache('sort'); ?> ....... <?php }?>这段代码指的是侧边栏分类,我们需要调试的正是这段PHP代码中的代码
<ul> <?php $children = $value['children']; foreach ($children as $key): $value = $sort_cache[$key]; ?> <li> →<a href="<?php echo Url::sort($value['sid']); ?>"><?php echo $value['sortname']; ?>(<?php echo $value['lognum'] ?>)</a> </li> <?php endforeach; ?> </ul>
这段代码是父分类下的子分类修改,"children"可以看出是子分类,我们主要从Emlog默认模板中提取的正是这段代码,为了使显示的效果更好,我们在子分类前加上“→”,当然大家也可以使用其他特殊字符,如┓┗ ┛┳⊥﹃﹄┌ ┐└ ┘∟「」↑↓→←↘↙等等。
这样我们就成功修改TangStyle模板中的侧边栏导航了。