这个代码 只完成了 8成。 但后面写不来了 不知道怎么判断分类。
我也学习xiaoshuo88 大佬 希望给各位大侠参考完善并分享谢谢!
/template/home/qimao_web/type.html
<!-- 轮播图 start-->
<div class="swiper-wrap js-swiper" style="width:860px;height:266px;">
<ul class="swiper-content js-swiper-content">
{slider id="vo"}
<li class="swiper-item js-swiper-item"><a
href="{$vo['url']}"
target='_blank'><img {eq name="$cid" value="4"} src="{$vo['pic']}"{else/}src="{$vo['pic']}"{/eq} alt=""> // 其实就是这里看不懂 啊 这个EP判断 用不来 如何判断 slider_type
</a></li>
{/slider}
</ul>
<div class="swiper-points js-swiper-points"></div>
<a href="javascript:;" class="prev-btn swiper-btn js-prev-btn"><i class="iconfont"></i></a>
<a href="javascript:;" class="next-btn swiper-btn js-next-btn"><i class="iconfont"></i></a>
</div>
<!-- 轮播图 end-->
/application/admin/view/slider/edit.html
<div class="layui-form-item">
<label class="layui-form-label">类型</label>
<div class="layui-input-inline">
<select name="type" lay-verify="required">
<option value="">选择类型</option>
<option value="0" {eq name="info.type|default=''" value="0"}selected="selected"{/eq}>web</option>
<option value="1" {eq name="info.type|default=''" value="1"}selected="selected"{/eq}>wap</option>
<option value="2" {eq name="info.type|default=''" value="2"}selected="selected"{/eq}>app</option>
<option value="3" {eq name="info.type|default=''" value="3"}selected="selected"{/eq}>webmale</option>
<option value="4" {eq name="info.type|default=''" value="4"}selected="selected"{/eq}>webfemale</option>
</select>
</div>
/application/admin/model/Slider.php
class Slider extends Model{
protected $autoWriteTimestamp = true;
public function getTypeTextAttr($value,$data){
$status = [0=>'web',1=>'wap',2=>'app',3=>'webmale',4=>'webfemale'];
return $status[$data['type']];
}
public function info($id){
$map['id'] = $id;
$info=Slider::where($map)->find();
return $info;
}
public function lists(){
return Slider::order('sort asc')->paginate(Config::get('web.list_rows'));
}
public function edit(){
$data=Request::post();
$validate = new SliderValidate;
if (!$validate->check($data)) {
$this->error=$validate->getError();
return false;
}
$Slider = new Slider();
if(empty($data['id'])){
$result = $Slider->allowField(true)->save($data);
}else{
$result = $Slider->allowField(true)->isUpdate(true)->save($data);
}
if(false === $result){
$this->error=$Slider->getError();
return false;
}
return $result;
}
public function del($id){
$map = ['id' => $id];
$result = Slider::where($map)->delete();
if(false === $result){
$this->error=Slider::getError();
return false;
}else{
return $result;
}
}
}



xiaoshuo88
发表于 2022-4-20
幻灯片slider的使用可以参考kyxs作者的文档
http://help.kyxscms.com/1901777
目前文档描述支持的传入参数是这些
如果要增加根据一个字段去取幻灯片的话,要去对taglib做修改
位置 application/common/taglib/HomeTag.php
可以看到现在关于slider的taglib参数是这些
刚好是对应文档描述的参数的几项,
这里我们可以增加一个 type,变成这样
然后往下看可以看到这样的代码
... public function tagSlider($tag, $content){ $limit = empty($tag['limit']) ? '""' : $tag['limit']; $empty = isset($tag['empty']) ? $tag['empty'] : ''; $parse = '<?php '; $parse .= '$__SLIDER__ = model(\'common/api\')->get_slider('.$limit.');?>'; $parse .= '{volist name="__SLIDER__" id="'. $tag['id'] .'" empty="'.$empty.'"}'; $parse .= $content; $parse .= '{/volist}'; return $parse; } ...这里寻思应该就是slider的逻辑代码了,他实际上是把上面的参数,拼到一个php的代码块里面,这里我们首先把新加的参数放进去
... public function tagSlider($tag, $content){ $limit = empty($tag['limit']) ? '""' : $tag['limit']; $empty = isset($tag['empty']) ? $tag['empty'] : ''; $type = empty($tag['type']) ? '""' : $tag['type'] ; $parse = '<?php '; $parse .= '$__SLIDER__ = model(\'common/api\')->get_slider('.$limit.');?>'; $parse .= '{volist name="__SLIDER__" id="'. $tag['id'] .'" empty="'.$empty.'"}'; $parse .= $content; $parse .= '{/volist}'; return $parse; } ...但这时候我们还不知道要把这个新的参数怎么放,再看看数据是怎么调用的,
$parse .= '$__SLIDER__ = model(\'common/api\')->get_slider('.$limit.');?>';这里用model调了common/api 的get_slider,我们找到这个方法,文件在 application/common/model/Api.php
... public function get_slider($limit,$type=false){ $map = ['status' => 1]; if($type){ $map['type'] = $type; }else{ $map['type'] = Request::isMobile()?'1':'0'; } $data=Db::name('slider')->where($map)->limit($limit)->order('sort')->select(); if($data){ foreach ($data as $k=>$v){ $slider_list[$k]=['id'=>$v['id'],'title'=>$v['title'],'pic'=>$this->check_pic($v['picpath']),'url'=>$v['link']]; } return $slider_list; } } ...这里我们发现作者大大已经把参数预留好了
,只需要直接调就能用了,
这个时候我们按照这里的参数格式,调整下taglib的代码,
... public function tagSlider($tag, $content){ $limit = empty($tag['limit']) ? '""' : $tag['limit']; $empty = isset($tag['empty']) ? $tag['empty'] : ''; $type = empty($tag['type']) ? '""' : $tag['type'] ; $parse = '<?php '; $parse .= '$__SLIDER__ = model(\'common/api\')->get_slider('.$limit.','.$type.');?>'; $parse .= '{volist name="__SLIDER__" id="'. $tag['id'] .'" empty="'.$empty.'"}'; $parse .= $content; $parse .= '{/volist}'; return $parse; } ...大致就修改完了,来测试一下,我们知道默认web=0,wap=1,app=2
这里传入 type="2",就是app
上传完修改之后要清理一下系统缓存,否则会不生效
然后到后台,调一下原来幻灯的type
我们回到首页,刷新一下,发现首页幻灯片只显示我们改成的app类型的了
不得不说,作者大大给力,留了不少接口,小改起来非常方便
评论列表
加载数据中...
xh
发表于 2022-4-20
我是对应男女分类id
评论列表
加载数据中...