HEX
Server: nginx/1.28.1
System: Linux 10-41-63-61 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64
User: www (1001)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot/my.esfyn.top/Modules/Cms/Http/Controllers/Web/CmsController.php
<?php


namespace Modules\Cms\Http\Controllers\Web;


use App\Http\Controllers\MyController;
use Modules\Cms\Http\Requests\ArticleCommentRequest;
use Modules\Cms\Models\ArticleCategory;
use Modules\Cms\Models\ArticleComment;
use Modules\Cms\Models\ArticleTag;

class CmsController extends MyController
{

    public function index()
    {
        is_home(system_config());

        return $this->theme('index');
    }

    public function category($id)
    {
        $category = ArticleCategory::find($id);

        if (empty($category)) {
            abort(404);
        }

        if ($category->redirect_url) {
            return redirect()->to($category->redirect_url);
        }

        is_category($category);

        return $this->theme($this->cmsCategoryTemplate($category), compact('category'));
    }

    public function single($id)
    {
        $article = article($id);

        if (empty($article)) {
            abort(404);
        }

        if ($article->redirect_url) {
            return redirect()->to($article->redirect_url);
        }

        is_single($article);

        $config = system_config([], 'cms');

        return $this->theme($this->cmsArticleTemplate($article), compact('article', 'config'));
    }


    public function tag($id)
    {
        $tag = ArticleTag::find($id);

        if (empty($tag)) {
            abort(404);
        }

        is_tag($tag);

        return $this->theme('tag', compact('tag'));
    }

    public function search($keyword)
    {
        $keyword = $this->filter($keyword, '');

        if (empty($keyword)) {
            abort(404);
        }

        is_search($keyword);

        return $this->theme('search', compact('keyword'));
    }

    public function createComment(ArticleCommentRequest $request)
    {
        $config = system_config([], 'cms');

        if (isset($config['is_allow_comment']) && $config['is_allow_comment'] == 1) {

            $data = $request->validated();
            $content = strip_tags(paramFilter($data['content']));

            $article = article($data['single_id']);

            if (!$article) {
                return $this->result(false, ['msg' => '非法参数.']);
            }

            $pid = $data['parent_id'];
            $rid = 0;

            if ($pid > 0) {

                $obj = comment($pid, $data['single_id']);

                if (!$obj) {
                    return $this->result(false, ['msg' => '非法参数.']);
                }

                $rid = $obj->parent_id == 0 ? $obj->id : $obj->root_id;
            }

            $comment = [
                'single_id' => $data['single_id'],
                'user_id' => auth()->user()->id,
                'root_id' => $rid,
                'parent_id' => $pid,
                'status' => isset($config['is_auto_status']) && $config['is_auto_status'] == 1 ? 1 : 0,
                'content' => $content,
            ];

            $result = (new ArticleComment())->store($comment);
            return $this->result($result);
        }

        return $this->result(false);

    }
}