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(); ?>
+
+
+
+
+
+
+ Name |
+ Url |
+ |
+
+
+
+
+
+ |
+ / |
+ 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
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 @@
Settings
+
+ View Site
+
+
+ Logout
+
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(); ?>
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 @@