EMLOG侧边栏二级分类实现折叠和树状展开

2019-8-31 / 0 评论 / 901 阅读
温馨提示:本文最后更新于2019-8-31,已超过半年没有更新,若内容或图片失效,请留言反馈。

我们知道,EMLOG原生侧边栏上的分类组件默认是展开的,如果网站分类比较多的话就占用很大的侧边栏篇幅,因此我们需要对其进行折叠,现在就来为大家分享一个将EMLOG侧边栏二级分类进行折叠和树状展开的效果。

一、操作步骤

1、打开模板文件module.php,大概在第51行找到如下代码

<?php
//widget:分类
function widget_sort($title){
    global $CACHE;
    $sort_cache = $CACHE->readCache('sort'); ?>
    <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; ?>
    </li>
    <?php endforeach; ?>
    </ul>
    </li>
<?php }?>

2、将上面的代码替换为下面的代码即可

<?php
//widget:分类
function widget_sort($title){ global $CACHE; $sort_cache = $CACHE->readCache('sort'); ?>
  <div class="widget m-echo">
  <h3><?php echo $title; ?></h3>
  <ul id="blogsort">
  <?php // lognum description
  foreach($sort_cache as $value):
    if ($value['pid'] != 0) continue;
    $Children = ''; $LogNum = $value['lognum'];
    if (!empty($value['children'])) {
      $Children .= '<i class="fa"></i><ul>';
      foreach ($value['children'] as $sid) {
        if(isset($GLOBALS['ja_zt']['sort']) && $sort_cache[$sid]['sid'] == $GLOBALS['ja_zt']['sort'])
          $class = "class=\"ja_sort\" ";
        else
          $class = "";
        $Children .= '<li><a '. $class .'href="'. Url::sort($sort_cache[$sid]['sid']) .'" title="当前分类下文章 ['.$sort_cache[$sid]['lognum'].']&#10;'.$sort_cache[$sid]['description'].'">';
        $Children .= $sort_cache[$sid]['sortname'] .'('. $sort_cache[$sid]['lognum'] .')</a></li> ';
        $LogNum   += $sort_cache[$sid]['lognum'];
      }
      $Children .= '</ul>';
    }
    if(isset($GLOBALS['ja_zt']['sort']) && $value['sid'] == $GLOBALS['ja_zt']['sort'])
      $class = "class=\"ja_sort\" ";
    else
      $class = "";
  ?>
      <li>
        <a <?php echo $class; ?>href="<?php echo Url::sort($value['sid']); ?>" title="当前分类下文章 [<?php echo $value['lognum']; ?>]&#10;<?php echo $value['description']; ?>"><?php echo $value['sortname']; ?>(<?php echo $LogNum ?>)</a> <?php echo $Children; ?>
      </li>
  <?php endforeach; ?>
  </ul>
  <style>
#blogsort li:hover .sb {
    color: #F60
}

#blogsort ul li {
    line-height: 20px;
    padding: 0 0 5px 8px;
    margin-bottom: 0;
    border-bottom: 0
}

#blogsort li ul {
    display: none
}

#blogsort li:hover ul {
    display: block
}</style>
  </div>
<?php }?>

二、注意事项

1、本教程所使用的样式比较简陋,如果您觉得这样作出来的效果不好看的话,您可以自行编写css样式

2、本教程可以对侧边栏上的标签组件进行折叠,实现将鼠标移到一级分类上会自动展开显示二级分类的效果

评论一下?

OωO
取消