尤明明Blog

网站建设外包|网站切图外包,技术不仅是一种专业,更是一种责任!

您的当前位置: 首页 » CMS学习 » emlog »

emlog通过tag实现调取相关文章代码

2019-11-11   Umming   emlog    评论(0)    浏览(1607)


由于不是开发出身,对php不是很熟悉,所以用emlog建站很多地方不是很懂,也没有独立自主制作过emlog模板,所以对emlog的模板标签及一系列相关代码不了解,也不熟悉,刚好想要实现emlog日志页面的相关文章效果,谷歌搜索下找到了相关代码。代码比较长,简单看了下好像是通过tag关键词进行调用,对于仅想要效果的博主就不需要深入研究,知道怎么添加就行了。具体参数可在下方自行调整。

添加步骤:

在当前主题module.php文件中添加如下代码


<?php
//调取相关文章
  function related_logs($logData = array())
  {
  $configfile = EMLOG_ROOT.'/content/plugins/related_log/related_log_config.php';
  if (is_file($configfile)) {
  require $configfile;
  }else{
      $related_log_type = 'sort';//相关日志类型,sort为分类,tag为日志;
      $related_log_sort = 'rand';//排列方式,views_desc 为点击数(降序)comnum_desc 为评论数(降序) rand 为随机 views_asc 为点击数(升序)comnum_asc 为评论数(升序)
      $related_log_num = '10'; //显示文章数,排版需要,只能为10
      $related_inrss = 'y'; //是否显示在rss订阅中,y为是,其它值为否
      }
      global $value;
      $DB = MySql::getInstance();
      $CACHE = Cache::getInstance();
      extract($logData);
      if($value)
      {
          $logid = $value['id'];
          $sortid = $value['sortid'];
          global $abstract;
      }
      $sql = "SELECT gid,title FROM ".DB_PREFIX."blog WHERE hide='n' AND type='blog'";
      if($related_log_type == 'tag')
      {
          $log_cache_tags = $CACHE->readCache('logtags');
          $Tag_Model = new Tag_Model();
          $related_log_id_str = '0';
          foreach($log_cache_tags[$logid] as $key => $val)
          {
              $related_log_id_str .= ','.$Tag_Model->getTagByName($val['tagname']);
          }
          $sql .= " AND gid!=$logid AND gid IN ($related_log_id_str)";
      }else{
          $sql .= " AND gid!=$logid AND sortid=$sortid";
      }
      switch ($related_log_sort)
      {
          case 'views_desc':
          {
              $sql .= " ORDER BY views DESC";
              break;
          }
          case 'views_asc':
      {
              $sql .= " ORDER BY views ASC";
              break;
          }
          case 'comnum_desc':
          {
              $sql .= " ORDER BY comnum DESC";
              break;
          }
          case 'comnum_asc':
          {
              $sql .= " ORDER BY comnum ASC";
              break;
          }
          case 'rand':
          {
              $sql .= " ORDER BY rand()";
              break;
          }
      }
      $sql .= " LIMIT 0,$related_log_num";
      $related_logs = array();
      $query = $DB->query($sql);
      while($row = $DB->fetch_array($query))
      {
          $row['gid'] = intval($row['gid']);
          $row['title'] = htmlspecialchars($row['title']);
          $related_logs[] = $row;
      }
      $out = '';
      if(!empty($related_logs))
      {
          foreach($related_logs as $val)
          {
              $out .= "<li><a href=\"".Url::log($val['gid'])."\">{$val['title']}</a></li>";
          }
      }
      if(!empty($value['content']))
      {
          if($related_inrss == 'y')
          {
              $abstract .= $out;
          }
      }else{
          echo $out;
      }
  }  
?>


打开当前主题的echo_log.php文件,在喜欢的位置,如<?php echo $log_content; ?>下面添加调用代码


<div id="maybeLike">
  <b>也许你还会对下面的内容感兴趣:</b>
  <ul class="art_col">
    <?php related_logs($logData);?>
  </ul>
</div>

然后通过CSS美化样式,至于具体css就自己去捣鼓吧!


标签: emlog

本文链接:https://www.umming.com/emlog/115.html     百度已收录

声明:本站信息由网友自行发布或来源于网络,真实性、合法性由发布人负责,请仔细甄别!本站只为传递信息,我们不做任何双方证明,也不承担任何法律责任。文章内容若侵犯你的权益,请联系本站删除!


发表评论: