晚上比较闲,就想来对博客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--
就是不知道最新版4.2.1能否适用?
很强大,学习了!
就是不知道最新版4.2.1能否适用?
评分:5分
豆腐面 : 2012-03-30 17:55
很强大,学习了!
就是不知道最新版4.2.1能否适用?