예제 #1
0
    /**
     * SlimCRUD constructor.
     * @param string $groupName
     * @param string $apiGroupName
     * @param Slim $slim
     */
    public function __construct($groupName = "crud", $apiGroupName = "api", $slim = null)
    {
        session_start();
        parent::__construct();
        $this->groupName = $groupName;
        $this->apiGroupName = $apiGroupName;
        if ($slim == null) {
            $this->slim = new Slim();
        } else {
            $this->slim = $slim;
        }
        // Upload function
        $this->slim->post("/louislam-crud/upload/:type", function ($type) {
            $result = $this->upload();
            if (isset($_GET["fullpath"]) && $_GET["fullpath"] == "no") {
            } else {
                $result["url"] = \LouisLam\Util::fullURL($result["url"]);
            }
            if ($type == "js") {
                $url = $result["url"];
                if ($result["uploaded"]) {
                    echo <<<HTML
<script type="text/javascript">
    window.parent.CKEDITOR.tools.callFunction("0", "{$url}", "");
</script>
HTML;
                } else {
                    $msg = $result["msg"];
                    echo <<<HTML
<script type="text/javascript">
    alert("{$msg}");
</script>
HTML;
                }
            } else {
                $this->enableJSONResponse();
                echo json_encode($result);
            }
        });
        // Upload Image function
        $this->slim->post("/louislam-crud/upload-image/:type", function ($type) {
            $result = $this->uploadImage("upload", "upload/", 1000);
            if (isset($_GET["fullpath"]) && $_GET["fullpath"] == "no") {
            } else {
                $result["url"] = \LouisLam\Util::fullURL($result["url"]);
            }
            if ($type == "js") {
                $url = $result["url"];
                if ($result["uploaded"]) {
                    echo <<<HTML
<script type="text/javascript">
    window.parent.CKEDITOR.tools.callFunction("0", "{$url}", "");
</script>
HTML;
                } else {
                    $msg = $result["msg"];
                    echo <<<HTML
<script type="text/javascript">
    alert("{$msg}");
</script>
HTML;
                }
            } else {
                $this->enableJSONResponse();
                echo json_encode($result);
            }
        });
        $this->slim->get("/auth/login", function () {
            echo $this->getTemplateEngine()->render("adminlte::login");
        });
        $app = $this->slim;
        $this->slim->post("/auth/login", function () use($app) {
            $result = Auth::login($_POST["username"], $_POST["password"]);
            if ($result) {
                if (isset($_SESSION["redirect"])) {
                    $app->redirect(Util::fullURL($_SESSION["redirect"]));
                } else {
                    $app->redirect($this->getFirstPageURL());
                }
            } else {
                $_SESSION['msg'] = "Username or password invalid";
                $app->redirect(Util::fullURL("auth/login"));
            }
        });
        $this->slim->get("/auth/logout", function () use($app) {
            Auth::logout();
            $app->redirect(Util::fullURL("auth/login"));
        });
    }