wecenter如何实现随机文章

自媒体 思享 2189浏览

wecenter解决问题的方案很少,最近在某站看到随机文章的实现方法,转载过来存档学习

此功能后来发现存在问题,请勿使用

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'); ?>

推荐阅读

dedecms更新升级后无法生成栏目的解决办法

最近用dedecms做了一个茶叶网站,因为源码就是淘宝随便买的比较旧了。作为经常被黑的dedecms。更新一下还是非常有必要的。但是更新之后出现无法生成栏目的问题,给大家分享一下我是如何解决的。 现象 碰到这个问题,第一反应就是更新系统缓存,执行后问......

织梦dedecms不同页面调用不同的随机文章

我们知道dedecms通过orderby=rand 属性就可以轻松实现随机文章,例如: {dede:arclist row=8 titlelen=42 orderby=rand typeid=rand} <a href=”[field:arcu......

修复wecenter移动版description一样的bug【转】

可能发现这个BUG的朋友比较少,其实也影响不大,但是能修复当然是要修复一下,在www.kandaoni.com提交了该问题,非常感谢得到站长的解答,提供了修复方法: 修改方法 打开app/m/main.php 修复问题描述 TPL::output('......