From 2acd9776c8c7fa6e9350bb46c97b657f20b9de90 Mon Sep 17 00:00:00 2001 From: Awilum Date: Sun, 22 Apr 2018 01:13:21 +0300 Subject: [PATCH] Admin: General updates, pages list, page editing, adding new page --- site/plugins/admin/admin.php | 51 ++++++++++++++++++- site/plugins/admin/package-lock.json | 33 ++++++++++++ site/plugins/admin/package.json | 4 ++ site/plugins/admin/views/pages.php | 3 -- site/plugins/admin/views/pages/add.php | 24 +++++++++ site/plugins/admin/views/pages/editor.php | 10 ++++ site/plugins/admin/views/pages/index.php | 26 ++++++++++ site/plugins/admin/views/partials/footer.php | 4 +- site/plugins/admin/views/partials/head.php | 20 +++++--- .../admin/views/partials/navigation.php | 6 +++ site/plugins/admin/views/partials/tail.php | 23 ++++++++- site/plugins/admin/views/settings.php | 4 +- 12 files changed, 194 insertions(+), 14 deletions(-) delete mode 100644 site/plugins/admin/views/pages.php create mode 100644 site/plugins/admin/views/pages/add.php create mode 100644 site/plugins/admin/views/pages/editor.php create mode 100644 site/plugins/admin/views/pages/index.php diff --git a/site/plugins/admin/admin.php b/site/plugins/admin/admin.php index 7805b703..2cac34e6 100755 --- a/site/plugins/admin/admin.php +++ b/site/plugins/admin/admin.php @@ -96,7 +96,56 @@ class Admin { protected static function getPagesManagerPage() { - include 'views/pages.php'; + switch (Http::getUriSegment(2)) { + case 'delete': + + break; + case 'add': + + $create_page = Http::post('create_page'); + + if (isset($create_page)) { + if (Filesystem::setFileContent(PAGES_PATH . '/' . Http::post('slug') . '/index.md', + '---'."\n". + 'title: '.Http::post('title')."\n". + '---'."\n")) { + + Http::redirect('admin/views/pages/'); + } + } + + View::factory('admin/views/pages/add') + ->display(); + break; + case 'edit': + + $save_page = Http::post('save_page'); + + if (isset($save_page)) { + Filesystem::setFileContent(PAGES_PATH . '/' . Http::post('slug') . '/index.md', + '---'."\n". + Http::post('frontmatter'). + '---'."\n". + Http::post('editor')); + } + + $page = trim(Filesystem::getFileContent(PAGES_PATH . '/' . Http::get('page') . '/index.md')); + $page = explode('---', $page, 3); + + View::factory('admin/views/pages/editor') + ->assign('page_slug', Http::get('page')) + ->assign('page_frontmatter', $page[1]) + ->assign('page_content', $page[2]) + ->display(); + break; + default: + $pages_list = Pages::getPages('', false , 'title'); + + View::factory('admin/views/pages/index') + ->assign('pages_list', $pages_list) + ->display(); + break; + } } protected static function getSettingsPage() diff --git a/site/plugins/admin/package-lock.json b/site/plugins/admin/package-lock.json index 9ffb9780..5734b96b 100644 --- a/site/plugins/admin/package-lock.json +++ b/site/plugins/admin/package-lock.json @@ -10,11 +10,44 @@ "integrity": "sha512-gulJE5dGFo6Q61V/whS6VM4WIyrlydXfCgkE+Gxe5hjrJ8rXLLZlALq7zq2RPhOc45PSwQpJkrTnc2KgD6cvmA==", "dev": true }, + "codemirror": { + "version": "5.36.0", + "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.36.0.tgz", + "integrity": "sha512-XGR+ic+9DSMSE4mD2XLinGrMcIO4xbHpNrPzAFpCW5bjy+Em8fUOTCpagVP/+LLtTQsAROqrq1f55KyRxDcokA==" + }, + "codemirror-spell-checker": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/codemirror-spell-checker/-/codemirror-spell-checker-1.1.2.tgz", + "integrity": "sha1-HGYPkIlIPMtRE7m6nKGcP0mTNx4=", + "requires": { + "typo-js": "1.0.3" + } + }, "jquery": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz", "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==", "dev": true + }, + "marked": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.19.tgz", + "integrity": "sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg==" + }, + "simplemde": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/simplemde/-/simplemde-1.11.2.tgz", + "integrity": "sha1-ojo12XjSxA7wfewAjJLwcNjggOM=", + "requires": { + "codemirror": "5.36.0", + "codemirror-spell-checker": "1.1.2", + "marked": "0.3.19" + } + }, + "typo-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typo-js/-/typo-js-1.0.3.tgz", + "integrity": "sha1-VNjrx5SfGngQkItgAsaEFSbJnVo=" } } } diff --git a/site/plugins/admin/package.json b/site/plugins/admin/package.json index 3ed8d62b..e6af6bdd 100644 --- a/site/plugins/admin/package.json +++ b/site/plugins/admin/package.json @@ -4,5 +4,9 @@ "devDependencies": { "bootstrap": "^4.0.0", "jquery": "^3.3.1" + }, + "dependencies": { + "codemirror": "^5.36.0", + "simplemde": "^1.11.2" } } diff --git a/site/plugins/admin/views/pages.php b/site/plugins/admin/views/pages.php deleted file mode 100644 index 0ea7408d..00000000 --- a/site/plugins/admin/views/pages.php +++ /dev/null @@ -1,3 +0,0 @@ -display(); ?> -pages -display(); ?> diff --git a/site/plugins/admin/views/pages/add.php b/site/plugins/admin/views/pages/add.php new file mode 100644 index 00000000..4aeeb85d --- /dev/null +++ b/site/plugins/admin/views/pages/add.php @@ -0,0 +1,24 @@ +display(); ?> + +

+ Create New Page +

+ +
+
+
+
+ + +
+
+ + +
+
+
+
+ +
+ +display(); ?> diff --git a/site/plugins/admin/views/pages/editor.php b/site/plugins/admin/views/pages/editor.php new file mode 100644 index 00000000..085ae1d7 --- /dev/null +++ b/site/plugins/admin/views/pages/editor.php @@ -0,0 +1,10 @@ +display(); ?> + +
+ + + + +
+ +display(); ?> diff --git a/site/plugins/admin/views/pages/index.php b/site/plugins/admin/views/pages/index.php new file mode 100644 index 00000000..4b71f726 --- /dev/null +++ b/site/plugins/admin/views/pages/index.php @@ -0,0 +1,26 @@ +display(); ?> + +

+ Pages + Create New Page +

+ + + + + + + + + + + + + + + + + + +
NameUrl
/Delete
+display(); ?> diff --git a/site/plugins/admin/views/partials/footer.php b/site/plugins/admin/views/partials/footer.php index e8f77de5..298647f5 100755 --- a/site/plugins/admin/views/partials/footer.php +++ b/site/plugins/admin/views/partials/footer.php @@ -1,8 +1,8 @@ display(); ?> -
- Powered by Flextype +
+ Official Support Forum / Documentation / © 2018 Flextype – Version 0.3.0
diff --git a/site/plugins/admin/views/partials/head.php b/site/plugins/admin/views/partials/head.php index ad7c4f63..d0a6e550 100755 --- a/site/plugins/admin/views/partials/head.php +++ b/site/plugins/admin/views/partials/head.php @@ -3,21 +3,29 @@ - + - + - <?php echo $page['title']; ?> | <?php echo Flextype\Config::get('site.title'); ?> + FLEXTYPE + + + - + - - + + display(); ?> diff --git a/site/plugins/admin/views/partials/navigation.php b/site/plugins/admin/views/partials/navigation.php index ffbe5d47..22924a19 100755 --- a/site/plugins/admin/views/partials/navigation.php +++ b/site/plugins/admin/views/partials/navigation.php @@ -12,6 +12,12 @@ + +
diff --git a/site/plugins/admin/views/partials/tail.php b/site/plugins/admin/views/partials/tail.php index 508f522b..e3e18ced 100755 --- a/site/plugins/admin/views/partials/tail.php +++ b/site/plugins/admin/views/partials/tail.php @@ -1,3 +1,24 @@ - + + + + + + diff --git a/site/plugins/admin/views/settings.php b/site/plugins/admin/views/settings.php index 163d304a..4da3f073 100644 --- a/site/plugins/admin/views/settings.php +++ b/site/plugins/admin/views/settings.php @@ -1 +1,3 @@ -Settings +display(); ?> +settings +display(); ?>