article.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385
  1. <?php
  2. /**
  3. * 文章管理
  4. *
  5. *
  6. *
  7. ***/
  8. defined('InShopNC') or exit('Access Invalid!');
  9. class articleControl extends SystemControl{
  10. public function __construct(){
  11. parent::__construct();
  12. Language::read('article');
  13. }
  14. /**
  15. * 文章管理
  16. */
  17. public function articleOp(){
  18. $lang = Language::getLangContent();
  19. $model_article = Model('article');
  20. /**
  21. * 删除
  22. */
  23. if (chksubmit()){
  24. if (is_array($_POST['del_id']) && !empty($_POST['del_id'])){
  25. $model_upload = Model('upload');
  26. foreach ($_POST['del_id'] as $k => $v){
  27. $v = intval($v);
  28. /**
  29. * 删除图片
  30. */
  31. $condition['upload_type'] = '1';
  32. $condition['item_id'] = $v;
  33. $upload_list = $model_upload->getUploadList($condition);
  34. if (is_array($upload_list)){
  35. foreach ($upload_list as $k_upload => $v_upload){
  36. $model_upload->del($v_upload['upload_id']);
  37. @unlink(BASE_UPLOAD_PATH.DS.ATTACH_ARTICLE.DS.$v_upload['file_name']);
  38. }
  39. }
  40. $model_article->del($v);
  41. }
  42. $this->log(L('article_index_del_succ').'[ID:'.implode(',',$_POST['del_id']).']',null);
  43. showMessage($lang['article_index_del_succ']);
  44. }else {
  45. showMessage($lang['article_index_choose']);
  46. }
  47. }
  48. /**
  49. * 检索条件
  50. */
  51. $condition['ac_id'] = intval($_GET['search_ac_id']);
  52. $condition['like_title'] = trim($_GET['search_title']);
  53. /**
  54. * 分页
  55. */
  56. $page = new Page();
  57. $page->setEachNum(10);
  58. $page->setStyle('admin');
  59. /**
  60. * 列表
  61. */
  62. $article_list = $model_article->getArticleList($condition,$page);
  63. /**
  64. * 整理列表内容
  65. */
  66. if (is_array($article_list)){
  67. /**
  68. * 取文章分类
  69. */
  70. $model_class = Model('article_class');
  71. $class_list = $model_class->getClassList($condition);
  72. $tmp_class_name = array();
  73. if (is_array($class_list)){
  74. foreach ($class_list as $k => $v){
  75. $tmp_class_name[$v['ac_id']] = $v['ac_name'];
  76. }
  77. }
  78. foreach ($article_list as $k => $v){
  79. /**
  80. * 发布时间
  81. */
  82. $article_list[$k]['article_time'] = date('Y-m-d H:i:s',$v['article_time']);
  83. /**
  84. * 所属分类
  85. */
  86. if (@array_key_exists($v['ac_id'],$tmp_class_name)){
  87. $article_list[$k]['ac_name'] = $tmp_class_name[$v['ac_id']];
  88. }
  89. }
  90. }
  91. /**
  92. * 分类列表
  93. */
  94. $model_class = Model('article_class');
  95. $parent_list = $model_class->getTreeClassList(2);
  96. if (is_array($parent_list)){
  97. $unset_sign = false;
  98. foreach ($parent_list as $k => $v){
  99. $parent_list[$k]['ac_name'] = str_repeat("&nbsp;",$v['deep']*2).$v['ac_name'];
  100. }
  101. }
  102. Tpl::output('article_list',$article_list);
  103. Tpl::output('page',$page->show());
  104. Tpl::output('search_title',trim($_GET['search_title']));
  105. Tpl::output('search_ac_id',intval($_GET['search_ac_id']));
  106. Tpl::output('parent_list',$parent_list);
  107. Tpl::showpage('article.index');
  108. }
  109. /**
  110. * 文章添加
  111. */
  112. public function article_addOp(){
  113. $lang = Language::getLangContent();
  114. $model_article = Model('article');
  115. /**
  116. * 保存
  117. */
  118. if (chksubmit()){
  119. /**
  120. * 验证
  121. */
  122. $obj_validate = new Validator();
  123. $obj_validate->validateparam = array(
  124. array("input"=>$_POST["article_title"], "require"=>"true", "message"=>$lang['article_add_title_null']),
  125. array("input"=>$_POST["ac_id"], "require"=>"true", "message"=>$lang['article_add_class_null']),
  126. //array("input"=>$_POST["article_url"], 'validator'=>'Url', "message"=>$lang['article_add_url_wrong']),
  127. array("input"=>$_POST["article_content"], "require"=>"true", "message"=>$lang['article_add_content_null']),
  128. array("input"=>$_POST["article_sort"], "require"=>"true", 'validator'=>'Number', "message"=>$lang['article_add_sort_int']),
  129. );
  130. $error = $obj_validate->validate();
  131. if ($error != ''){
  132. showMessage($error);
  133. }else {
  134. $insert_array = array();
  135. $insert_array['article_title'] = trim($_POST['article_title']);
  136. $insert_array['ac_id'] = intval($_POST['ac_id']);
  137. $insert_array['article_url'] = trim($_POST['article_url']);
  138. $insert_array['article_show'] = trim($_POST['article_show']);
  139. $insert_array['article_sort'] = trim($_POST['article_sort']);
  140. $insert_array['article_content'] = trim($_POST['article_content']);
  141. $insert_array['article_time'] = time();
  142. $result = $model_article->add($insert_array);
  143. if ($result){
  144. /**
  145. * 更新图片信息ID
  146. */
  147. $model_upload = Model('upload');
  148. if (is_array($_POST['file_id'])){
  149. foreach ($_POST['file_id'] as $k => $v){
  150. $v = intval($v);
  151. $update_array = array();
  152. $update_array['upload_id'] = $v;
  153. $update_array['item_id'] = $result;
  154. $model_upload->update($update_array);
  155. unset($update_array);
  156. }
  157. }
  158. $url = array(
  159. array(
  160. 'url'=>'index.php?act=article&op=article',
  161. 'msg'=>"{$lang['article_add_tolist']}",
  162. ),
  163. array(
  164. 'url'=>'index.php?act=article&op=article_add&ac_id='.intval($_POST['ac_id']),
  165. 'msg'=>"{$lang['article_add_continueadd']}",
  166. ),
  167. );
  168. $this->log(L('article_add_ok').'['.$_POST['article_title'].']',null);
  169. showMessage("{$lang['article_add_ok']}",$url);
  170. }else {
  171. showMessage("{$lang['article_add_fail']}");
  172. }
  173. }
  174. }
  175. /**
  176. * 分类列表
  177. */
  178. $model_class = Model('article_class');
  179. $parent_list = $model_class->getTreeClassList(2);
  180. if (is_array($parent_list)){
  181. $unset_sign = false;
  182. foreach ($parent_list as $k => $v){
  183. $parent_list[$k]['ac_name'] = str_repeat("&nbsp;",$v['deep']*2).$v['ac_name'];
  184. }
  185. }
  186. /**
  187. * 模型实例化
  188. */
  189. $model_upload = Model('upload');
  190. $condition['upload_type'] = '1';
  191. $condition['item_id'] = '0';
  192. $file_upload = $model_upload->getUploadList($condition);
  193. if (is_array($file_upload)){
  194. foreach ($file_upload as $k => $v){
  195. $file_upload[$k]['upload_path'] = UPLOAD_SITE_URL.'/'.ATTACH_ARTICLE.'/'.$file_upload[$k]['file_name'];
  196. }
  197. }
  198. Tpl::output('PHPSESSID',session_id());
  199. Tpl::output('ac_id',intval($_GET['ac_id']));
  200. Tpl::output('parent_list',$parent_list);
  201. Tpl::output('file_upload',$file_upload);
  202. Tpl::showpage('article.add');
  203. }
  204. /**
  205. * 文章编辑
  206. */
  207. public function article_editOp(){
  208. $lang = Language::getLangContent();
  209. $model_article = Model('article');
  210. if (chksubmit()){
  211. /**
  212. * 验证
  213. */
  214. $obj_validate = new Validator();
  215. $obj_validate->validateparam = array(
  216. array("input"=>$_POST["article_title"], "require"=>"true", "message"=>$lang['article_add_title_null']),
  217. array("input"=>$_POST["ac_id"], "require"=>"true", "message"=>$lang['article_add_class_null']),
  218. //array("input"=>$_POST["article_url"], 'validator'=>'Url', "message"=>$lang['article_add_url_wrong']),
  219. array("input"=>$_POST["article_content"], "require"=>"true", "message"=>$lang['article_add_content_null']),
  220. array("input"=>$_POST["article_sort"], "require"=>"true", 'validator'=>'Number', "message"=>$lang['article_add_sort_int']),
  221. );
  222. $error = $obj_validate->validate();
  223. if ($error != ''){
  224. showMessage($error);
  225. }else {
  226. $update_array = array();
  227. $update_array['article_id'] = intval($_POST['article_id']);
  228. $update_array['article_title'] = trim($_POST['article_title']);
  229. $update_array['ac_id'] = intval($_POST['ac_id']);
  230. $update_array['article_url'] = trim($_POST['article_url']);
  231. $update_array['article_show'] = trim($_POST['article_show']);
  232. $update_array['article_sort'] = trim($_POST['article_sort']);
  233. $update_array['article_content'] = trim($_POST['article_content']);
  234. $result = $model_article->update($update_array);
  235. if ($result){
  236. /**
  237. * 更新图片信息ID
  238. */
  239. $model_upload = Model('upload');
  240. if (is_array($_POST['file_id'])){
  241. foreach ($_POST['file_id'] as $k => $v){
  242. $update_array = array();
  243. $update_array['upload_id'] = intval($v);
  244. $update_array['item_id'] = intval($_POST['article_id']);
  245. $model_upload->update($update_array);
  246. unset($update_array);
  247. }
  248. }
  249. $url = array(
  250. array(
  251. 'url'=>$_POST['ref_url'],
  252. 'msg'=>$lang['article_edit_back_to_list'],
  253. ),
  254. array(
  255. 'url'=>'index.php?act=article&op=article_edit&article_id='.intval($_POST['article_id']),
  256. 'msg'=>$lang['article_edit_edit_again'],
  257. ),
  258. );
  259. $this->log(L('article_edit_succ').'['.$_POST['article_title'].']',null);
  260. showMessage($lang['article_edit_succ'],$url);
  261. }else {
  262. showMessage($lang['article_edit_fail']);
  263. }
  264. }
  265. }
  266. $article_array = $model_article->getOneArticle(intval($_GET['article_id']));
  267. if (empty($article_array)){
  268. showMessage($lang['param_error']);
  269. }
  270. /**
  271. * 文章类别模型实例化
  272. */
  273. $model_class = Model('article_class');
  274. /**
  275. * 父类列表,只取到第一级
  276. */
  277. $parent_list = $model_class->getTreeClassList(2);
  278. if (is_array($parent_list)){
  279. $unset_sign = false;
  280. foreach ($parent_list as $k => $v){
  281. $parent_list[$k]['ac_name'] = str_repeat("&nbsp;",$v['deep']*2).$v['ac_name'];
  282. }
  283. }
  284. /**
  285. * 模型实例化
  286. */
  287. $model_upload = Model('upload');
  288. $condition['upload_type'] = '1';
  289. $condition['item_id'] = $article_array['article_id'];
  290. $file_upload = $model_upload->getUploadList($condition);
  291. if (is_array($file_upload)){
  292. foreach ($file_upload as $k => $v){
  293. $file_upload[$k]['upload_path'] = UPLOAD_SITE_URL.'/'.ATTACH_ARTICLE.'/'.$file_upload[$k]['file_name'];
  294. }
  295. }
  296. Tpl::output('PHPSESSID',session_id());
  297. Tpl::output('file_upload',$file_upload);
  298. Tpl::output('parent_list',$parent_list);
  299. Tpl::output('article_array',$article_array);
  300. Tpl::showpage('article.edit');
  301. }
  302. /**
  303. * 文章图片上传
  304. */
  305. public function article_pic_uploadOp(){
  306. /**
  307. * 上传图片
  308. */
  309. $upload = new UploadFile();
  310. $upload->set('default_dir',ATTACH_ARTICLE);
  311. $result = $upload->upfile('fileupload');
  312. if ($result){
  313. $_POST['pic'] = $upload->file_name;
  314. }else {
  315. echo 'error';exit;
  316. }
  317. /**
  318. * 模型实例化
  319. */
  320. $model_upload = Model('upload');
  321. /**
  322. * 图片数据入库
  323. */
  324. $insert_array = array();
  325. $insert_array['file_name'] = $_POST['pic'];
  326. $insert_array['upload_type'] = '1';
  327. $insert_array['file_size'] = $_FILES['fileupload']['size'];
  328. $insert_array['upload_time'] = time();
  329. $insert_array['item_id'] = intval($_POST['item_id']);
  330. $result = $model_upload->add($insert_array);
  331. if ($result){
  332. $data = array();
  333. $data['file_id'] = $result;
  334. $data['file_name'] = $_POST['pic'];
  335. $data['file_path'] = $_POST['pic'];
  336. /**
  337. * 整理为json格式
  338. */
  339. $output = json_encode($data);
  340. echo $output;
  341. }
  342. }
  343. /**
  344. * ajax操作
  345. */
  346. public function ajaxOp(){
  347. switch ($_GET['branch']){
  348. /**
  349. * 删除文章图片
  350. */
  351. case 'del_file_upload':
  352. if (intval($_GET['file_id']) > 0){
  353. $model_upload = Model('upload');
  354. /**
  355. * 删除图片
  356. */
  357. $file_array = $model_upload->getOneUpload(intval($_GET['file_id']));
  358. @unlink(BASE_UPLOAD_PATH.DS.ATTACH_ARTICLE.DS.$file_array['file_name']);
  359. /**
  360. * 删除信息
  361. */
  362. $model_upload->del(intval($_GET['file_id']));
  363. echo 'true';exit;
  364. }else {
  365. echo 'false';exit;
  366. }
  367. break;
  368. }
  369. }
  370. }