wecenter解决问题的方案很少,最近在某站看到随机文章的实现方法,转载过来存档学习
此功能后来发现存在问题,请勿使用
实现方法
首先在/models/article.php里最后一个}前增加
public function get_radom_article(){
$table1 = $this->get_table('article') ;
$sql = 'SELECT * FROM `'.$table1 .'` AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `'.$table1 .'`)-(SELECT MIN(id) FROM `'.$table1 .'`))+(SELECT MIN(id) FROM `'.$table1 .'`)) AS id) AS t2 WHERE t1.id >= t2.id ORDER BY t1.id LIMIT 10';//效率比order by radom高
return $this->query_all($sql);
}
然后在要显示随机文章页面的app下的模块的main函数的方法里加入
TPL::assign('radom_articles', $this->model('article')->get_radom_article());
例如,我如果要加在首页,就在app/explore/main.php中
public function index_action()
{
后面加入
创建文件views/default/block/sidebar_random_article.tpl.htm,加入如下代码
<?php if ($this->radom_articles) { ?>
<!-- 随机文章 -->
<div class="aw-mod">
<div class="mod-head">
<b><?php _e('随机阅读'); ?></b>
</div>
<div class="mod-body font-size-12">
<ul>
<?php $indx = 1; foreach($this->radom_articles AS $key => $val) { ?>
<li>
<a href="article/<?php echo $val['id']; ?>" title="<?php echo $val['title']; ?>"><?php echo $val['title']; ?></a>
</li>
<?php } ?>
</ul>
</div>
</div>
<!-- end 随机文章 -->
<?php } ?>
然后引用即可
<?php TPL::output('block/sidebar_random_article.tpl.htm'); ?>
转载请注明:思享SEO博客 » wecenter如何实现随机文章