summaryrefslogtreecommitdiffstats
path: root/template/admin/html
diff options
context:
space:
mode:
authorThomas Lange <code@nerdmind.de>2017-02-24 21:27:59 +0100
committerThomas Lange <code@nerdmind.de>2017-02-24 21:27:59 +0100
commit52b077a48c743ba4d08ac00520a0bf1ef6deef5f (patch)
treeb4205c194167e0e03e273957cdd0aab3be9fdf01 /template/admin/html
downloadblog-52b077a48c743ba4d08ac00520a0bf1ef6deef5f.tar.gz
blog-52b077a48c743ba4d08ac00520a0bf1ef6deef5f.tar.xz
blog-52b077a48c743ba4d08ac00520a0bf1ef6deef5f.zip
Initial commit.v1.0
Diffstat (limited to 'template/admin/html')
-rw-r--r--template/admin/html/403.php2
-rw-r--r--template/admin/html/404.php2
-rw-r--r--template/admin/html/auth.php30
-rw-r--r--template/admin/html/database.php26
-rw-r--r--template/admin/html/home.php34
-rw-r--r--template/admin/html/main.php52
-rw-r--r--template/admin/html/page/delete.php4
-rw-r--r--template/admin/html/page/form.php91
-rw-r--r--template/admin/html/page/index.php10
-rw-r--r--template/admin/html/page/insert.php4
-rw-r--r--template/admin/html/page/item.php16
-rw-r--r--template/admin/html/page/update.php4
-rw-r--r--template/admin/html/pagination.php45
-rw-r--r--template/admin/html/post/delete.php4
-rw-r--r--template/admin/html/post/form.php91
-rw-r--r--template/admin/html/post/index.php10
-rw-r--r--template/admin/html/post/insert.php4
-rw-r--r--template/admin/html/post/item.php16
-rw-r--r--template/admin/html/post/update.php4
-rw-r--r--template/admin/html/user/delete.php6
-rw-r--r--template/admin/html/user/form.php97
-rw-r--r--template/admin/html/user/index.php10
-rw-r--r--template/admin/html/user/insert.php4
-rw-r--r--template/admin/html/user/item.php15
-rw-r--r--template/admin/html/user/update.php4
25 files changed, 585 insertions, 0 deletions
diff --git a/template/admin/html/403.php b/template/admin/html/403.php
new file mode 100644
index 0000000..aebddb7
--- /dev/null
+++ b/template/admin/html/403.php
@@ -0,0 +1,2 @@
+<h1><i class="fa fa-exclamation-triangle"></i><?=$Language->template('403_heading_text')?></h1>
+<p><?=$Language->template('403_heading_desc')?></p>
diff --git a/template/admin/html/404.php b/template/admin/html/404.php
new file mode 100644
index 0000000..4f841b6
--- /dev/null
+++ b/template/admin/html/404.php
@@ -0,0 +1,2 @@
+<h1><i class="fa fa-exclamation-triangle"></i><?=$Language->template('404_heading_text')?></h1>
+<p><?=$Language->template('404_heading_desc')?></p> \ No newline at end of file
diff --git a/template/admin/html/auth.php b/template/admin/html/auth.php
new file mode 100644
index 0000000..a33be5d
--- /dev/null
+++ b/template/admin/html/auth.php
@@ -0,0 +1,30 @@
+<h1><?=$Language->template('authentication_text')?></h1>
+<p><?=$Language->template('authentication_desc')?></p>
+
+<?php if(isset($FORM['INFO']['LIST'])): ?>
+ <?php foreach($FORM['INFO']['LIST'] as $message): ?>
+ <div class="red"><?=$message?></div>
+ <?php endforeach; ?>
+<?php endif; ?>
+
+<form action="" method="POST">
+ <input type="hidden" name="token" value="<?=Application::getSecurityToken()?>" />
+
+ <section class="flex">
+ <section>
+ <div class="form-icon-flex"><i class="fa fa-user-secret"></i></div>
+ <div class="form-label-flex"><label for="L_USERNAME"><?=$Language->template('LABEL_USERNAME')?></label></div>
+ <div class="form-field-flex"><input id="L_USERNAME" name="username" value="<?=escapeHTML($FORM['DATA']['USERNAME'])?>" /></div>
+ </section>
+ </section>
+ <section class="flex">
+ <section>
+ <div class="form-icon-flex"><i class="fa fa-key"></i></div>
+ <div class="form-label-flex"><label for="L_PASSWORD"><?=$Language->template('LABEL_PASSWORD')?></label></div>
+ <div class="form-field-flex"><input type="password" id="L_PASSWORD" name="password" /></div>
+ </section>
+ </section>
+ <section class="flex flex-padding background">
+ <input type="submit" name="auth" value="Auth" />
+ </section>
+</form> \ No newline at end of file
diff --git a/template/admin/html/database.php b/template/admin/html/database.php
new file mode 100644
index 0000000..92c5103
--- /dev/null
+++ b/template/admin/html/database.php
@@ -0,0 +1,26 @@
+<h1><i class="fa fa-database"></i><?=$Language->template('overview_database_text')?></h1>
+<p><?=$Language->template('overview_database_desc')?></p>
+
+<?php if(isset($FORM['INFO'])): ?>
+ <?php foreach($FORM['INFO'] as $message): ?>
+ <div class="red"><?=$message?></div>
+ <?php endforeach; ?>
+<?php endif; ?>
+
+<form action="" method="POST">
+ <input type="hidden" name="token" value="<?=$FORM['TOKEN']?>" />
+
+ <section class="flex flex-padding">
+ <textarea id="content-editor" placeholder="<?=$Language->template('database_warning')?>" name="command"><?=escapeHTML($FORM['COMMAND'])?></textarea>
+ </section>
+
+<?php if(isset($FORM['RESULT'])): ?>
+ <section class="flex flex-padding background flex-direction-column">
+ <pre id="database-result"><?=escapeHTML($FORM['RESULT'])?></pre>
+ </section>
+<?php endif; ?>
+
+ <section class="flex flex-padding background">
+ <input type="submit" name="execute" value="Execute" />
+ </section>
+</form> \ No newline at end of file
diff --git a/template/admin/html/home.php b/template/admin/html/home.php
new file mode 100644
index 0000000..6701f35
--- /dev/null
+++ b/template/admin/html/home.php
@@ -0,0 +1,34 @@
+<h1><i class="fa fa-dashboard"></i><?=$Language->template('overview_dashboard_text')?></h1>
+<p><?=$Language->template('overview_dashboard_desc')?></p>
+
+<h2><i class="fa fa-newspaper-o"></i><?=$Language->template('last_post')?></h2>
+<p><strong><?=$Language->text('posts')?>:</strong> <?=$COUNT['POST']?> | <a href="<?=Application::getAdminURL('post/')?>"><?=$Language->text('post_overview')?></a> | <a href="<?=Application::getAdminURL('post/insert.php')?>"><?=$Language->text('insert')?></a></p>
+<?php if(!empty($LAST['POST'])): ?>
+ <ul class="item-list">
+ <?=$LAST['POST']?>
+ </ul>
+<?php else: ?>
+ <p><em><?=$Language->template('home_no_posts')?></em></p>
+<?php endif; ?>
+
+<h2><i class="fa fa-file-text-o"></i><?=$Language->template('last_page')?></h2>
+<p><strong><?=$Language->text('pages')?>:</strong> <?=$COUNT['PAGE']?> | <a href="<?=Application::getAdminURL('page/')?>"><?=$Language->text('page_overview')?></a> | <a href="<?=Application::getAdminURL('page/insert.php')?>"><?=$Language->text('insert')?></a></p>
+
+<?php if(!empty($LAST['PAGE'])): ?>
+ <ul class="item-list">
+ <?=$LAST['PAGE']?>
+ </ul>
+<?php else: ?>
+ <p><em><?=$Language->template('home_no_pages')?></em></p>
+<?php endif; ?>
+
+<h2><i class="fa fa-user"></i><?=$Language->template('last_user')?></h2>
+<p><strong><?=$Language->text('users')?>:</strong> <?=$COUNT['USER']?> | <a href="<?=Application::getAdminURL('user/')?>"><?=$Language->text('user_overview')?></a> | <a href="<?=Application::getAdminURL('user/insert.php')?>"><?=$Language->text('insert')?></a></p>
+
+<?php if(!empty($LAST['USER'])): ?>
+ <ul class="item-list">
+ <?=$LAST['USER']?>
+ </ul>
+<?php else: ?>
+ <p><em><?=$Language->template('home_no_users')?></em></p>
+<?php endif; ?>
diff --git a/template/admin/html/main.php b/template/admin/html/main.php
new file mode 100644
index 0000000..d2fba38
--- /dev/null
+++ b/template/admin/html/main.php
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html lang="<?=$BLOGMETA['LANG']?>">
+<head>
+ <meta charset="UTF-8" />
+ <meta name="referrer" content="origin-when-crossorigin" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <link rel="stylesheet" href="<?=Application::getTemplateURL('rsrc/main.css')?>" />
+ <script src="<?=Application::getTemplateURL('rsrc/main.js')?>"></script>
+ <title><?=escapeHTML($NAME)?> | Administration</title>
+</head>
+<body>
+ <header id="main-header">
+ <section class="header-line">
+ <div class="header-content">
+ <a href="<?=Application::getAdminURL()?>"><img id="header-logo" src="<?=Application::getTemplateURL('rsrc/icon-public-domain.svg')?>" alt="Administration" /></a>
+ <div id="header-text">Administration</div>
+ <div id="header-desc">PHP7 blogging application by <span>Nerdmind</span>!</div>
+ </div>
+ </section>
+ <section class="header-line">
+ <div class="header-content">
+ <nav id="main-navi">
+ <?php if(Application::isAuthenticated()): ?>
+ <ul>
+ <li><a href="<?=Application::getAdminURL()?>" title="<?=$Language->template('overview_dashboard_text')?>"><i class="fa fa-dashboard"></i><span>Dashboard</span></a></li>
+ <li><a href="<?=Application::getAdminURL('post/')?>" title="<?=$Language->text('post_overview')?>"><i class="fa fa-newspaper-o"></i><span><?=$Language->text('posts')?></span></a></li>
+ <li><a href="<?=Application::getAdminURL('page/')?>" title="<?=$Language->text('page_overview')?>"><i class="fa fa-file-text-o"></i><span><?=$Language->text('pages')?></span></a></li>
+ <li><a href="<?=Application::getAdminURL('user/')?>" title="<?=$Language->text('user_overview')?>"><i class="fa fa-user"></i><span><?=$Language->text('users')?></span></a></li>
+ <li><a href="<?=Application::getAdminURL('database.php')?>" title="<?=$Language->template('overview_database_text')?>"><i class="fa fa-database"></i><span><?=$Language->template('overview_database_text')?></span></a></li>
+ </ul>
+ <ul>
+ <li><a href="<?=Application::getAdminURL('auth.php?action=logout&amp;token='.Application::getSecurityToken())?>"><i class="fa fa-sign-out"></i><span>Logout</span></a></li>
+ </ul>
+ <?php else: ?>
+ <ul>
+ <li><a href="<?=Application::getAdminURL('auth.php')?>"><i class="fa fa-sign-in"></i><span>Login</span></a></li>
+ </ul>
+ <?php endif; ?>
+ </nav>
+ </div>
+ </section>
+ </header>
+ <section id="main-content">
+ <main>
+ <?=$HTML?>
+ </main>
+ <footer id="main-footer">
+ <i class="fa fa-bug"></i> Report bugs via email to <a href="mailto:Thomas Lange <code@nerdmind.de>">code@nerdmind.de</a>!
+ </footer>
+ </section>
+</body>
+</html> \ No newline at end of file
diff --git a/template/admin/html/page/delete.php b/template/admin/html/page/delete.php
new file mode 100644
index 0000000..95451d8
--- /dev/null
+++ b/template/admin/html/page/delete.php
@@ -0,0 +1,4 @@
+<h1><i class="fa fa-trash-o"></i><?=$Language->text('delete_page')?></h1>
+<p><?=$Language->template('delete_page_desc')?></p>
+
+<?=$HTML?> \ No newline at end of file
diff --git a/template/admin/html/page/form.php b/template/admin/html/page/form.php
new file mode 100644
index 0000000..cf87f82
--- /dev/null
+++ b/template/admin/html/page/form.php
@@ -0,0 +1,91 @@
+<?php if(isset($FORM['INFO'])): ?>
+ <?php foreach($FORM['INFO'] as $message): ?>
+ <div class="red"><?=$message?></div>
+ <?php endforeach; ?>
+<?php endif; ?>
+
+<form action="" method="POST">
+ <input type="hidden" name="token" value="<?=$FORM['TOKEN']?>" />
+
+<?php if($FORM['TYPE'] !== 'DELETE'): ?>
+ <section class="flex flex-responsive">
+ <section>
+ <div class="form-icon-flex"><i class="fa fa-database"></i></div>
+ <div class="form-label-flex"><label for="L_ID">ID</label></div>
+ <div class="form-field-flex"><input<?=($FORM['TYPE'] === 'UPDATE') ? ' disabled="disabled"' : '';?> id="L_ID" name="id" placeholder="[AUTO_INCREMENT]" value="<?=escapeHTML($FORM['DATA']['ID'])?>" /></div>
+ </section>
+ <section>
+ <div class="form-icon-flex"><i class="fa fa-user"></i></div>
+ <div class="form-label-flex"><label for="L_USER"><?=$Language->template('LABEL_USER')?></label></div>
+ <div class="form-field-flex">
+ <select id="L_USER" name="user">
+ <?php foreach($FORM['USER_LIST'] as $user): ?>
+ <option value="<?=$user['ID']?>"<?=($FORM['DATA']['USER'] === $user['ID']) ? ' selected' : '' ?>><?=escapeHTML($user['FULLNAME'])?> [<?=$user['USERNAME']?>]</option>
+ <?php endforeach; ?>
+ </select>
+ </div>
+ </section>
+ </section>
+ <section class="flex flex-responsive">
+ <section>
+ <div class="form-icon-flex"><i class="fa fa-file-text-o"></i></div>
+ <div class="form-label-flex"><label for="L_NAME"><?=$Language->template('LABEL_NAME')?></label></div>
+ <div class="form-field-flex"><input id="L_NAME" name="name" value="<?=escapeHTML($FORM['DATA']['NAME'])?>" /></div>
+ </section>
+ <section>
+ <div class="form-icon-flex"><i class="fa fa-link"></i></div>
+ <div class="form-label-flex"><label for="L_SLUG"><?=$Language->template('LABEL_SLUG')?></label></div>
+ <div class="form-field-flex"><input id="L_SLUG" name="slug" value="<?=escapeHTML($FORM['DATA']['SLUG'])?>" /></div>
+ </section>
+ </section>
+ <section class="flex flex-responsive">
+ <section>
+ <div class="form-icon-flex"><i class="fa fa-clock-o"></i></div>
+ <div class="form-label-flex"><label for="L_TIME_INSERT"><?=$Language->template('LABEL_INSERT')?></label></div>
+ <div class="form-field-flex"><input id="L_TIME_INSERT" name="time_insert" placeholder="[YYYY-MM-DD HH:II:SS]" value="<?=escapeHTML($FORM['DATA']['TIME_INSERT'])?>" /></div>
+ </section>
+ <section>
+ <div class="form-icon-flex"><i class="fa fa-clock-o"></i></div>
+ <div class="form-label-flex"><label for="L_TIME_UPDATE"><?=$Language->template('LABEL_UPDATE')?></label></div>
+ <div class="form-field-flex"><input id="L_TIME_UPDATE" name="time_update" placeholder="<?=escapeHTML($FORM['DATA']['TIME_UPDATE'] ? $FORM['DATA']['TIME_UPDATE'] : '[CURRENT_TIMESTAMP]')?>" value="" /></div>
+ </section>
+ </section>
+ <section class="flex flex-padding">
+ <textarea id="content-editor" name="body" placeholder="[…]"><?=escapeHTML($FORM['DATA']['BODY'])?></textarea>
+ </section>
+ <section class="flex flex-padding background">
+ <ul class="button-list emoticons">
+ <?php foreach(getEmoticons() as $emoticon => $data):?>
+ <li onmousedown="emoticonReplace('<?=$emoticon?>')" title="<?=$data[1]?>"><?=$data[0]?></li>
+ <?php endforeach; ?>
+ </ul>
+ </section>
+ <section class="flex flex-padding background">
+ <ul class="button-list markdown">
+ <li onmousedown="markdownReplace('bold');" class="fa fa-bold" title="Bold"></li>
+ <li onmousedown="markdownReplace('italic');" class="fa fa-italic" title="Italic"></li>
+ <li onmousedown="markdownReplace('header');" class="fa fa-header" title="Heading"></li>
+ <li onmousedown="markdownReplace('link');" class="fa fa-link" title="Link"></li>
+ <li onmousedown="markdownReplace('image');" class="fa fa-picture-o" title="Image"></li>
+ <li onmousedown="markdownReplace('code');" class="fa fa-code" title="Code"></li>
+ <li onmousedown="markdownReplace('quote');" class="fa fa-quote-right" title="Quote"></li>
+ <li onmousedown="markdownReplace('list_ul');" class="fa fa-list-ul" title="List [unordered]"></li>
+ <li onmousedown="markdownReplace('list_ol');" class="fa fa-list-ol" title="List [ordered]"></li>
+ </ul>
+ </section>
+<?php else: ?>
+ <section class="flex flex-padding background flex-direction-column">
+ <?=$HTML?>
+ </section>
+<?php endif; ?>
+
+ <section class="flex flex-padding background">
+ <?php if($FORM['TYPE'] === 'INSERT'): ?>
+ <input type="submit" name="insert" value="<?=$Language->text('insert')?>" />
+ <?php elseif($FORM['TYPE'] === 'UPDATE'): ?>
+ <input type="submit" name="update" value="<?=$Language->text('update')?>" />
+ <?php elseif($FORM['TYPE'] === 'DELETE'): ?>
+ <input type="submit" name="delete" value="<?=$Language->text('delete')?>" onclick="return confirm('<?=$Language->template('sure')?>')" />
+ <?php endif; ?>
+ </section>
+</form> \ No newline at end of file
diff --git a/template/admin/html/page/index.php b/template/admin/html/page/index.php
new file mode 100644
index 0000000..4d090ca
--- /dev/null
+++ b/template/admin/html/page/index.php
@@ -0,0 +1,10 @@
+<h1><i class="fa fa-file-text-o"></i><?=$Language->text('page_overview')?><a class="brackets" href="<?=Application::getAdminURL("page/insert.php")?>"><?=$Language->text('insert')?></a></h1>
+<p><?=$Language->template('overview_page_desc')?></p>
+
+<ul class="item-list">
+ <?php foreach($LIST['PAGES'] as $page): ?>
+ <?php echo $page; ?>
+ <?php endforeach; ?>
+</ul>
+
+<?=$PAGINATION['HTML']?> \ No newline at end of file
diff --git a/template/admin/html/page/insert.php b/template/admin/html/page/insert.php
new file mode 100644
index 0000000..d45d79c
--- /dev/null
+++ b/template/admin/html/page/insert.php
@@ -0,0 +1,4 @@
+<h1><i class="fa fa-file-text-o"></i><?=$Language->text('insert_page')?></h1>
+<p><?=$Language->template('insert_page_desc')?></p>
+
+<?=$HTML?> \ No newline at end of file
diff --git a/template/admin/html/page/item.php b/template/admin/html/page/item.php
new file mode 100644
index 0000000..e1e67b7
--- /dev/null
+++ b/template/admin/html/page/item.php
@@ -0,0 +1,16 @@
+<li class="content">
+ <header>
+ <h2><i class="fa fa-file-text-o"></i><?=escapeHTML($PAGE['ATTR']['NAME'])?><span>#<?=$PAGE['ID']?></span></h2>
+ <div><a class="brackets" href="<?=Application::getAdminURL("user/update.php?id={$USER['ID']}")?>"><?=escapeHTML($USER['ATTR']['FULLNAME'])?></a></div>
+ </header>
+ <article>
+ <p><?=excerpt($PAGE['BODY']['HTML'])?></p>
+ </article>
+ <footer>
+ <ul>
+ <li><a href="<?=$PAGE['URL']?>" target="_blank" title="<?=$Language->text('select_page')?>"><i class="fa fa-external-link"></i></a></li>
+ <li><a href="<?=Application::getAdminURL("page/update.php?id={$PAGE['ID']}")?>" title="<?=$Language->text('update_page')?>"><i class="fa fa-pencil-square-o"></i></a></li>
+ <li><a href="<?=Application::getAdminURL("page/delete.php?id={$PAGE['ID']}")?>" title="<?=$Language->text('delete_page')?>"><i class="fa fa-trash-o"></i></a></li>
+ </ul>
+ </footer>
+</li> \ No newline at end of file
diff --git a/template/admin/html/page/update.php b/template/admin/html/page/update.php
new file mode 100644
index 0000000..d15d784
--- /dev/null
+++ b/template/admin/html/page/update.php
@@ -0,0 +1,4 @@
+<h1><i class="fa fa-file-text-o"></i><?=$Language->text('update_page')?></h1>
+<p><?=$Language->template('update_page_desc')?></p>
+
+<?=$HTML?> \ No newline at end of file
diff --git a/template/admin/html/pagination.php b/template/admin/html/pagination.php
new file mode 100644
index 0000000..31b5378
--- /dev/null
+++ b/template/admin/html/pagination.php
@@ -0,0 +1,45 @@
+<section id="site-navi">
+ <?php if($THIS > 1): ?>
+ <div><a href="<?=sprintf($HREF, $THIS-1)?>"><i class="fa fa-arrow-left"></i></a></div>
+ <?php else: ?>
+ <div><a class="disabled"><i class="fa fa-arrow-left"></i></a></div>
+ <?php endif; ?>
+
+ <section>
+ <div>
+ <ol>
+ <?php for($currentItem = 1; $currentItem <= $LAST; ++$currentItem): ?>
+ <?php
+ $href = sprintf($HREF, $currentItem);
+ $class = NULL;
+ $currentItemHTML = $currentItem;
+ if($currentItem === $THIS) {
+ $class = ' class="active"';
+ }
+
+ echo '<li'.$class.'><a href="'.$href.'">'.$currentItemHTML.'</a></li>';
+ ?>
+
+ <?php endfor; ?>
+ </ol>
+ </div>
+ </section>
+
+ <?php if($THIS < $LAST): ?>
+ <div><a href="<?=sprintf($HREF, $THIS+1)?>"><i class="fa fa-arrow-right"></i></a></div>
+ <?php else: ?>
+ <div><a class="disabled"><i class="fa fa-arrow-right"></i></a></div>
+ <?php endif; ?>
+</section>
+
+<script>
+ var prevPageURL = <?php echo json_encode($THIS > 1 ? sprintf($HREF, $THIS-1) : FALSE); ?>;
+ var nextPageURL = <?php echo json_encode($THIS < $LAST ? sprintf($HREF, $THIS+1) : FALSE); ?>;
+
+ document.addEventListener('keyup', function(event) {
+ if(!event.ctrlKey && !event.shiftKey) {
+ (event.keyCode === 37 && prevPageURL) && (window.location.href = prevPageURL);
+ (event.keyCode === 39 && nextPageURL) && (window.location.href = nextPageURL);
+ }
+ }, false)
+</script> \ No newline at end of file
diff --git a/template/admin/html/post/delete.php b/template/admin/html/post/delete.php
new file mode 100644
index 0000000..9be4566
--- /dev/null
+++ b/template/admin/html/post/delete.php
@@ -0,0 +1,4 @@
+<h1><i class="fa fa-trash-o"></i><?=$Language->text('delete_post')?></h1>
+<p><?=$Language->template('delete_post_desc')?></p>
+
+<?=$HTML?> \ No newline at end of file
diff --git a/template/admin/html/post/form.php b/template/admin/html/post/form.php
new file mode 100644
index 0000000..cba4aa8
--- /dev/null
+++ b/template/admin/html/post/form.php
@@ -0,0 +1,91 @@
+<?php if(isset($FORM['INFO'])): ?>
+ <?php foreach($FORM['INFO'] as $message): ?>
+ <div class="red"><?=$message?></div>
+ <?php endforeach; ?>
+<?php endif; ?>
+
+<form action="" method="POST">
+ <input type="hidden" name="token" value="<?=$FORM['TOKEN']?>" />
+
+<?php if($FORM['TYPE'] !== 'DELETE'): ?>
+ <section class="flex flex-responsive">
+ <section>
+ <div class="form-icon-flex"><i class="fa fa-database"></i></div>
+ <div class="form-label-flex"><label for="L_ID">ID</label></div>
+ <div class="form-field-flex"><input<?=($FORM['TYPE'] === 'UPDATE') ? ' disabled="disabled"' : '';?> id="L_ID" name="id" placeholder="[AUTO_INCREMENT]" value="<?=escapeHTML($FORM['DATA']['ID'])?>" /></div>
+ </section>
+ <section>
+ <div class="form-icon-flex"><i class="fa fa-user"></i></div>
+ <div class="form-label-flex"><label for="L_USER"><?=$Language->template('LABEL_USER')?></label></div>
+ <div class="form-field-flex">
+ <select id="L_USER" name="user">
+ <?php foreach($FORM['USER_LIST'] as $user): ?>
+ <option value="<?=$user['ID']?>"<?=($FORM['DATA']['USER'] === $user['ID']) ? ' selected' : '' ?>><?=escapeHTML($user['FULLNAME'])?> [<?=$user['USERNAME']?>]</option>
+ <?php endforeach; ?>
+ </select>
+ </div>
+ </section>
+ </section>
+ <section class="flex flex-responsive">
+ <section>
+ <div class="form-icon-flex"><i class="fa fa-newspaper-o"></i></div>
+ <div class="form-label-flex"><label for="L_NAME"><?=$Language->template('LABEL_NAME')?></label></div>
+ <div class="form-field-flex"><input id="L_NAME" name="name" value="<?=escapeHTML($FORM['DATA']['NAME'])?>" /></div>
+ </section>
+ <section>
+ <div class="form-icon-flex"><i class="fa fa-link"></i></div>
+ <div class="form-label-flex"><label for="L_SLUG"><?=$Language->template('LABEL_SLUG')?></label></div>
+ <div class="form-field-flex"><input id="L_SLUG" name="slug" value="<?=escapeHTML($FORM['DATA']['SLUG'])?>" /></div>
+ </section>
+ </section>
+ <section class="flex flex-responsive">
+ <section>
+ <div class="form-icon-flex"><i class="fa fa-clock-o"></i></div>
+ <div class="form-label-flex"><label for="L_TIME_INSERT"><?=$Language->template('LABEL_INSERT')?></label></div>
+ <div class="form-field-flex"><input id="L_TIME_INSERT" name="time_insert" placeholder="[YYYY-MM-DD HH:II:SS]" value="<?=escapeHTML($FORM['DATA']['TIME_INSERT'])?>" /></div>
+ </section>
+ <section>
+ <div class="form-icon-flex"><i class="fa fa-clock-o"></i></div>
+ <div class="form-label-flex"><label for="L_TIME_UPDATE"><?=$Language->template('LABEL_UPDATE')?></label></div>
+ <div class="form-field-flex"><input id="L_TIME_UPDATE" name="time_update" placeholder="<?=escapeHTML($FORM['DATA']['TIME_UPDATE'] ? $FORM['DATA']['TIME_UPDATE'] : '[CURRENT_TIMESTAMP]')?>" value="" /></div>
+ </section>
+ </section>
+ <section class="flex flex-padding">
+ <textarea id="content-editor" name="body" placeholder="[…]"><?=escapeHTML($FORM['DATA']['BODY'])?></textarea>
+ </section>
+ <section class="flex flex-padding background flex-emoticons">
+ <ul class="button-list emoticons">
+ <?php foreach(getEmoticons() as $emoticon => $data):?>
+ <li onmousedown="emoticonReplace('<?=$emoticon?>')" title="<?=$data[1]?>"><?=$data[0]?></li>
+ <?php endforeach; ?>
+ </ul>
+ </section>
+ <section class="flex flex-padding background">
+ <ul class="button-list markdown">
+ <li onmousedown="markdownReplace('bold');" class="fa fa-bold" title="Bold"></li>
+ <li onmousedown="markdownReplace('italic');" class="fa fa-italic" title="Italic"></li>
+ <li onmousedown="markdownReplace('header');" class="fa fa-header" title="Heading"></li>
+ <li onmousedown="markdownReplace('link');" class="fa fa-link" title="Link"></li>
+ <li onmousedown="markdownReplace('image');" class="fa fa-picture-o" title="Image"></li>
+ <li onmousedown="markdownReplace('code');" class="fa fa-code" title="Code"></li>
+ <li onmousedown="markdownReplace('quote');" class="fa fa-quote-right" title="Quote"></li>
+ <li onmousedown="markdownReplace('list_ul');" class="fa fa-list-ul" title="List [unordered]"></li>
+ <li onmousedown="markdownReplace('list_ol');" class="fa fa-list-ol" title="List [ordered]"></li>
+ </ul>
+ </section>
+<?php else: ?>
+ <section class="flex flex-padding background flex-direction-column">
+ <?=$HTML?>
+ </section>
+<?php endif; ?>
+
+ <section class="flex flex-padding background">
+ <?php if($FORM['TYPE'] === 'INSERT'): ?>
+ <input type="submit" name="insert" value="<?=$Language->text('insert')?>" />
+ <?php elseif($FORM['TYPE'] === 'UPDATE'): ?>
+ <input type="submit" name="update" value="<?=$Language->text('update')?>" />
+ <?php elseif($FORM['TYPE'] === 'DELETE'): ?>
+ <input type="submit" name="delete" value="<?=$Language->text('delete')?>" onclick="return confirm('<?=$Language->template('sure')?>')" />
+ <?php endif; ?>
+ </section>
+</form> \ No newline at end of file
diff --git a/template/admin/html/post/index.php b/template/admin/html/post/index.php
new file mode 100644
index 0000000..481cafe
--- /dev/null
+++ b/template/admin/html/post/index.php
@@ -0,0 +1,10 @@
+<h1><i class="fa fa-newspaper-o"></i><?=$Language->text('post_overview')?><a class="brackets" href="<?=Application::getAdminURL("post/insert.php")?>"><?=$Language->text('insert')?></a></h1>
+<p><?=$Language->template('overview_post_desc')?></p>
+
+<ul class="item-list">
+ <?php foreach($LIST['POSTS'] as $post): ?>
+ <?php echo $post; ?>
+ <?php endforeach; ?>
+</ul>
+
+<?=$PAGINATION['HTML']?> \ No newline at end of file
diff --git a/template/admin/html/post/insert.php b/template/admin/html/post/insert.php
new file mode 100644
index 0000000..df4b26d
--- /dev/null
+++ b/template/admin/html/post/insert.php
@@ -0,0 +1,4 @@
+<h1><i class="fa fa-newspaper-o"></i><?=$Language->text('insert_post')?></h1>
+<p><?=$Language->template('insert_post_desc')?></p>
+
+<?=$HTML?> \ No newline at end of file
diff --git a/template/admin/html/post/item.php b/template/admin/html/post/item.php
new file mode 100644
index 0000000..1b942bd
--- /dev/null
+++ b/template/admin/html/post/item.php
@@ -0,0 +1,16 @@
+<li class="content">
+ <header>
+ <h2><i class="fa fa-newspaper-o"></i><?=escapeHTML($POST['ATTR']['NAME'])?><span>#<?=$POST['ID']?></span></h2>
+ <div><a class="brackets" href="<?=Application::getAdminURL("user/update.php?id={$USER['ID']}")?>"><?=escapeHTML($USER['ATTR']['FULLNAME'])?></a></div>
+ </header>
+ <article>
+ <p><?=excerpt($POST['BODY']['HTML'])?></p>
+ </article>
+ <footer>
+ <ul>
+ <li><a href="<?=$POST['URL']?>" target="_blank" title="<?=$Language->text('select_post')?>"><i class="fa fa-external-link"></i></a></li>
+ <li><a href="<?=Application::getAdminURL("post/update.php?id={$POST['ID']}")?>" title="<?=$Language->text('update_post')?>"><i class="fa fa-pencil-square-o"></i></a></li>
+ <li><a href="<?=Application::getAdminURL("post/delete.php?id={$POST['ID']}")?>" title="<?=$Language->text('delete_post')?>"><i class="fa fa-trash-o"></i></a></li>
+ </ul>
+ </footer>
+</li> \ No newline at end of file
diff --git a/template/admin/html/post/update.php b/template/admin/html/post/update.php
new file mode 100644
index 0000000..baa119e
--- /dev/null
+++ b/template/admin/html/post/update.php
@@ -0,0 +1,4 @@
+<h1><i class="fa fa-newspaper-o"></i><?=$Language->text('update_post')?></h1>
+<p><?=$Language->template('update_post_desc')?></p>
+
+<?=$HTML?> \ No newline at end of file
diff --git a/template/admin/html/user/delete.php b/template/admin/html/user/delete.php
new file mode 100644
index 0000000..dac4185
--- /dev/null
+++ b/template/admin/html/user/delete.php
@@ -0,0 +1,6 @@
+<h1><i class="fa fa-trash-o"></i><?=$Language->text('delete_user')?></h1>
+<p><?=$Language->template('delete_user_desc')?></p>
+
+<p class="red"><?=$Language->template('delete_user_warning')?></p>
+
+<?=$HTML?> \ No newline at end of file
diff --git a/template/admin/html/user/form.php b/template/admin/html/user/form.php
new file mode 100644
index 0000000..c284187
--- /dev/null
+++ b/template/admin/html/user/form.php
@@ -0,0 +1,97 @@
+<?php if(isset($FORM['INFO'])): ?>
+ <?php foreach($FORM['INFO'] as $message): ?>
+ <div class="red"><?=$message?></div>
+ <?php endforeach; ?>
+<?php endif; ?>
+
+<form action="" method="POST">
+ <input type="hidden" name="token" value="<?=$FORM['TOKEN']?>" />
+
+<?php if($FORM['TYPE'] !== 'DELETE'): ?>
+ <section class="flex flex-responsive">
+ <section>
+ <div class="form-icon-flex"><i class="fa fa-database"></i></div>
+ <div class="form-label-flex"><label for="L_ID">ID</label></div>
+ <div class="form-field-flex"><input<?=($FORM['TYPE'] === 'UPDATE') ? ' disabled="disabled"' : '';?> id="L_ID" name="id" placeholder="[AUTO_INCREMENT]" value="<?=escapeHTML($FORM['DATA']['ID'])?>" /></div>
+ </section>
+ <section>
+ <div class="form-icon-flex"><i class="fa fa-key"></i></div>
+ <div class="form-label-flex"><label for="L_PASSWORD"><?=$Language->template('LABEL_PASSWORD')?></label></div>
+ <div class="form-field-flex"><input id="L_PASSWORD" name="password" placeholder="[NO CHANGE]" value="<?=escapeHTML($FORM['DATA']['PASSWORD'])?>" type="password" /></div>
+ </section>
+ </section>
+ <section class="flex flex-responsive">
+ <section>
+ <div class="form-icon-flex"><i class="fa fa-user"></i></div>
+ <div class="form-label-flex"><label for="L_FULLNAME"><?=$Language->template('LABEL_FULLNAME')?></label></div>
+ <div class="form-field-flex"><input id="L_FULLNAME" name="fullname" value="<?=escapeHTML($FORM['DATA']['FULLNAME'])?>" /></div>
+ </section>
+ <section>
+ <div class="form-icon-flex"><i class="fa fa-envelope-o"></i></div>
+ <div class="form-label-flex"><label for="L_MAILADDR"><?=$Language->template('LABEL_MAILADDR')?></label></div>
+ <div class="form-field-flex"><input id="L_MAILADDR" name="mailaddr" value="<?=escapeHTML($FORM['DATA']['MAILADDR'])?>" /></div>
+ </section>
+ </section>
+ <section class="flex flex-responsive">
+ <section>
+ <div class="form-icon-flex"><i class="fa fa-user-secret"></i></div>
+ <div class="form-label-flex"><label for="L_USERNAME"><?=$Language->template('LABEL_USERNAME')?></label></div>
+ <div class="form-field-flex"><input id="L_USERNAME" name="username" value="<?=escapeHTML($FORM['DATA']['USERNAME'])?>" /></div>
+ </section>
+ <section>
+ <div class="form-icon-flex"><i class="fa fa-link"></i></div>
+ <div class="form-label-flex"><label for="L_SLUG"><?=$Language->template('LABEL_SLUG')?></label></div>
+ <div class="form-field-flex"><input id="L_SLUG" name="slug" value="<?=escapeHTML($FORM['DATA']['SLUG'])?>" /></div>
+ </section>
+ </section>
+ <section class="flex flex-responsive">
+ <section>
+ <div class="form-icon-flex"><i class="fa fa-clock-o"></i></div>
+ <div class="form-label-flex"><label for="L_TIME_INSERT"><?=$Language->template('LABEL_INSERT')?></label></div>
+ <div class="form-field-flex"><input id="L_TIME_INSERT" name="time_insert" placeholder="[YYYY-MM-DD HH:II:SS]" value="<?=escapeHTML($FORM['DATA']['TIME_INSERT'])?>" /></div>
+ </section>
+ <section>
+ <div class="form-icon-flex"><i class="fa fa-clock-o"></i></div>
+ <div class="form-label-flex"><label for="L_TIME_UPDATE"><?=$Language->template('LABEL_UPDATE')?></label></div>
+ <div class="form-field-flex"><input id="L_TIME_UPDATE" name="time_update" placeholder="<?=escapeHTML($FORM['DATA']['TIME_UPDATE'] ? $FORM['DATA']['TIME_UPDATE'] : '[CURRENT_TIMESTAMP]')?>" value="" /></div>
+ </section>
+ </section>
+ <section class="flex flex-padding">
+ <textarea id="content-editor" name="body" placeholder="[…]"><?=escapeHTML($FORM['DATA']['BODY'])?></textarea>
+ </section>
+ <section class="flex flex-padding background">
+ <ul class="button-list emoticons">
+ <?php foreach(getEmoticons() as $emoticon => $data):?>
+ <li onmousedown="emoticonReplace('<?=$emoticon?>')" title="<?=$data[1]?>"><?=$data[0]?></li>
+ <?php endforeach; ?>
+ </ul>
+ </section>
+ <section class="flex flex-padding background">
+ <ul class="button-list markdown">
+ <li onmousedown="markdownReplace('bold');" class="fa fa-bold" title="Bold"></li>
+ <li onmousedown="markdownReplace('italic');" class="fa fa-italic" title="Italic"></li>
+ <li onmousedown="markdownReplace('header');" class="fa fa-header" title="Heading"></li>
+ <li onmousedown="markdownReplace('link');" class="fa fa-link" title="Link"></li>
+ <li onmousedown="markdownReplace('image');" class="fa fa-picture-o" title="Image"></li>
+ <li onmousedown="markdownReplace('code');" class="fa fa-code" title="Code"></li>
+ <li onmousedown="markdownReplace('quote');" class="fa fa-quote-right" title="Quote"></li>
+ <li onmousedown="markdownReplace('list_ul');" class="fa fa-list-ul" title="List [unordered]"></li>
+ <li onmousedown="markdownReplace('list_ol');" class="fa fa-list-ol" title="List [ordered]"></li>
+ </ul>
+ </section>
+<?php else: ?>
+ <section class="flex flex-padding background flex-direction-column">
+ <?=$HTML?>
+ </section>
+<?php endif; ?>
+
+ <section class="flex flex-padding background">
+ <?php if($FORM['TYPE'] === 'INSERT'): ?>
+ <input type="submit" name="insert" value="<?=$Language->text('insert')?>" />
+ <?php elseif($FORM['TYPE'] === 'UPDATE'): ?>
+ <input type="submit" name="update" value="<?=$Language->text('update')?>" />
+ <?php elseif($FORM['TYPE'] === 'DELETE'): ?>
+ <input type="submit" name="delete" value="<?=$Language->text('delete')?>" onclick="return confirm('<?=$Language->template('sure')?>')" />
+ <?php endif; ?>
+ </section>
+</form> \ No newline at end of file
diff --git a/template/admin/html/user/index.php b/template/admin/html/user/index.php
new file mode 100644
index 0000000..6b23536
--- /dev/null
+++ b/template/admin/html/user/index.php
@@ -0,0 +1,10 @@
+<h1><i class="fa fa-user"></i><?=$Language->text('user_overview')?><a class="brackets" href="<?=Application::getAdminURL("user/insert.php")?>"><?=$Language->text('insert')?></a></h1>
+<p><?=$Language->template('overview_user_desc')?></p>
+
+<ul class="item-list">
+ <?php foreach($LIST['USERS'] as $user): ?>
+ <?php echo $user; ?>
+ <?php endforeach; ?>
+</ul>
+
+<?=$PAGINATION['HTML']?> \ No newline at end of file
diff --git a/template/admin/html/user/insert.php b/template/admin/html/user/insert.php
new file mode 100644
index 0000000..54598ee
--- /dev/null
+++ b/template/admin/html/user/insert.php
@@ -0,0 +1,4 @@
+<h1><i class="fa fa-user"></i><?=$Language->text('insert_user')?></h1>
+<p><?=$Language->template('insert_user_desc')?></p>
+
+<?=$HTML?> \ No newline at end of file
diff --git a/template/admin/html/user/item.php b/template/admin/html/user/item.php
new file mode 100644
index 0000000..df8e5b1
--- /dev/null
+++ b/template/admin/html/user/item.php
@@ -0,0 +1,15 @@
+<li class="content">
+ <header>
+ <h2><i class="fa fa-user"></i><?=escapeHTML($USER['ATTR']['FULLNAME'])?><span>#<?=$USER['ID']?></span></h2>
+ </header>
+ <article>
+ <p><?=excerpt($USER['BODY']['HTML'])?></p>
+ </article>
+ <footer>
+ <ul>
+ <li><a href="<?=$USER['URL']?>" target="_blank" title="<?=$Language->text('select_user')?>"><i class="fa fa-external-link"></i></a></li>
+ <li><a href="<?=Application::getAdminURL("user/update.php?id={$USER['ID']}")?>" title="<?=$Language->text('update_user')?>"><i class="fa fa-pencil-square-o"></i></a></li>
+ <li><a href="<?=Application::getAdminURL("user/delete.php?id={$USER['ID']}")?>" title="<?=$Language->text('delete_user')?>"><i class="fa fa-trash-o"></i></a></li>
+ </ul>
+ </footer>
+</li> \ No newline at end of file
diff --git a/template/admin/html/user/update.php b/template/admin/html/user/update.php
new file mode 100644
index 0000000..6f7ddae
--- /dev/null
+++ b/template/admin/html/user/update.php
@@ -0,0 +1,4 @@
+<h1><i class="fa fa-user"></i><?=$Language->text('update_user')?></h1>
+<p><?=$Language->template('update_user_desc')?></p>
+
+<?=$HTML?> \ No newline at end of file