作者 潘浩文
1 个管道 的构建 通过 耗费 0 秒

首页渲染

... ... @@ -8,12 +8,45 @@
// +----------------------------------------------------------------------
namespace app\portal\controller;
use cmf\controller\HomeBaseController;
use cmf\controller\WeChatBaseController;
use EasyWeChat\Foundation\Application;
use think\Db;
class IndexController extends HomeBaseController
class IndexController extends WeChatBaseController
{
public function index(){
public function _initialize()
{
parent::_initialize();
$this->checkWeChatUserLogin();
}
public function index(){
$this->checkUserLogin();
//获取搜索参数
$param=$this->request->param();
$where=[];
$name = empty($param['name']) ? "" : empty($param['name']);
$search_address = empty($param['address']) ? "" : empty($param['address']);
if (!empty($name)){
$where['name']=['like',"%$name%"];
}
if (!empty($search_address)){
$where['address']=['like',"%$search_address%"];
}
$data=Db::name('temple')->select()->each(function ($item) {
$item['count'] = Db::name('light_order')
->alias('lo')
->join('light l','lo.light_id=l.id')
->join('temple t','l.temple_id=t.id')
->where(['lo.status'=>1,'t.id'=>$item['id']/*,'lo.end_time'=>['<',time()]*/])
->count();
return $item;
});
$address=Db::name('temple')->distinct(true)->field('address')->select();
$this->assign('address',$address);
$this->assign('list',$data);
$this->assign('name',$name);
$this->assign('search_address',$search_address);
return $this->fetch(":index");
}
... ...
<!DOCTYPE html>
<html>
<html lang="en">
<head>
<title>首页 {$site_info.site_name|default=''}</title>
<meta name="keywords" content="{$site_info.site_seo_keywords|default=''}"/>
<meta name="description" content="{$site_info.site_seo_description|default=''}">
<include file="public@head"/>
<link href="__TMPL__/public/assets/css/slippry/slippry.css" rel="stylesheet">
<style>
.caption-wraper {
position: absolute;
left: 50%;
bottom: 2em;
}
.caption-wraper .caption {
position: relative;
left: -50%;
background-color: rgba(0, 0, 0, 0.54);
padding: 0.4em 1em;
color: #fff;
-webkit-border-radius: 1.2em;
-moz-border-radius: 1.2em;
-ms-border-radius: 1.2em;
-o-border-radius: 1.2em;
border-radius: 1.2em;
}
.tc-gridbox {
margin: 0;
}
@media (max-width: 767px) {
.caption-wraper {
left: 0;
bottom: 0.4em;
}
.caption-wraper .caption {
left: 0;
padding: 0.2em 0.4em;
font-size: 0.92em;
-webkit-border-radius: 0;
-moz-border-radius: 0;
-ms-border-radius: 0;
-o-border-radius: 0;
border-radius: 0;
}
}
</style>
<hook name="before_head_end"/>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<title>福牌公众号</title>
<script src="__TMPL__/public/assets/js/jquery-2.1.0.js"></script>
<script src="__TMPL__/public/assets/js/fontsize.js"></script>
<link href="__TMPL__/public/assets/css/home-index.css" rel="stylesheet">
</head>
<body class="body-white">
<include file="public@nav"/>
<ul id="home-slider" class="list-unstyled">
<php>
$top_slide_id=empty($theme_vars['top_slide'])?1:$theme_vars['top_slide'];
</php>
<slides id="$top_slide_id">
<li>
<div class="caption-wraper">
<div class="caption">{$vo.title|default=''}</div>
</div>
<a href="{$vo.url|default=''}"><img src="{:cmf_get_image_url($vo.image)}" alt=""></a>
</li>
</slides>
<noslides id="$top_slide_id">
<li>
<div class="caption-wraper">
<div class="caption">此幻灯片只是演示,您没有设置任何幻灯片,请到后台模板设置!</div>
</div>
<a href=""><img src="__TMPL__/public/assets/images/demo/1.jpg" alt=""></a>
</li>
<li>
<div class="caption-wraper">
<div class="caption">此幻灯片只是演示,您没有设置任何幻灯片,请到后台模板设置!</div>
<body>
<div class="content">
<div class="head">
<div class="city">
<div class="city_name">
<text>北京</text>
<image src="__TMPL__/public/assets//images/aicon03@2x.png"></image>
</div>
<a href=""><img src="__TMPL__/public/assets/images/demo/2.jpg" alt=""></a>
</li>
<li>
<div class="caption-wraper">
<div class="caption">此幻灯片只是演示,您没有设置任何幻灯片,请到后台模板设置!</div>
</div>
<a href=""><img src="__TMPL__/public/assets/images/demo/3.jpg" alt=""></a>
</li>
</noslides>
</ul>
<div class="container">
<widget name="features">
<div>
<h1 class="text-center">{$widget.title}</h1>
<h3 class="text-center">{$widget.vars.sub_title}</h3>
</div>
<php>
$features_count = count($widget['vars']['features']);
$rows = ceil($features_count/3);
</php>
<for start="1" end="$rows" comparison="elt" step="1" name="row">
<php>
$first_row = ($row-1)*3;
$features = array_slice($widget['vars']['features'],$first_row,3);
</php>
<div class="row">
<foreach name="features" item="vo">
<div class="col-md-4">
<h2 class="font-large nospace"><i class="fa fa-{$vo.icon}"></i> {$vo.title}</h2>
<p>{$vo.content}</p>
</div>
</foreach>
</div>
</for>
</widget>
<widget name="last_news">
<div>
<h1 class="text-center">{$widget.title}</h1>
<div class="input-box">
<input type="text" class="search-input" placeholder="输入寺庙名称"/>
<image src="__TMPL__/public/assets//images/fangdajing.png" class="icon" onclick="enterSearch()"></image>
</div>
<div class="row">
<php>
$widget["vars"]["last_news_category_id"] = empty($widget["vars"]["last_news_category_id"])?1:$widget["vars"]["last_news_category_id"];
$last_news_limit=4;
</php>
<portal:articles limit="$last_news_limit" order="post.published_time DESC"
categoryIds="$widget.vars.last_news_category_id">
<div class="col-md-3">
<div class="tc-gridbox">
<div class="header">
<div class="item-image">
<a href="{:cmf_url('portal/Article/index',array('id'=>$vo.id,'cid'=>$vo.category_id))}">
<present name="vo.more.thumbnail">
<empty name="vo.more.thumbnail">
<img src="__TMPL__/public/assets/images/default-thumbnail.png"
class="img-responsive"
alt="">
<else/>
<img src="{:cmf_get_image_url($vo.more.thumbnail)}"
class="img-responsive"
alt="">
</empty>
<else/>
<img src="__TMPL__/public/assets/images/default-thumbnail.png"
class="img-responsive"
alt="">
</present>
</a>
</div>
<h3>
<a href="{:cmf_url('portal/Article/index',array('id'=>$vo.id,'cid'=>$vo.category_id))}">{$vo.post_title}</a>
</h3>
<hr>
</div>
<div class="body">
<p>
<a href="{:cmf_url('portal/Article/index',array('id'=>$vo.id,'cid'=>$vo.category_id))}">...</a>
</p>
</div>
</div>
</div>
</portal:articles>
</div>
<div class="section">
<foreach name="list" item="vo">
<div class="list-item" onclick="enter()">
<image src="{:cmf_get_image_preview_url($vo.thumbnail);}" class="img"></image>
<div class="name">{$vo.name}</div>
<div class="people-num">已有<span>{$vo.count}</span>人供奉</div>
<div class="enter">进入</div>
</div>
</widget>
<include file="public@footer"/>
</foreach>
<!--<div class="list-item">-->
<!--<image src="__TMPL__/public/assets//images/aicon01@2x.png" class="img"></image>-->
<!--<div class="name">天津大悲禅院</div>-->
<!--<div class="people-num">已有<span>4268</span>人供奉</div>-->
<!--<div class="enter">进入</div>-->
<!--</div>-->
<!--<div class="list-item">-->
<!--<image src="__TMPL__/public/assets//images/aicon01@2x.png" class="img"></image>-->
<!--<div class="name">天津大悲禅院</div>-->
<!--<div class="people-num">已有<span>4268</span>人供奉</div>-->
<!--<div class="enter">进入</div>-->
<!--</div>-->
</div>
</div>
<!-- /container -->
<include file="public@scripts"/>
<script src="__TMPL__/public/assets/js/slippry.min.js"></script>
</body>
<script>
$(function () {
$("#home-slider").slippry({
transition: 'fade',
useCSS: true,
captions: false,
speed: 1000,
pause: 3000,
auto: true,
preload: 'visible'
});
$("#home-slider").show();
});
var ws = new WebSocket('ws://127.0.0.1:1234');
ws.onopen = function(){
var uid = 'uid1';
ws.send(uid);
};
ws.onmessage = function(e){
alert(e.data);
};
function enter() {
window.location.href = './detail.html';
}
function enterSearch() {
window.location.href = '../blessing-cards.html';
}
</script>
<hook name="before_body_end"/>
</body>
</html>
</html>
\ No newline at end of file
... ...
... ... @@ -220,6 +220,15 @@ class WeChatBaseController extends BaseController
}
}
public function checkLogin(){
$user = Db::name('users')->where('open_id', session('wechat_user')['id'])->find();
if (!$user||$user['status']==0){
return $this->redirect(url('user/register/register'));
}
return $user;
}
public function is_login(){
$user = Db::name('users')->where('open_id', session('wechat_user')['id'])->find();
if (!$user) {
... ...