初始化官网代码

This commit is contained in:
wojiaoxiaomage
2025-12-30 10:26:47 +08:00
commit 00f55e8b83
232 changed files with 49856 additions and 0 deletions

View File

@@ -0,0 +1,332 @@
<?php
/**
* @copyright (C)2016-2099 Hnaoyun Inc.
* @author XingMeng
* @email hnxsh@foxmail.com
* @date 2017年12月15日
* 列表文章模型类
*/
namespace app\admin\model\content;
use core\basic\Model;
class ContentModel extends Model
{
protected $scodes = array();
// 获取文章列表
public function getList($mcode)
{
$field = array(
'a.id',
'b.name as sortname',
'a.scode',
'c.name as subsortname',
'a.subscode',
'a.title',
'a.subtitle',
'a.date',
'a.sorting',
'a.status',
'a.istop',
'a.isrecommend',
'a.isheadline',
'a.visits',
'a.ico',
'a.pics',
'a.filename',
'a.outlink',
'd.urlname',
'b.filename as sortfilename'
);
$join = array(
array(
'ay_content_sort b',
'a.scode=b.scode',
'LEFT'
),
array(
'ay_content_sort c',
'a.subscode=c.scode',
'LEFT'
),
array(
'ay_model d',
'b.mcode=d.mcode',
'LEFT'
)
);
return parent::table('ay_content a')->field($field)
->where("b.mcode='$mcode'")
->where('d.type=2 OR d.type is null ')
->where("a.acode='" . session('acode') . "'")
->join($join)
->order('a.sorting ASC,a.id DESC')
->page()
->select();
}
// 查找指定分类及子类文章
public function findContent($mcode, $scode, $keyword)
{
$fields = array(
'a.id',
'b.name as sortname',
'a.scode',
'c.name as subsortname',
'a.subscode',
'a.title',
'a.subtitle',
'a.date',
'a.sorting',
'a.status',
'a.istop',
'a.isrecommend',
'a.isheadline',
'a.visits',
'a.ico',
'a.pics',
'a.filename',
'a.outlink',
'd.urlname',
'b.filename as sortfilename'
);
$join = array(
array(
'ay_content_sort b',
'a.scode=b.scode',
'LEFT'
),
array(
'ay_content_sort c',
'a.subscode=c.scode',
'LEFT'
),
array(
'ay_model d',
'b.mcode=d.mcode',
'LEFT'
)
);
$this->scodes = array(); // 先清空
$scodes = $this->getSubScodes($scode);
return parent::table('ay_content a')->field($fields)
->where("b.mcode='$mcode'")
->where('d.type=2 OR d.type is null ')
->where("a.acode='" . session('acode') . "'")
->in('a.scode', $scodes)
->like('a.title', $keyword)
->join($join)
->order('a.sorting ASC,a.id DESC')
->page()
->select();
}
// 在全部栏目查找文章
public function findContentAll($mcode, $keyword)
{
$fields = array(
'a.id',
'b.name as sortname',
'a.scode',
'c.name as subsortname',
'a.subscode',
'a.title',
'a.subtitle',
'a.date',
'a.sorting',
'a.status',
'a.istop',
'a.isrecommend',
'a.isheadline',
'a.visits',
'a.ico',
'a.pics',
'a.filename',
'a.outlink',
'd.urlname',
'b.filename as sortfilename'
);
$join = array(
array(
'ay_content_sort b',
'a.scode=b.scode',
'LEFT'
),
array(
'ay_content_sort c',
'a.subscode=c.scode',
'LEFT'
),
array(
'ay_model d',
'b.mcode=d.mcode',
'LEFT'
)
);
return parent::table('ay_content a')->field($fields)
->where("b.mcode='$mcode'")
->where('d.type=2 OR d.type is null ')
->where("a.acode='" . session('acode') . "'")
->like('a.title', $keyword)
->join($join)
->order('a.sorting ASC,a.id DESC')
->page()
->select();
}
// 获取子栏目
public function getSubScodes($scode)
{
if (! $scode) {
return;
}
$this->scodes[] = $scode;
$subs = parent::table('ay_content_sort')->where("pcode='$scode'")->column('scode');
if ($subs) {
foreach ($subs as $value) {
$this->getSubScodes($value);
}
}
return $this->scodes;
}
// 检查文章
public function checkContent($where)
{
return parent::table('ay_content')->field('id')
->where($where)
->find();
}
// 获取文章详情
public function getContent($id)
{
$field = array(
'a.*',
'b.name as sortname',
'c.name as subsortname',
'd.*'
);
$join = array(
array(
'ay_content_sort b',
'a.scode=b.scode',
'LEFT'
),
array(
'ay_content_sort c',
'a.subscode=c.scode',
'LEFT'
),
array(
'ay_content_ext d',
'a.id=d.contentid',
'LEFT'
)
);
return parent::table('ay_content a')->field($field)
->where("a.id=$id")
->where("a.acode='" . session('acode') . "'")
->join($join)
->find();
}
// 添加文章
public function addContent(array $data)
{
return parent::table('ay_content')->autoTime()->insertGetId($data);
}
// 删除文章
public function delContent($id)
{
return parent::table('ay_content')->where("id=$id")
->where("acode='" . session('acode') . "'")
->delete();
}
// 删除文章
public function delContentList($ids)
{
return parent::table('ay_content')->where("acode='" . session('acode') . "'")->delete($ids);
}
// 修改文章
public function modContent($id, $data)
{
return parent::table('ay_content')->autoTime()
->in('id', $id)
->where("acode='" . session('acode') . "'")
->update($data);
}
// 复制内容到指定栏目
public function copyContent($ids, $scode)
{
// 查找出要复制的主内容
$data = parent::table('ay_content')->in('id', $ids)->select(1);
foreach ($data as $key => $value) {
// 查找扩展内容
$extdata = parent::table('ay_content_ext')->where('contentid=' . $value['id'])->find(1);
// 去除主键并修改栏目
unset($value['id']);
$value['scode'] = $scode;
// 插入主内容
$id = parent::table('ay_content')->insertGetId($value);
// 插入扩展内容
if ($id && $extdata) {
unset($extdata['extid']);
$extdata['contentid'] = $id;
$result = parent::table('ay_content_ext')->insert($extdata);
} else {
$result = $id;
}
}
return $result;
}
// 查找文章扩展内容
public function findContentExt($id)
{
return parent::table('ay_content_ext')->where("contentid=$id")->find();
}
// 添加文章扩展内容
public function addContentExt(array $data)
{
return parent::table('ay_content_ext')->insert($data);
}
// 修改文章扩展内容
public function modContentExt($id, $data)
{
return parent::table('ay_content_ext')->where("contentid=$id")->update($data);
}
// 删除文章扩展内容
public function delContentExt($id)
{
return parent::table('ay_content_ext')->where("contentid=$id")->delete();
}
// 删除文章扩展内容
public function delContentExtList($ids)
{
return parent::table('ay_content_ext')->delete($ids, 'contentid');
}
// 检查自定义URL名称
public function checkFilename($filename, $where = array())
{
return parent::table('ay_content')->field('id')
->where("filename='$filename'")
->where($where)
->find();
}
}

View File

@@ -0,0 +1,261 @@
<?php
/**
* @copyright (C)2016-2099 Hnaoyun Inc.
* @author XingMeng
* @email hnxsh@foxmail.com
* @date 2017年12月26日
* 内容栏目模型类
*/
namespace app\admin\model\content;
use core\basic\Model;
class ContentSortModel extends Model
{
// 存储分类及子编码
protected $scodes = array();
// 获取内容栏目列表
public function getList()
{
$field = array(
'a.*',
'b.type',
'b.urlname'
);
$join = array(
'ay_model b',
'a.mcode=b.mcode',
'LEFT'
);
$result = parent::table('ay_content_sort a')->field($field)
->where("a.acode='" . session('acode') . "'")
->join($join)
->order('a.pcode,a.sorting,a.id')
->select();
$tree = get_tree($result, 0, 'scode', 'pcode');
return $tree;
}
// 获取内容栏目选择列表
public function getSelect()
{
$result = parent::table('ay_content_sort')->field('pcode,scode,name')
->where("acode='" . session('acode') . "'")
->order('pcode,sorting,id')
->select();
$tree = get_tree($result, 0, 'scode', 'pcode');
return $tree;
}
// 获取单页内容栏目选择列表
public function getSingleSelect()
{
$field = array(
'a.pcode',
'a.scode',
'a.name',
'a.outlink'
);
$join = array(
'ay_model b',
'a.mcode=b.mcode',
'LEFT'
);
$result = parent::table('ay_content_sort a')->field($field)
->where('b.type=1')
->where("a.outlink=''")
->where("a.acode='" . session('acode') . "'")
->notIn('a.scode', 'select scode from ay_content')
->join($join)
->order('a.pcode,a.sorting,a.id')
->select();
return $result;
}
// 获取列表内容栏目选择列表
public function getListSelect($mcode)
{
$field = array(
'a.pcode',
'a.scode',
'a.name',
'a.outlink'
);
$join = array(
'ay_model b',
'a.mcode=b.mcode',
'LEFT'
);
$result = parent::table('ay_content_sort a')->field($field)
->where('b.type=2')
->where("a.outlink=''")
->where("a.mcode='$mcode'")
->where("a.acode='" . session('acode') . "'")
->join($join)
->order('a.pcode,a.sorting,a.id')
->select();
$tree = get_tree($result, 0, 'scode', 'pcode');
// 对于父栏目非列表的栏目进行追加到后面
foreach ($result as $value) {
if ($value->pcode != 0 && result_value_search($value->pcode, $result, 'scode') === false) {
$value->son = get_tree($result, $value->scode, 'scode', 'pcode');
$tree[] = $value;
}
}
return $tree;
}
// 检查内容栏目
public function checkSort($where)
{
return parent::table('ay_content_sort')->field('id')
->where($where)
->find();
}
// 获取内容栏目详情
public function getSort($scode)
{
$field = array(
'a.*',
'b.type'
);
$join = array(
'ay_model b',
'a.mcode=b.mcode',
'LEFT'
);
return parent::table('ay_content_sort a')->field($field)
->where("a.scode='$scode'")
->where("a.acode='" . session('acode') . "'")
->join($join)
->find();
}
// 获取最后一个code
public function getLastCode()
{
return parent::table('ay_content_sort')->order('id DESC')->value('scode');
}
// 添加内容栏目
public function addSort(array $data)
{
return parent::table('ay_content_sort')->autoTime()->insert($data);
}
// 删除内容栏目及内容
public function delSort($scode)
{
$this->scodes = array(); // 先清空
$scodes = $this->getSubScodes($scode); // 获取全部子类
$this->delContent($scodes);
return parent::table('ay_content_sort')->in('scode', $scodes)
->where("acode='" . session('acode') . "'")
->delete();
}
// 批量删除栏目及内容
public function delSortList($scodes)
{
$this->scodes = array(); // 先清空
foreach ($scodes as $value) {
$allscode = $this->getSubScodes($value); // 获取全部子类
}
$this->delContent($allscode);
return parent::table('ay_content_sort')->in('scode', $allscode)
->where("acode='" . session('acode') . "'")
->delete();
}
// 修改内容栏目资料
public function modSort($scode, $data, $modsub = false)
{
if ($modsub) {
// 同步修改子栏目模型及模板
$scodes = $this->getSubScodes($scode);
$subdata = array(
'mcode' => $data['mcode'],
'listtpl' => $data['listtpl'],
'contenttpl' => $data['contenttpl']
);
parent::table('ay_content_sort')->in('scode', $scodes)
->where("acode='" . session('acode') . "'")
->update($subdata);
}
$result = parent::table('ay_content_sort')->autoTime()
->where("scode='$scode'")
->where("acode='" . session('acode') . "'")
->update($data);
return $result;
}
// 修改内容栏目排序
public function modSortSorting($id, $data)
{
$result = parent::table('ay_content_sort')->autoTime()
->where("id='$id'")
->where("acode='" . session('acode') . "'")
->update($data);
return $result;
}
// 查找指定单页内容
public function findContent($scode)
{
return parent::table('ay_content')->where("scode='$scode'")->find();
}
// 添加单篇文章
public function addSingle(array $data)
{
return parent::table('ay_content')->autoTime()->insert($data);
}
// 删除指定栏目文章
public function delContent($scodes)
{
return parent::table('ay_content')->in('scode', $scodes)->delete();
}
// 分类子类集
private function getSubScodes($scode)
{
if (! $scode) {
return;
}
$this->scodes[] = $scode;
$subs = parent::table('ay_content_sort')->where("pcode='$scode'")->column('scode');
if ($subs) {
foreach ($subs as $value) {
$this->getSubScodes($value);
}
}
return $this->scodes;
}
// 检查自定义URL名称
public function checkFilename($filename, $where = array())
{
return parent::table('ay_content_sort')->field('id')
->where("filename='$filename'")
->where($where)
->find();
}
// 检查URL名字冲突
public function checkUrlname($filename)
{
return parent::table('ay_model')->field('id')
->where("urlname='$filename'")
->find();
}
// 获取当前主题
public function getTheme()
{
return parent::table('ay_site')->where("acode='" . session('acode') . "'")->value('theme');
}
}