| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 | 
							- <?php
 
- declare(strict_types=1);
 
- /**
 
-  * +----------------------------------------------------------------------
 
-  * 后台文章控制制器
 
-  * @author huwhis@163.com
 
-  * @version   0.0.1
 
-  * +----------------------------------------------------------------------
 
-  */
 
- namespace app\sys\controller;
 
- // 引入框架内置类
 
- use think\facade\View;
 
- use think\facade\Config;
 
- use app\common\model\Category as CategoryModel;
 
- use app\common\model\Article as ArticleModel;
 
- use app\common\facade\FileUtils;
 
- use app\common\model\FileManager as FileManagerModel;
 
- class Article extends Base
 
- {
 
-     protected $modelName = "Article";
 
-     public function index()
 
-     {
 
-         $categories = CategoryModel::select();
 
-         $category_tree = list_tree($categories);
 
-         $cid = $this->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("标题不能为空");
 
-             }
 
-             $params['content'] =  isset($params['content']) ? $params['content'] : '';
 
-             if ($content_type == 0) {
 
-                 $username = $this->getSysUser()->username;
 
-                 $params['content'] = $this->saveRomteImage($params['content'],(int)$params['id'],(int) $params['cjid'], $username);
 
-             }
 
-             $params['keywords'] = trim($params['keywords']);
 
-             try {
 
-                 if ($params['id'] != 0) {
 
-                     ArticleModel::updateOne($params);
 
-                 } else {
 
-                     $params['userid'] = $this->getSysUser()->userid;
 
-                     $params['username'] = $this->getSysUser()->nickname;
 
-                     unset($params['id']);
 
-                     ArticleModel::createOne($params);
 
-                 }
 
-             } catch (\Exception $e) {
 
-                 $msg = $e->getMessage();
 
-                 $this->error("错误提示:" . $msg);
 
-             }
 
-             $this->success('操作成功', (string) url('index?cid=' . $params['cid']));
 
-         } else {
 
-             if ($id) {
 
-                 $data = ArticleModel::find($id);
 
-             } else {
 
-                 $data = new ArticleModel();
 
-                 $data->content_type = $content_type;
 
-             }
 
-             $data->cjid = time();
 
-             $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, $infoid=0, $cjid=0, $username='system')
 
-     {
 
-         $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) {
 
-             $file = FileUtils::downloadUrlImg($value);
 
-             
 
-             $savename = \think\facade\Filesystem::disk('public')->putFile('/', $file);
 
-             FileManagerModel::saveFileInfo($file, $savename, $file->getOriginalName, $infoid, $cjid, $username);
 
-             // 删除临时文件
 
-             @unlink($file->getRealPath());
 
-             
 
-             $filename = Config::get('filesystem.disks.public.url') . '/' . str_replace('\\', '/', $savename);
 
-             // dump($filename);
 
-             $content = str_replace($value, $filename, $content);
 
-         }
 
-         return $content;
 
-     }
 
- }
 
 
  |