心理咨询网
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ContentSortModel.php 7.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. <?php
  2. /**
  3. * @copyright (C)2016-2099 Hnaoyun Inc.
  4. * @author XingMeng
  5. * @email hnxsh@foxmail.com
  6. * @date 2017年12月26日
  7. * 内容栏目模型类
  8. */
  9. namespace app\admin\model\content;
  10. use core\basic\Model;
  11. class ContentSortModel extends Model
  12. {
  13. // 存储分类及子编码
  14. protected $scodes = array();
  15. // 获取内容栏目列表
  16. public function getList()
  17. {
  18. $field = array(
  19. 'a.*',
  20. 'b.type',
  21. 'b.urlname',
  22. '(select count(*) from ay_content c where c.scode=a.scode) wzcount'
  23. );
  24. $join = array(
  25. 'ay_model b',
  26. 'a.mcode=b.mcode',
  27. 'LEFT'
  28. );
  29. $result = parent::table('ay_content_sort a')->field($field)
  30. ->where("a.acode='" . session('acode') . "'")
  31. ->join($join)
  32. ->order('a.pcode,a.sorting,a.id')
  33. ->select();
  34. $tree = get_tree($result, 0, 'scode', 'pcode');
  35. return $tree;
  36. }
  37. // 获取内容栏目选择列表
  38. public function getSelect()
  39. {
  40. $result = parent::table('ay_content_sort')->field('pcode,scode,name')
  41. ->where("acode='" . session('acode') . "'")
  42. ->order('pcode,sorting,id')
  43. ->select();
  44. $tree = get_tree($result, 0, 'scode', 'pcode');
  45. return $tree;
  46. }
  47. // 获取单页内容栏目选择列表
  48. public function getSingleSelect()
  49. {
  50. $field = array(
  51. 'a.pcode',
  52. 'a.scode',
  53. 'a.name',
  54. 'a.outlink'
  55. );
  56. $join = array(
  57. 'ay_model b',
  58. 'a.mcode=b.mcode',
  59. 'LEFT'
  60. );
  61. $result = parent::table('ay_content_sort a')->field($field)
  62. ->where('b.type=1')
  63. ->where("a.outlink=''")
  64. ->where("a.acode='" . session('acode') . "'")
  65. ->notIn('a.scode', 'select scode from ay_content')
  66. ->join($join)
  67. ->order('a.pcode,a.sorting,a.id')
  68. ->select();
  69. return $result;
  70. }
  71. // 获取列表内容栏目选择列表
  72. public function getListSelect($mcode)
  73. {
  74. $field = array(
  75. 'a.pcode',
  76. 'a.scode',
  77. 'a.name',
  78. 'a.outlink'
  79. );
  80. $join = array(
  81. 'ay_model b',
  82. 'a.mcode=b.mcode',
  83. 'LEFT'
  84. );
  85. $result = parent::table('ay_content_sort a')->field($field)
  86. ->where('b.type=2')
  87. ->where("a.outlink=''")
  88. ->where("a.mcode='$mcode'")
  89. ->where("a.acode='" . session('acode') . "'")
  90. ->join($join)
  91. ->order('a.pcode,a.sorting,a.id')
  92. ->select();
  93. $tree = get_tree($result, 0, 'scode', 'pcode');
  94. // 对于父栏目非列表的栏目进行追加到后面
  95. foreach ($result as $value) {
  96. if ($value->pcode != 0 && result_value_search($value->pcode, $result, 'scode') === false) {
  97. $value->son = get_tree($result, $value->scode, 'scode', 'pcode');
  98. $tree[] = $value;
  99. }
  100. }
  101. return $tree;
  102. }
  103. // 检查内容栏目
  104. public function checkSort($where)
  105. {
  106. return parent::table('ay_content_sort')->field('id')
  107. ->where($where)
  108. ->find();
  109. }
  110. // 获取内容栏目详情
  111. public function getSort($scode)
  112. {
  113. $field = array(
  114. 'a.*',
  115. 'b.type'
  116. );
  117. $join = array(
  118. 'ay_model b',
  119. 'a.mcode=b.mcode',
  120. 'LEFT'
  121. );
  122. return parent::table('ay_content_sort a')->field($field)
  123. ->where("a.scode='$scode'")
  124. ->where("a.acode='" . session('acode') . "'")
  125. ->join($join)
  126. ->find();
  127. }
  128. // 获取最后一个code
  129. public function getLastCode()
  130. {
  131. return parent::table('ay_content_sort')->order('id DESC')->value('scode');
  132. }
  133. // 添加内容栏目
  134. public function addSort(array $data)
  135. {
  136. return parent::table('ay_content_sort')->autoTime()->insert($data);
  137. }
  138. // 删除内容栏目及内容
  139. public function delSort($scode)
  140. {
  141. $this->scodes = array(); // 先清空
  142. $scodes = $this->getSubScodes($scode); // 获取全部子类
  143. $this->delContent($scodes);
  144. return parent::table('ay_content_sort')->in('scode', $scodes)
  145. ->where("acode='" . session('acode') . "'")
  146. ->delete();
  147. }
  148. // 批量删除栏目及内容
  149. public function delSortList($scodes)
  150. {
  151. $this->scodes = array(); // 先清空
  152. foreach ($scodes as $value) {
  153. $allscode = $this->getSubScodes($value); // 获取全部子类
  154. }
  155. $this->delContent($allscode);
  156. return parent::table('ay_content_sort')->in('scode', $allscode)
  157. ->where("acode='" . session('acode') . "'")
  158. ->delete();
  159. }
  160. // 修改内容栏目资料
  161. public function modSort($scode, $data, $modsub = false)
  162. {
  163. if ($modsub) {
  164. // 同步修改子栏目模型及模板
  165. $scodes = $this->getSubScodes($scode);
  166. $subdata = array(
  167. 'mcode' => $data['mcode'],
  168. 'listtpl' => $data['listtpl'],
  169. 'contenttpl' => $data['contenttpl']
  170. );
  171. parent::table('ay_content_sort')->in('scode', $scodes)
  172. ->where("acode='" . session('acode') . "'")
  173. ->update($subdata);
  174. }
  175. $result = parent::table('ay_content_sort')->autoTime()
  176. ->where("scode='$scode'")
  177. ->where("acode='" . session('acode') . "'")
  178. ->update($data);
  179. return $result;
  180. }
  181. // 修改内容栏目排序
  182. public function modSortSorting($id, $data)
  183. {
  184. $result = parent::table('ay_content_sort')->autoTime()
  185. ->where("id='$id'")
  186. ->where("acode='" . session('acode') . "'")
  187. ->update($data);
  188. return $result;
  189. }
  190. // 查找指定单页内容
  191. public function findContent($scode)
  192. {
  193. return parent::table('ay_content')->where("scode='$scode'")->find();
  194. }
  195. // 添加单篇文章
  196. public function addSingle(array $data)
  197. {
  198. return parent::table('ay_content')->autoTime()->insert($data);
  199. }
  200. // 删除指定栏目文章
  201. public function delContent($scodes)
  202. {
  203. return parent::table('ay_content')->in('scode', $scodes)->delete();
  204. }
  205. // 分类子类集
  206. private function getSubScodes($scode)
  207. {
  208. if (! $scode) {
  209. return;
  210. }
  211. $this->scodes[] = $scode;
  212. $subs = parent::table('ay_content_sort')->where("pcode='$scode'")->column('scode');
  213. if ($subs) {
  214. foreach ($subs as $value) {
  215. $this->getSubScodes($value);
  216. }
  217. }
  218. return $this->scodes;
  219. }
  220. // 检查自定义URL名称
  221. public function checkFilename($filename, $where = array())
  222. {
  223. return parent::table('ay_content_sort')->field('id')
  224. ->where("filename='$filename'")
  225. ->where($where)
  226. ->find();
  227. }
  228. // 检查URL名字冲突
  229. public function checkUrlname($filename)
  230. {
  231. return parent::table('ay_model')->field('id')
  232. ->where("urlname='$filename'")
  233. ->find();
  234. }
  235. // 获取当前主题
  236. public function getTheme()
  237. {
  238. return parent::table('ay_site')->where("acode='" . session('acode') . "'")->value('theme');
  239. }
  240. public function getImage()
  241. {
  242. return parent::table('ay_content_sort')->column('pic,ico');
  243. }
  244. }