1、创建自定义热门阅读组件目录结构
2、创建自定义热门阅读组件类
<?php namespace frontend\widgets\hot; /** * 热门阅读排行榜 */ use common\models\PostExtendsModel; use common\models\PostsModel; use yii\base\Widget; use Yii; use yii\helpers\Url; use yii\db\Query; class HotWidget extends Widget { /** * 文章列表的标题 * @var unknown */ public $title = ''; /** * 显示条数 * @var unknown */ public $limit = 8; /** * 是否显示更多 * @var unknown */ public $more = true; /** * 是否显示分页 * @var unknown */ public $page = true; /** * 组件运行方法 */ public function run() { } }
组件运行方法:
3、热门阅读组件数据渲染
<?php use yii\helpers\Url; ?> <?php if(!empty($data)):?> <div class="panel"> <div class="panel-title box-title"> <span><strong><?=$data['title']?></strong></span> </div> <div class="panel-body hot-body"> <?php foreach ($data['body'] as $list):?> <div class="clearfix hot-list"> <div class="pull-left media-left"> <a href="#">浏览<em><?=$list['browser']?></em></a> </div> <div class="media-right"> <a href="<?=Url::to(['post/view','id'=>$list['id']])?>"><?=$list['title']?></a> </div> </div> <?php endforeach;?> </div> </div> <?php endif;?>
4、首页调用热门阅读排行榜组件
<!--热门阅读--> <?= HotWidget::widget()?>
热门阅读列表css样式:
.hot-list .media-left a{ box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.1); font-size: 12px; line-height: 22px; background: #5cb85c; width: 45px; display: block; height: 48px; text-align: center; color: #fff; text-decoration: none; } .media-left em { font-size: 14px; font-weight: 500; background: #fff; display: block; line-height: 26px; color: #333; font-style: normal; } .hot-list { padding-bottom:10px; border-bottom:1px solid #ccc; margin-bottom:10px; } .media-right { line-height:24px; } .hot-body { padding:10px 0 5px 0; }
热门阅读效果展示: