emlog完美增加热门日志功能 26 September 2010 22:21 Sunday by 小屋 分享收藏

晚上比较闲,就想来对博客emlog3.4.0 进行热门日志功能的开发。

废话不说,看我的做法。

 

1. 首先就后台博客管理模块下的 Widgets 功能页面添加一个类似已有的随机日志或最新日志的热门日志选择。

方法:在/admin/views/default/widgets.php页面的大概136行添加如下代码

<form action="widgets.php?action=setwg&wg=hot_log" method="post">
    <div class="widget-line" id="hot_log">
        <div class="widget-top">
            <li class="widget-title">热门日志</li>
            <li class="widget-act-add"></li>
            <li class="widget-act-del"></li>
        </div>
        <div class="widget-control">
            <li>标题</li>
            <li><input type="text" name="title" value="<?php echo $customWgTitle['hot_log']; ?>"  /></li>
            <li>首页显示热门日志数</li>
            <li><input maxlength="5" size="10" value="<?php echo $index_hotlognum; ?>" name="index_hotlognum" /> <input type="submit" name="" value="更改" class="submit" /></li>
        </div>
    </div>
    </form>

这样子即在后台管理的widgets设置中有了热门日志的设置功能,当然,这只是空壳。接下来


2.使第一步界面中的设置能生效。

方法:在/admin/widgets.php大概104行添加如下代码

case 'hot_log':
            $index_hotlognum = isset($_POST['index_hotlognum']) ? intval($_POST['index_hotlognum']) : 20;
            $DB->query("update ".DB_PREFIX."options set option_value='$index_hotlognum' where option_name='index_hotlognum'");
            break;

另外还需在数据库中的options表里添加一条记录:index_hotlognum  5    ,初始数字可以先随便设之后后台可再设置。然后再  Widgets管理 添加热门日志块到右侧(即设置前台可显示)。


3.如此下来后台设置功能已结束!剩下步骤是使前台可显示,且继续看贱··

方法:在/model/class.blog.php里添加如下函数

    /**
     * 获取指定数统计热门日志
     *
     * @param int $num
     * @return array
     */
    function getHotLog($num)
    {
        $sql = "SELECT gid,title,views FROM ".DB_PREFIX."blog WHERE hide='n' and type='blog' ORDER BY views desc LIMIT 0, $num";
        $res = $this->db->query($sql);
        $logs = array();
        while($row = $this->db->fetch_array($res))
        {
            $row['gid'] = intval($row['gid']);
            $row['title'] = htmlspecialchars($row['title']);
            $row['views'] = intval($row['views']);
            $logs[] = $row;
        }
        return $logs;
    }
 

接着在/content/templates/当前主题/module.php 文件里添加一方法

<?php
//widget:随机日志
function widget_hot_log($title){
    global $index_hotlognum, $emBlog;
    if (!isset($emBlog))
    {
        global $DB;
        require_once(EMLOG_ROOT.'/model/class.blog.php');
        $emBlog = new emBlog($DB);
    }
    $randLogs = $emBlog->getHotLog($index_hotlognum);?>
    <li>
    <h3><?php echo $title; ?></h3>
    <ul id="randlog">
    <?php foreach($randLogs as $value): ?>
    <li><a href="<?php echo BLOG_URL; ?>?post=<?php echo $value['gid']; ?>"><?php echo $value['title']; ?></a><?php echo $value['views']; ?></li>
    <?php endforeach; ?>
    </ul>
    </li>
<?php }?>
 

 

如此下来便可实现emlog显示热门日志的功能!

 

如果你有更好的方法欢迎留言一起沟通哦~~ ^_^

 

作者: Sjolzy

--EOF--

引用地址:

相关评论:

  1. gravatar face
    豆腐面 3 月 30 日 对 “emlog完美增加热门日志功能” 发表最新评论。
    很强大,学习了!
    就是不知道最新版4.2.1能否适用?

    很强大,学习了!
    就是不知道最新版4.2.1能否适用?

      评分:5

  2. 1
    豆腐面 :

    很强大,学习了!
    就是不知道最新版4.2.1能否适用?

    博主2012-03-31 15:29回复:目前我用的版本还是3.5.2, 最新版还没测过, 兄弟你可以测看看 :D

发表评论:

  给 “emlog完美增加热门日志功能” 评分

广告、无意义的评论必删!