IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> eyoucms添加附属栏目功能 -> 正文阅读

[PHP知识库]eyoucms添加附属栏目功能

CMS:eyoucms
项目需求:一篇文档对应多个栏目
解决思路:
后端:在文档数据表添加一个附属栏目字段fslm_id,在文档编辑,添加页面添加附属栏目选项,获取当前模型对应的所有栏目放入到附属栏目选项中。

后台修改:

1.添加表字段
文档存储数据表:archives
添加数据字段:fslm_id

2.文章文档编辑
控制器:app>admin>controller>Article.php
列表视图:app>admin>template>article>index.htm
编辑视图:app>admin>template>article>edit.htm
添加视图:app>admin>template>article>add.htm

3.产品文档编辑
控制器:app>admin>controller>Product.php
列表视图:app>admin>template>product>index.htm
编辑视图:app>admin>template>product>edit.htm
添加视图:app>admin>template>product>add.htm

//
/5.5版本后台数据列表*/
/
/

<!-- 附属栏目 -->
<dl class="row">
  <dt class="tit">
    <label for="title"><em>*</em>附属栏目</label>
  </dt>
  <dd class="opt">
    <select multiple class="form-control" name="fslm_id[]" id="fslm_id">
        {$arctype_html}
    </select>
   </dd>
</dl>
<!-- 附属栏目 -->
Article.php

/**
* 文章列表
*/
public function index(){
//查询所有文档数据
$fslmcx = Db::name('archives')->select();

 /*遍历所有附属栏目id */
foreach($fslmcx as $k => $y){
    //筛选附属栏目为空的文档            
   if($y['fslm_id'] != false){
      //附属栏目获取反序列化
      $fslm_id = unserialize($y['fslm_id']);
      // 获取附属栏目id 
      foreach($fslm_id as $tyid){
      //筛选与当前栏目相同附属栏目id
        if($typeid == $tyid){
        //筛选同栏目下相同文档(重复文档)
        if(!($typeid == $y['typeid'])){
          //查询组装文档URL
          $newids = [$y['aid']];
                        
          $row_fslm = Db::name('archives')
              ->field($fields)
              ->alias('a')
              ->join('__ARCTYPE__ b', 'a.typeid = b.id', 'LEFT')
              ->where('a.aid', 'in', $newids)
              ->getAllWithIndex('aid');
                                                    
          // 查询栏目列表
           $fslm_column = Db::name('arctype')->where('id',$y['typeid'])->select();                           
          // 获取所属栏目名称
          $y['typename'] = $fslm_column['0']['typename'];
          // 获取文档URL,get_arcurl:自定义函数,可用url()助手函数重新定义
          $y['arcurl'] = get_arcurl($row_fslm[$y['aid']]);
          //放入$list数组中          
          $list[] = $y;
    
         }                    
       }
    }
}
}
/*附属栏目*/
}

//
/5.5版本前端数据获取*/
/
/
前端修改:
根据项目需求:首页有多个分类栏目需要展示附属栏目文档
修改文件:
视图:app>template>pc>index.htm

 <!-- 获取附属栏目 -->
{php}  
$fslmd = [];
foreach ($fslmcx as $ks => $wendang){               
  if($wendang['fslm_id'] != false){                 
  $fslm_id = unserialize($wendang['fslm_id']);            
   foreach($fslm_id as $fskms){                     
    if($fskms == $field3['typeid']){                          
     if(!($field3['typeid'] == $wendang['typeid'])){                        
       // 获取文档URL
       $wendang['arcurl'] = url('home/View/index','aid='.$wendang['aid']);
       $fslmd[] = $wendang;
    }
   }
 }
}
}
{/php}
<!-- 获取附属栏目.end -->

{volist name="fslmd" id="vo" offset="0" length='6'}
<li class="tupian_Column_p cpbk_changdu">
  <a href="{$vo.arcurl}"><div><img src="{$vo.litpic}" alt=""></div></a>
  <a href="{$vo.arcurl}"><p>{$vo.title}</p></a>
</li>
{/volist}

控制器:app>home>controller>index.php

//查询附属栏目数据
$fslmcx = Db::name('archives')->where('is_recom', '1')->where('lang', 'cn')->select();
$this->assign('fslmcx', $fslmcx);

*5.6版本后不需要另外单独调用前端数据,只需把后台数据调用出来方便后台管理
/**********************/
/5.6版本后台数据列表
/
/**********************/

//查询所有文档数据
$fslmcx = Db::name('archives')->select();

// 获取附属栏目文章
        foreach($fslmcx as $k => $chanping){
            if(!empty($chanping['stypeid'])){
          
                $chanping['stypeid'] = explode(',',$chanping['stypeid']);
                foreach($chanping['stypeid'] as $kstypeid => $fushulm){
                   

                    if($fushulm == $typeid){
                        $newids = [$chanping['aid']];
                        $fields = "b.*, a.*, a.aid as aid";
                        $row_fslm = Db::name('archives')
                        ->field($fields)
                        ->alias('a')
                        ->join('__ARCTYPE__ b', 'a.typeid = b.id', 'LEFT')
                        ->where('a.aid', 'in', $newids)
                        ->getAllWithIndex('aid');

                        // 查询栏目列表
                        $fslm_column = Db::name('arctype')->where('id',$chanping['typeid'])->select();                           
                        $chanping['typename'] = $fslm_column['0']['typename'];
                        $chanping['arcurl'] = get_arcurl($row_fslm[$chanping['aid']]);      
                        $list[] = $chanping;

                    }
                }
            }
        }
/**********************/

//编辑
public function edit(){
//序列化数组
$fslm_id = serialize($post['fslm_id']);

// 存储数据,添加一条记录
$newData = array(
'fslm_id' => $fslm_id,
);
}
  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2022-02-14 20:53:46  更:2022-02-14 20:55:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 11:20:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码