app->request->param('cid'); $params = $this->app->request->param(); $list = ArticleModel::queryPage($params); View::assign([ 'category_tree' => $category_tree, 'list' => $list, 'cid' => $cid ]); return View::fetch(); } public function save($content_type = 0, $id = 0) { if ($this->app->request->isPost()) { $params = $this->app->request->param(); if (!$params['cid']) { $this->error('请选择栏目'); } if ($params['title'] == '') { $this->error("标题不能为空"); } if ($params['titlepic'] && preg_match('/(http[s]:\/\/.*)/isU', $params['titlepic'])) { $params['titlepic'] = FileUtils::downloadUrlImg($params['titlepic']); } $params['content'] = isset($params['content']) ? $params['content'] : ''; $params['content'] = $this->saveRomteImage($params['content']); $params['keywords'] = trim($params['keywords']); try { if ($params['id'] != 0) { $oldKeywords = ArticleModel::getKeywordsById((int) $params['id']); $article = ArticleModel::update($params); $oldTags = explode(",", $oldKeywords); $newTags = explode(",", $article->keywords); $addTas = array_diff($newTags, $oldTags); $subTas = array_diff($oldTags, $newTags); TagArticleModel::saveArticleTag($addTas, (int) $article->id, (int)$article->cid); TagArticleModel::delArticleTag($subTas, (int) $article->id); } else { $params['userid'] = $this->getSysUser()->userid; $params['username'] = $this->getSysUser()->nickname != "" ? $this->getSysUser()->nickname : $this->getSysUser()->username; unset($params['id']); $article = ArticleModel::create($params); $tags = explode(",", $article->keywords); TagArticleModel::saveArticleTag($tags, (int) $article->id, (int) $article->cid); } } catch (\Exception $e) { $this->error("错误提示:" . $e->getMessage()); } $this->success('操作成功', (string) url('/sys/article/index')); } else { if ($id) { $data = ArticleModel::find($id); } else { $data = new ArticleModel(); $data->content_type = $content_type; } $categories = CategoryModel::field('id, parent_id, name')->select(); View::assign('category_tree', list_tree($categories)); View::assign('data', $data); $template = $content_type ? 'savemd' : 'save'; return View::fetch($template); } } protected function saveRomteImage($content) { $content = stripslashes($content); $img_array = []; // 匹配所有远程图片 $pattern = '/src="(http[s]:\/\/.*)"/isU'; preg_match_all($pattern, $content, $img_array); // 删除重复 url $img_arrays = array_unique($img_array[1]); foreach ($img_arrays as $value) { $filename = FileUtils::downloadUrlImg($value); $content = str_replace($value, $filename, $content); } return $content; } public function move() { $ids = $this->request->param('ids'); $cid = $this->request->param('cid'); $tablename = ArticleModel::getTable(); $idss = implode(',', $ids); $sql = "update " . $tablename . " set cid=" . $cid . " where id IN (" . $idss . ");"; try { Db::execute($sql); } catch (Exception $e) { return ReUtils::error($e->getMessage()); } return ReUtils::success(); } /** * 删除 * @param int|array $id info id * @return array */ public function delete($id) { if ($this->request->isPost()) { if (ArticleModel::destroy($id)) { if (is_array($id)) { TagArticleModel::where('aid',"IN",$id)->delete(); } else { TagArticleModel::where('aid',"=",$id)->delete(); } return ReUtils::success(); } else { return ReUtils::error(); } } } }