diff --git a/site/plugins/admin/classes/DashboardManager.php b/site/plugins/admin/classes/DashboardManager.php
deleted file mode 100644
index b18083fb..00000000
--- a/site/plugins/admin/classes/DashboardManager.php
+++ /dev/null
@@ -1,13 +0,0 @@
-get('/admin/entries', function (Request $request, Response $response, array $args) {
- return 'asd';
-})->setName('entries');
-
-
-class EntriesManager
-{
-
- public static function getEntriesManager() : void
- {
- Registry::set('sidebar_menu_item', 'entries');
-
- $query = EntriesManager::getEntriesQuery();
-
- switch (Http::getUriSegment(2)) {
- case 'add':
- EntriesManager::addEntry();
- break;
- case 'delete':
- EntriesManager::deleteEntry();
- break;
- case 'duplicate':
- EntriesManager::duplicateEntry();
- break;
- case 'rename':
- EntriesManager::renameEntry();
- break;
- case 'type':
- EntriesManager::typeEntry();
- break;
- case 'move':
- EntriesManager::moveEntry();
- break;
- case 'edit':
- EntriesManager::editEntry();
- break;
- default:
- EntriesManager::listEntry();
- break;
- }
- }
-
- public static function getMediaList(string $entry, bool $path = false) : array
- {
- $files = [];
-
- foreach (array_diff(scandir(PATH['entries'] . '/' . $entry), ['..', '.']) as $file) {
- if (strpos(Registry::get('settings.entries.media.accept_file_types'), $file_ext = substr(strrchr($file, '.'), 1)) !== false) {
- if (strpos($file, strtolower($file_ext), 1)) {
- if ($path) {
- $files[Http::getBaseUrl() . '/' . $entry . '/' . $file] = Http::getBaseUrl() . '/' . $entry . '/' . $file;
- } else {
- $files[$file] = $file;
- }
- }
- }
- }
-
- return $files;
- }
-
- protected static function getEntriesQuery() : string
- {
- if (Http::get('entry') && Http::get('entry') != '') {
- $query = Http::get('entry');
- } else {
- $query = '';
- }
-
- return $query;
- }
-
- protected static function listEntry() : void
- {
- Themes::view('admin/views/templates/content/entries/list')
- ->assign('entries_list', Entries::fetchAll(EntriesManager::getEntriesQuery(), 'date', 'DESC'))
- ->display();
- }
-
- protected static function processFilesManager() : void
- {
- $files_directory = PATH['entries'] . '/' . Http::get('entry') . '/';
-
- if (Http::get('delete_file') != '') {
- if (Token::check((Http::get('token')))) {
- Filesystem::delete($files_directory . Http::get('delete_file'));
- Notification::set('success', __('admin_message_entry_file_deleted'));
- Http::redirect(Http::getBaseUrl() . '/admin/entries/edit?entry=' . Http::get('entry') . '&media=true');
- } else {
- throw new \RuntimeException("Request was denied because it contained an invalid security token. Please refresh the page and try again.");
- }
- }
-
- if (Http::post('upload_file')) {
- if (Token::check(Http::post('token'))) {
-
- $file = EntriesManager::uploadFile($_FILES['file'], $files_directory, Registry::get('settings.entries.media.accept_file_types'), 27000000);
-
- if ($file !== false) {
-
- if (in_array(pathinfo($file)['extension'], ['jpg', 'jpeg', 'png', 'gif'])) {
-
- // open an image file
- $img = Image::make($file);
-
- // now you are able to resize the instance
- if (Registry::get('settings.entries.media.upload_images_width') > 0 && Registry::get('settings.entries.media.upload_images_height') > 0) {
- $img->resize(Registry::get('settings.entries.media.upload_images_width'), Registry::get('settings.entries.media.upload_images_height'), function($constraint) {
- $constraint->aspectRatio();
- $constraint->upsize();
- });
- } elseif (Registry::get('settings.entries.media.upload_images_width') > 0) {
- $img->resize(Registry::get('settings.entries.media.upload_images_width'), null, function($constraint) {
- $constraint->aspectRatio();
- $constraint->upsize();
- });
- } elseif (Registry::get('settings.entries.media.upload_images_height') > 0) {
- $img->resize(null, Registry::get('settings.entries.media.upload_images_height'), function($constraint) {
- $constraint->aspectRatio();
- $constraint->upsize();
- });
- }
-
- // finally we save the image as a new file
- $img->save($file, Registry::get('settings.entries.media.upload_images_quality'));
-
- // destroy
- $img->destroy();
- }
-
- Notification::set('success', __('admin_message_entry_file_uploaded'));
- Http::redirect(Http::getBaseUrl() . '/admin/entries/edit?entry=' . Http::get('entry') . '&media=true');
- } else {
- Notification::set('error', __('admin_message_entry_file_not_uploaded'));
- Http::redirect(Http::getBaseUrl() . '/admin/entries/edit?entry=' . Http::get('entry') . '&media=true');
- }
-
- } else {
- throw new \RuntimeException("Request was denied because it contained an invalid security token. Please refresh the page and try again.");
- }
- }
- }
-
- protected static function editEntry() : void
- {
- $entry = Entries::fetch(Http::get('entry'));
-
- if (Http::get('media') && Http::get('media') == 'true') {
- EntriesManager::processFilesManager();
-
- Themes::view('admin/views/templates/content/entries/media')
- ->assign('entry_name', Http::get('entry'))
- ->assign('files', EntriesManager::getMediaList(Http::get('entry')), true)
- ->assign('entry', $entry)
- ->display();
- } else {
- if (Http::get('source') && Http::get('source') == 'true') {
-
- $action = Http::post('action');
-
- if (isset($action) && $action == 'save-form') {
- if (Token::check((Http::post('token')))) {
- if (Filesystem::write(
- PATH['entries'] . '/' . Http::post('entry_name') . '/entry.yaml',
- Http::post('entry_content')
- )) {
- Notification::set('success', __('admin_message_entry_changes_saved'));
- } else {
- Notification::set('success', __('admin_message_entry_changes_not_saved'));
- }
-
- Http::redirect(Http::getBaseUrl() . '/admin/entries/edit?entry=' . Http::post('entry_name') . '&source=true');
- } else {
- throw new \RuntimeException("Request was denied because it contained an invalid security token. Please refresh the page and try again.");
- }
- }
-
- $entry_content = Filesystem::read(PATH['entries'] . '/' . Http::get('entry') . '/entry.yaml');
-
- Themes::view('admin/views/templates/content/entries/source')
- ->assign('entry_name', Http::get('entry'))
- ->assign('entry_content', $entry_content)
- ->assign('entry', $entry)
- ->assign('files', EntriesManager::getMediaList(Http::get('entry')), true)
- ->display();
- } else {
-
- $action = Http::post('action');
- $indenter = new Indenter();
-
- if (isset($action) && $action == 'save-form') {
- if (Token::check((Http::post('token')))) {
-
- $entry = Entries::fetch(Http::get('entry'));
- Arr::delete($entry, 'slug');
-
- $data = [];
-
- $_data = $_POST;
- Arr::delete($_data, 'token');
- Arr::delete($_data, 'action');
-
- foreach ($_data as $key => $_d) {
- $data[$key] = $indenter->indent($_d);
- }
-
- $data = array_merge($entry, $data);
-
- if (Entries::update(Http::get('entry'), $data)) {
- Notification::set('success', __('admin_message_entry_changes_saved'));
- } else {
- Notification::set('error', __('admin_message_entry_changes_not_saved'));
- }
-
- Http::redirect(Http::getBaseUrl() . '/admin/entries/edit?entry=' . Http::get('entry'));
- }
- }
-
- // Fieldset for current entry template
- $fieldset_path = PATH['themes'] . '/' . Registry::get('settings.theme') . '/fieldsets/' . (isset($entry['fieldset']) ? $entry['fieldset'] : 'default') . '.yaml';
- $fieldset = YamlParser::decode(Filesystem::read($fieldset_path));
- is_null($fieldset) and $fieldset = [];
-
- Themes::view('admin/views/templates/content/entries/content')
- ->assign('entry_name', Http::get('entry'))
- ->assign('entry', $entry)
- ->assign('fieldset', $fieldset)
- ->assign('templates', Themes::getTemplates())
- ->assign('files', EntriesManager::getMediaList(Http::get('entry')), true)
- ->display();
- }
- }
- }
-
- protected static function duplicateEntry() : void
- {
- if (Http::get('entry') != '') {
- if (Token::check((Http::get('token')))) {
-
- if (Entries::copy(Http::get('entry'), Http::get('entry') . '-duplicate-' . date("Ymd_His"), true)) {
- Notification::set('success', __('admin_message_entry_duplicated'));
- } else {
- Notification::set('error', __('admin_message_entry_was_not_duplicated'));
- }
-
- Http::redirect(Http::getBaseUrl() . '/admin/entries/?entry=' . implode('/', array_slice(explode("/", Http::get('entry')), 0, -1)));
- } else {
- throw new \RuntimeException("Request was denied because it contained an invalid security token. Please refresh the page and try again.");
- }
- }
- }
-
- protected static function moveEntry() : void
- {
- $entry = Entries::fetch(Http::get('entry'));
-
- $move_entry = Http::post('move_entry');
-
- if (isset($move_entry)) {
- if (Token::check((Http::post('token')))) {
- if (!Entries::has(Http::post('parent_entry') . '/' . Http::post('name_current'))) {
- if (Entries::rename(
- Http::post('entry_path_current'),
- Http::post('parent_entry') . '/' . Text::safeString(Http::post('name_current'), '-', true)
- )) {
- Notification::set('success', __('admin_message_entry_moved'));
- } else {
- Notification::set('error', __('admin_message_entry_was_not_moved'));
- }
-
- Http::redirect(Http::getBaseUrl() . '/admin/entries/?entry=' . Http::post('parent_entry'));
-
- }
- } else {
- throw new \RuntimeException("Request was denied because it contained an invalid security token. Please refresh the page and try again.");
- }
- }
-
- $_entries_list = Entries::fetchAll('', 'slug');
- $entries_list['/'] = '/';
- foreach ($_entries_list as $_entry) {
- if ($_entry['slug'] != '') {
- $entries_list[$_entry['slug']] = $_entry['slug'];
- } else {
- $entries_list[Registry::get('settings.entries.main')] = Registry::get('settings.entries.main');
- }
- }
-
- Themes::view('admin/views/templates/content/entries/move')
- ->assign('entry_path_current', Http::get('entry'))
- ->assign('entries_list', $entries_list)
- ->assign('name_current', Arr::last(explode("/", Http::get('entry'))))
- ->assign('entry_parent', implode('/', array_slice(explode("/", Http::get('entry')), 0, -1)))
- ->assign('entry', $entry)
- ->display();
- }
-
- protected static function deleteEntry() : void
- {
- if (Http::get('entry') != '') {
- if (Token::check((Http::get('token')))) {
-
- if (Entries::delete(Http::get('entry'))) {
- Notification::set('success', __('admin_message_entry_deleted'));
- } else {
- Notification::set('error', __('admin_message_entry_was_not_deleted'));
- }
-
- Http::redirect(Http::getBaseUrl() . '/admin/entries/?entry=' . Http::get('entry_current'));
- } else {
- throw new \RuntimeException("Request was denied because it contained an invalid security token. Please refresh the page and try again.");
- }
- }
- }
-
- protected static function renameEntry() : void
- {
- $entry = Entries::fetch(Http::get('entry'));
-
- $rename_entry = Http::post('rename_entry');
-
- if (isset($rename_entry)) {
- if (Token::check((Http::post('token')))) {
- if (!Entries::has(Http::post('name'))) {
- if (Entries::rename(
- Http::post('entry_path_current'),
- Http::post('entry_parent') . '/' . Text::safeString(Http::post('name'), '-', true)
- )) {
- Notification::set('success', __('admin_message_entry_renamed'));
- } else {
- Notification::set('error', __('admin_message_entry_was_not_renamed'));
- }
-
- Http::redirect(Http::getBaseUrl() . '/admin/entries/?entry=' . Http::post('entry_parent'));
- }
- } else {
- throw new \RuntimeException("Request was denied because it contained an invalid security token. Please refresh the page and try again.");
- }
- }
-
- Themes::view('admin/views/templates/content/entries/rename')
- ->assign('name_current', Arr::last(explode("/", Http::get('entry'))))
- ->assign('entry_path_current', Http::get('entry'))
- ->assign('entry_parent', implode('/', array_slice(explode("/", Http::get('entry')), 0, -1)))
- ->assign('entry', $entry)
- ->display();
- }
-
- protected static function typeEntry() : void
- {
- $type_entry = Http::post('type_entry');
-
- if (isset($type_entry)) {
- if (Token::check((Http::post('token')))) {
-
- $entry = Entries::fetch(Http::get('entry'));
- Arr::delete($entry, 'slug');
-
- $data = [];
- $_data = $_POST;
- Arr::delete($_data, 'token');
- Arr::delete($_data, 'type_entry');
- Arr::delete($_data, 'entry');
-
- $data = array_merge($entry, $_data);
-
- if (Entries::update(Http::get('entry'), $data)) {
- Notification::set('success', __('admin_message_entry_changes_saved'));
- } else {
- Notification::set('success', __('admin_message_entry_was_not_moved'));
- }
-
- Http::redirect(Http::getBaseUrl() . '/admin/entries?entry=' . implode('/', array_slice(explode("/", Http::get('entry')), 0, -1)));
- } else {
- throw new \RuntimeException("Request was denied because it contained an invalid security token. Please refresh the page and try again.");
- }
- }
-
- $entry = Entries::fetch(Http::get('entry'));
-
- $fieldsets = [];
-
- // Get fieldsets files
- $_fieldsets = Filesystem::listContents(PATH['themes'] . '/' . Registry::get('settings.theme') . '/fieldsets/');
-
- // If there is any template file then go...
- if (count($_fieldsets) > 0) {
- foreach ($_fieldsets as $fieldset) {
- if ($fieldset['type'] == 'file' && $fieldset['extension'] == 'yaml') {
- $fieldset_content = YamlParser::decode(Filesystem::read($fieldset['path']));
- if (isset($fieldset_content['sections']) && isset($fieldset_content['sections']['main']) && isset($fieldset_content['sections']['main']['fields'])) {
- $fieldsets[$fieldset['basename']] = $fieldset_content['title'];
- }
- }
- }
- }
-
- Themes::view('admin/views/templates/content/entries/type')
- ->assign('fieldset', $entry['fieldset'])
- ->assign('fieldsets', $fieldsets)
- ->display();
- }
-
- protected static function addEntry() : void
- {
- $create_entry = Http::post('create_entry');
-
- if (isset($create_entry)) {
- if (Token::check((Http::post('token')))) {
-
- // Set parent entry
- if (Http::post('parent_entry')) {
- $parent_entry = '/' . Http::post('parent_entry');
- } else {
- $parent_entry = '/';
- }
-
- // Set new entry name
- $entry = $parent_entry . Text::safeString(Http::post('slug'), '-', true);
-
- // Check if new entry exists
- if (!Entries::has($entry)) {
-
- // Get fieldset
- $fieldset = YamlParser::decode(Filesystem::read(PATH['themes'] . '/' . Registry::get('settings.theme') . '/fieldsets/' . Http::post('fieldset') . '.yaml'));
-
- // We need to check if template for current fieldset is exists
- // if template is not exist then default template will be used!
- $template_path = PATH['themes'] . '/' . Registry::get('settings.theme') . '/views/templates/' . Http::post('fieldset') . '.php';
- if (Filesystem::has($template_path)) {
- $template = Http::post('fieldset');
- } else {
- $template = 'default';
- }
-
- // Init entry data
- $data = [];
- $default_data = [];
-
- // Define data values based on POST data
- $default_data['title'] = Http::post('title');
- $default_data['template'] = $template;
- $default_data['fieldset'] = Http::post('fieldset');
- $default_data['date'] = date(Registry::get('settings.date_format'), time());
-
- // Predefine data values based on selected fieldset
- foreach ($fieldset['sections'] as $section) {
- foreach ($section as $key => $field) {
-
- // Get values from default data
- if (isset($default_data[$key])) {
-
- $_value = $default_data[$key];
-
- // Get values from fieldsets predefined field values
- } elseif (isset($field['value'])) {
-
- $_value = $field['value'];
-
- // or set empty value
- } else {
- $_value = '';
- }
-
- $data[$key] = $_value;
- }
- }
-
- // Merge data
- $data = array_replace_recursive($data, $default_data);
-
- // Create a new entry!
- if (Entries::create($entry, $data)) {
- Notification::set('success', __('admin_message_entry_created'));
- } else {
- Notification::set('success', __('admin_message_entry_was_not_created'));
- }
-
- Http::redirect(Http::getBaseUrl() . '/admin/entries/?entry=' . Http::post('parent_entry'));
- }
- } else {
- throw new \RuntimeException("Request was denied because it contained an invalid security token. Please refresh the page and try again.");
- }
- }
-
- $fieldsets = [];
-
- // Get fieldsets files
- $_fieldsets = Filesystem::listContents(PATH['themes'] . '/' . Registry::get('settings.theme') . '/fieldsets/');
-
- // If there is any template file then go...
- if (count($_fieldsets) > 0) {
- foreach ($_fieldsets as $fieldset) {
- if ($fieldset['type'] == 'file' && $fieldset['extension'] == 'yaml') {
- $fieldset_content = YamlParser::decode(Filesystem::read($fieldset['path']));
- if (isset($fieldset_content['sections']) && isset($fieldset_content['sections']['main']) && isset($fieldset_content['sections']['main']['fields'])) {
- $fieldsets[$fieldset['basename']] = $fieldset_content['title'];
- }
- }
- }
- }
-
- Themes::view('admin/views/templates/content/entries/add')
- ->assign('fieldsets', $fieldsets)
- ->assign('entries_list', Entries::fetchAll('', 'slug'))
- ->display();
- }
-
- /**
- * Upload files on the Server with several type of Validations!
- *
- * Entries::uploadFile($_FILES['file'], $files_directory);
- *
- * @param array $file Uploaded file data
- * @param string $upload_directory Upload directory
- * @param string $allowed Allowed file extensions
- * @param int $max_size Max file size in bytes
- * @param string $filename New filename
- * @param bool $remove_spaces Remove spaces from the filename
- * @param int $max_width Maximum width of image
- * @param int $max_height Maximum height of image
- * @param bool $exact Match width and height exactly?
- * @param int $chmod Chmod mask
- * @return string on success, full path to new file
- * @return false on failure
- */
- public static function uploadFile(
- array $file,
- string $upload_directory,
- string $allowed = 'jpeg, png, gif, jpg',
- int $max_size = 3000000,
- string $filename = null,
- bool $remove_spaces = true,
- int $max_width = null,
- int $max_height = null,
- bool $exact = false,
- int $chmod = 0644
- ) {
- //
- // Tests if a successful upload has been made.
- //
- if (isset($file['error'])
- and isset($file['tmp_name'])
- and $file['error'] === UPLOAD_ERR_OK
- and is_uploaded_file($file['tmp_name'])) {
-
- //
- // Tests if upload data is valid, even if no file was uploaded.
- //
- if (isset($file['error'])
- and isset($file['name'])
- and isset($file['type'])
- and isset($file['tmp_name'])
- and isset($file['size'])) {
-
- //
- // Test if an uploaded file is an allowed file type, by extension.
- //
- if (strpos($allowed, strtolower(pathinfo($file['name'], PATHINFO_EXTENSION))) !== false) {
-
- //
- // Validation rule to test if an uploaded file is allowed by file size.
- //
- if (($file['error'] != UPLOAD_ERR_INI_SIZE)
- and ($file['error'] == UPLOAD_ERR_OK)
- and ($file['size'] <= $max_size)) {
-
- //
- // Validation rule to test if an upload is an image and, optionally, is the correct size.
- //
- if (in_array(mime_content_type($file['tmp_name']), ['image/jpeg', 'image/jpg', 'image/png', 'image/gif'])) {
- function validateImage($file, $max_width, $max_height, $exact)
- {
- try {
- // Get the width and height from the uploaded image
- list($width, $height) = getimagesize($file['tmp_name']);
- } catch (ErrorException $e) {
- // Ignore read errors
- }
-
- if (empty($width) or empty($height)) {
- // Cannot get image size, cannot validate
- return false;
- }
-
- if (!$max_width) {
- // No limit, use the image width
- $max_width = $width;
- }
-
- if (!$max_height) {
- // No limit, use the image height
- $max_height = $height;
- }
-
- if ($exact) {
- // Check if dimensions match exactly
- return ($width === $max_width and $height === $max_height);
- } else {
- // Check if size is within maximum dimensions
- return ($width <= $max_width and $height <= $max_height);
- }
-
- return false;
- }
-
- if (validateImage($file, $max_width, $max_height, $exact) === false) {
- return false;
- }
- }
-
- if (!isset($file['tmp_name']) or !is_uploaded_file($file['tmp_name'])) {
-
- // Ignore corrupted uploads
- return false;
- }
-
- if ($filename === null) {
-
- // Use the default filename
- $filename = $file['name'];
- }
-
- if ($remove_spaces === true) {
-
- // Remove spaces from the filename
- $filename = Text::safeString(pathinfo($filename)['filename'], '-', true) . '.' . pathinfo($filename)['extension'];
- }
-
- if (!is_dir($upload_directory) or !is_writable(realpath($upload_directory))) {
- throw new \RuntimeException("Directory {$upload_directory} must be writable");
- }
-
- // Make the filename into a complete path
- $filename = realpath($upload_directory) . DIRECTORY_SEPARATOR . $filename;
-
- if (move_uploaded_file($file['tmp_name'], $filename)) {
-
- // Set permissions on filename
- chmod($filename, $chmod);
-
- // Return new file path
- return $filename;
- }
- }
- }
- }
- }
-
- return false;
- }
-
-}
diff --git a/site/plugins/admin/classes/FieldsetsManager.php b/site/plugins/admin/classes/FieldsetsManager.php
deleted file mode 100644
index 45d13f34..00000000
--- a/site/plugins/admin/classes/FieldsetsManager.php
+++ /dev/null
@@ -1,290 +0,0 @@
- 'form']);
- $form .= Form::hidden('token', Token::generate());
- $form .= Form::hidden('action', 'save-form');
-
- if (count($fieldset['sections']) > 0) {
-
- $form .= '
';
-
- foreach ($fieldset['sections'] as $key => $section) {
- $form .= '-
- '.$section['title'].'
-
';
- }
-
- $form .= '
';
-
- $form .= '';
-
- foreach ($fieldset['sections'] as $key => $section) {
-
- $form .= '
';
- $form .= '
';
-
- foreach ($section['fields'] as $element => $property) {
-
- // Create attributes
- $property['attributes'] = Arr::keyExists($property, 'attributes') ? $property['attributes'] : [];
-
- // Create attribute class
- $property['attributes']['class'] = Arr::keyExists($property, 'attributes.class') ? 'form-control ' . $property['attributes']['class'] : 'form-control';
-
- // Create attribute size
- $property['size'] = Arr::keyExists($property, 'size') ? $property['size'] : 'col-12';
-
- // Create attribute value
- $property['value'] = Arr::keyExists($property, 'value') ? $property['value'] : '';
-
- $pos = strpos($element, '.');
-
- if ($pos === false) {
- $form_element_name = $element;
- } else {
- $form_element_name = str_replace(".", "][", "$element") . ']';
- }
-
- $pos = strpos($form_element_name, ']');
-
- if ($pos !== false) {
- $form_element_name = substr_replace($form_element_name, '', $pos, strlen(']'));
- }
-
- // Form value
- $form_value = Arr::keyExists($values, $element) ? Arr::get($values, $element) : $property['value'];
-
- // Form label
- $form_label = Form::label($element, __($property['title']));
-
- // Form elements
- switch ($property['type']) {
-
- // Simple text-input, for multi-line fields.
- case 'textarea':
- $form_element = Form::textarea($element, $form_value, $property['attributes']);
- break;
-
- // The hidden field is like the text field, except it's hidden from the content editor.
- case 'hidden':
- $form_element = Form::hidden($element, $form_value);
- break;
-
- // A WYSIWYG HTML field.
- case 'html':
- $property['attributes']['class'] .= ' js-html-editor';
- $form_element = Form::textarea($element, $form_value, $property['attributes']);
- break;
-
- // Selectbox field
- case 'select':
- $form_element = Form::select($form_element_name, $property['options'], $form_value, $property['attributes']);
- break;
-
- // Template select field for selecting entry template
- case 'template_select':
- $form_element = Form::select($form_element_name, Themes::getTemplates(), $form_value, $property['attributes']);
- break;
-
- // Visibility select field for selecting entry visibility state
- case 'visibility_select':
- $form_element = Form::select($form_element_name, ['draft' => __('admin_entries_draft'), 'visible' => __('admin_entries_visible'), 'hidden' => __('admin_entries_hidden')], (!empty($form_value) ? $form_value : 'visible'), $property['attributes']);
- break;
-
- // Media select field
- case 'media_select':
- $form_element = Form::select($form_element_name, EntriesManager::getMediaList(Http::get('entry'), false), $form_value, $property['attributes']);
- break;
-
- // Simple text-input, for single-line fields.
- default:
- $form_element = Form::input($form_element_name, $form_value, $property['attributes']);
- break;
- }
-
- // Render form elments with labels
- if ($property['type'] == 'hidden') {
- $form .= $form_element;
- } else {
- $form .= '
';
- $form .= $form_label . $form_element;
- $form .= '
';
- }
- }
-
- $form .= '
';
- $form .= '
';
- }
-
- $form .= '
';
- }
-
- $form .= Form::close();
-
- return $form;
- }
-
- protected static function addFieldsets()
- {
- $create_fieldset = Http::post('create_fieldset');
-
- if (isset($create_fieldset)) {
- if (Token::check((Http::post('token')))) {
-
- $file = PATH['themes'] . '/' . Registry::get('settings.theme') . '/fieldsets/' . Text::safeString(Http::post('name'), '-', true) . '.yaml';
-
- if (!Filesystem::has($file)) {
- // Create a fieldset!
- if (Filesystem::write(
- $file,
- YamlParser::encode(['title' => Http::post('title')])
- )) {
- Notification::set('success', __('admin_message_fieldset_created'));
- Http::redirect(Http::getBaseUrl() . '/admin/fieldsets');
- }
- }
- } else {
- throw new \RuntimeException("Request was denied because it contained an invalid security token. Please refresh the page and try again.");
- }
- }
-
- Themes::view('admin/views/templates/extends/fieldsets/add')
- ->display();
- }
-
- protected static function renameFieldsets()
- {
- $rename_fieldset = Http::post('rename_fieldset');
-
- if (isset($rename_fieldset)) {
- if (Token::check((Http::post('token')))) {
- if (!Filesystem::has(PATH['themes'] . '/' . Registry::get('settings.theme') . '/fieldsets/' . Http::post('name') . '.yaml')) {
- if (rename(
- PATH['themes'] . '/' . Registry::get('settings.theme') . '/fieldsets/' . Http::post('name_current') . '.yaml',
- PATH['themes'] . '/' . Registry::get('settings.theme') . '/fieldsets/' . Http::post('name') . '.yaml')
- ) {
- Notification::set('success', __('admin_message_fieldset_renamed'));
- Http::redirect(Http::getBaseUrl() . '/admin/fieldsets');
- }
- }
- } else {
- throw new \RuntimeException("Request was denied because it contained an invalid security token. Please refresh the page and try again.");
- }
- }
-
- Themes::view('admin/views/templates/extends/fieldsets/rename')
- ->assign('name_current', Http::get('fieldset'))
- ->display();
- }
-
- protected static function duplicateFieldsets()
- {
- if (Http::get('fieldset') != '') {
- if (Token::check((Http::get('token')))) {
- Filesystem::copy(PATH['themes'] . '/' . Registry::get('settings.theme') . '/fieldsets/' . Http::get('fieldset') . '.yaml',
- PATH['themes'] . '/' . Registry::get('settings.theme') . '/fieldsets/' . Http::get('fieldset') . '-duplicate-' . date("Ymd_His") . '.yaml');
- Notification::set('success', __('admin_message_fieldset_duplicated'));
- Http::redirect(Http::getBaseUrl() . '/admin/fieldsets');
- } else {
- throw new \RuntimeException("Request was denied because it contained an invalid security token. Please refresh the page and try again.");
- }
- }
- }
-
- protected static function deleteFieldsets()
- {
- if (Http::get('fieldset') != '') {
- if (Token::check((Http::get('token')))) {
- Filesystem::delete(PATH['themes'] . '/' . Registry::get('settings.theme') . '/fieldsets/' . Http::get('fieldset') . '.yaml');
- Notification::set('success', __('admin_message_fieldset_deleted'));
- Http::redirect(Http::getBaseUrl() . '/admin/fieldsets');
- } else {
- throw new \RuntimeException("Request was denied because it contained an invalid security token. Please refresh the page and try again.");
- }
- }
- }
-
- protected static function editFieldsets()
- {
- $action = Http::post('action');
-
- if (isset($action) && $action == 'save-form') {
- if (Token::check((Http::post('token')))) {
-
- // Save a fieldset!
- if (Filesystem::write(
- PATH['themes'] . '/' . Registry::get('settings.theme') . '/fieldsets/' . Http::post('name') . '.yaml',
- Http::post('fieldset')
- )) {
- Notification::set('success', __('admin_message_fieldset_saved'));
- Http::redirect(Http::getBaseUrl() . '/admin/fieldsets/edit?fieldset=' . Http::post('name'));
- }
- } else {
- throw new \RuntimeException("Request was denied because it contained an invalid security token. Please refresh the page and try again.");
- }
- }
-
- Themes::view('admin/views/templates/extends/fieldsets/edit')
- ->assign('fieldset', Filesystem::read(PATH['themes'] . '/' . Registry::get('settings.theme') . '/fieldsets/' . Http::get('fieldset') . '.yaml'))
- ->display();
- }
-
- protected static function listFieldsets()
- {
- Themes::view('admin/views/templates/extends/fieldsets/list')
- ->assign('fieldsets_list', Fieldsets::fetchList())
- ->display();
- }
-}
diff --git a/site/plugins/admin/classes/InformationManager.php b/site/plugins/admin/classes/InformationManager.php
deleted file mode 100644
index 8cbbb99f..00000000
--- a/site/plugins/admin/classes/InformationManager.php
+++ /dev/null
@@ -1,65 +0,0 @@
-get('/admin/information', InformationController::class . ':index')->setName('admin.information');
-
-class InformationController {
-
- protected $container;
-
- // constructor receives container instance
- public function __construct(ContainerInterface $container) {
- $this->container = $container;
- }
-
- public function index()
- {
- if (function_exists('apache_get_modules')) {
- if (!in_array('mod_rewrite', apache_get_modules())) {
- $apache_mod_rewrite_installed = false;
- } else {
- $apache_mod_rewrite_installed = true;
- }
- } else {
- $apache_mod_rewrite_installed = true;
- }
-
- if (!function_exists('password_hash')) {
- $password_hash_installed = false;
- } else {
- $password_hash_installed = true;
- }
-
- if (!function_exists('password_verify')) {
- $password_verify_installed = false;
- } else {
- $password_verify_installed = true;
- }
-
- return $this->view->render($response,
- 'plugins/admin/views/templates/system/information/index.html', [
- 'menu_item' => 'information',
- 'php_uname' => php_uname(),
- 'webserver' => isset($_SERVER['SERVER_SOFTWARE']) ? $_SERVER['SERVER_SOFTWARE'] : @getenv('SERVER_SOFTWARE'),
- 'php_sapi_name' => php_sapi_name(),
- 'apache_mod_rewrite_installed' => $apache_mod_rewrite_installed,
- 'password_verify_installed' => $password_verify_installed,
- 'password_hash_installed' => $password_hash_installed,
- 'links' => [
- 'information' => [
- 'link' => '/admin/information',
- 'title' => __('admin_information'),
- 'attributes' => ['class' => 'navbar-item active']
- ],
- ]
-
- ]);
- }
-}
diff --git a/site/plugins/admin/classes/PluginsManager.php b/site/plugins/admin/classes/PluginsManager.php
deleted file mode 100644
index 4ac67936..00000000
--- a/site/plugins/admin/classes/PluginsManager.php
+++ /dev/null
@@ -1,33 +0,0 @@
-get('/admin/plugins', function (Request $request, Response $response, array $args) {
- return $this->view->render($response,
- 'plugins/admin/views/templates/extends/plugins/index.html', [
- 'plugins_list' => $this->get('registry')->get('plugins'),
- 'menu_item' => 'plugins'
- ]);
-})->setName('plugins');
-
-$app->post('/admin/plugins/change_status', function (Request $request, Response $response, array $args) {
-
- $data = $request->getParsedBody();
-
- $plugin_settings = YamlParser::decode(Filesystem::read(PATH['plugins'] . '/' . $data['plugin'] . '/' . 'settings.yaml'));
- Arr::set($plugin_settings, 'enabled', ($data['status'] == 'true' ? true : false));
- Filesystem::write(PATH['plugins'] . '/' . $data['plugin'] . '/' . 'settings.yaml', YamlParser::encode($plugin_settings));
- $this->get('cache')->clear();
-
-})->setName('plugins-change-status');
diff --git a/site/plugins/admin/classes/SettingsManager.php b/site/plugins/admin/classes/SettingsManager.php
deleted file mode 100644
index 9e35c5ba..00000000
--- a/site/plugins/admin/classes/SettingsManager.php
+++ /dev/null
@@ -1,141 +0,0 @@
-get('/admin/settings', function (Request $request, Response $response, array $args) {
-
- $entries = [];
- foreach ($this->entries->fetchAll('', 'date', 'DESC') as $entry) {
- $entries[$entry['slug']] = $entry['title'];
- }
-
- $themes = [];
- foreach (Filesystem::listContents(PATH['themes']) as $theme) {
- if ($theme['type'] == 'dir' && Filesystem::has($theme['path'] . '/' . $theme['dirname'] . '.yaml')) {
- $themes[$theme['dirname']] = $theme['dirname'];
- }
- }
-
- $available_locales = Filesystem::listContents(PATH['plugins'] . '/admin/languages/');
- $system_locales = $this->plugins->getLocales();
- $locales = [];
- foreach ($available_locales as $locale) {
- if ($locale['type'] == 'file' && $locale['extension'] == 'yaml') {
- $locales[$locale['basename']] = $system_locales[$locale['basename']]['nativeName'];
- }
- }
-
- $cache_driver = ['auto' => 'Auto Detect',
- 'file' => 'File',
- 'apcu' => 'APCu',
- 'wincache' => 'WinCache',
- 'memcached' => 'Memcached',
- 'redis' => 'Redis',
- 'sqlite3' => 'SQLite3',
- 'zend' => 'Zend',
- 'array' => 'Array'];
-
- return $this->view->render($response,
- 'plugins/admin/views/templates/system/settings/index.html', [
- 'timezones' => Date::timezones(),
- 'settings' => $this->registry->get('settings'),
- 'cache_driver' => $cache_driver,
- 'locales' => $locales,
- 'entries' => $entries,
- 'themes' => $themes,
- 'links' => [
- 'settings' => [
- 'link' => '/admin/settings',
- 'title' => __('admin_settings'),
- 'attributes' => ['class' => 'navbar-item active']
- ]
- ],
- 'buttons' => [
- 'save' => [
- 'link' => 'javascript:;',
- 'title' => __('admin_save'),
- 'attributes' => ['class' => 'js-save-form-submit float-right btn']
- ],
- 'settings_clear_cache' => [
- 'link' => '/admin/settings?clear_cache=1&token=' . Token::generate(),
- 'title' => __('admin_clear_cache'),
- 'attributes' => ['class' => 'float-right btn']
- ]
- ]
- ]);
-})->setName('information');
-
-class SettingsManager
-{
- public static function getSettingsManager()
- {
- Registry::set('sidebar_menu_item', 'settings');
-
- SettingsManager::clearCache();
- SettingsManager::saveSettings();
-
- Themes::view('admin/views/templates/system/settings/list')
- ->assign('settings', Registry::get('settings'))
- ->assign('cache_driver', SettingsManager::cacheDriverList())
- ->assign('locales', SettingsManager::localesList())
- ->assign('entries', SettingsManager::entriesList())
- ->assign('themes', SettingsManager::themesList())
- ->display();
- }
-
- private static function saveSettings()
- {
- if (Http::post('action') !== null && Http::post('action') == 'save-form' && Http::post('token') !== null) {
- if (Token::check((Http::post('token')))) {
-
- $settings = $_POST;
-
- Arr::delete($settings, 'token');
- Arr::delete($settings, 'action');
- Arr::set($settings, 'errors.display', (Http::post('errors.display') == '1' ? true : false));
- Arr::set($settings, 'cache.enabled', (Http::post('cache.enabled') == '1' ? true : false));
- Arr::set($settings, 'cache.lifetime', (int) Http::post('cache.lifetime'));
- Arr::set($settings, 'entries.media.upload_images_quality', (int) Http::post('entries.media.upload_images_quality'));
- Arr::set($settings, 'entries.media.upload_images_width', (int) Http::post('entries.media.upload_images_width'));
- Arr::set($settings, 'entries.media.upload_images_height', (int) Http::post('entries.media.upload_images_height'));
-
- if (Filesystem::write(PATH['config']['site'] . '/settings.yaml', YamlParser::encode(array_merge(Registry::get('settings'), $settings)))) {
- Notification::set('success', __('admin_message_settings_saved'));
- } else {
- Notification::set('error', __('admin_message_settings_was_not_saved'));
- }
-
- Http::redirect(Http::getBaseUrl() . '/admin/settings');
- } else {
- throw new \RuntimeException("Request was denied because it contained an invalid security token. Please refresh the page and try again.");
- }
- }
- }
-
- private static function clearCache()
- {
- // Clear cache
- if (Http::get('clear_cache') !== null && Http::get('clear_cache') == '1' && Http::get('token') !== null) {
- if (Token::check((Http::get('token')))) {
- Cache::clear();
- Notification::set('success', __('admin_message_cache_files_deleted'));
- Http::redirect(Http::getBaseUrl() . '/admin/settings');
- } else {
- throw new \RuntimeException("Request was denied because it contained an invalid security token. Please refresh the page and try again.");
- }
- }
- }
-
-}
diff --git a/site/plugins/admin/classes/SnippetsManager.php b/site/plugins/admin/classes/SnippetsManager.php
deleted file mode 100644
index 422746ee..00000000
--- a/site/plugins/admin/classes/SnippetsManager.php
+++ /dev/null
@@ -1,178 +0,0 @@
-assign('snippet', Filesystem::read(PATH['snippets'] . '/' . Http::get('snippet') . '.php'))
- ->display();
- }
-
- private static function listSnippet()
- {
- $snippets = [];
-
- foreach (Filesystem::listContents(PATH['snippets']) as $snippet) {
- if ($snippet['type'] == 'file' && $snippet['extension'] == 'php') {
- $snippets[$snippet['basename']] = $snippet['basename'];
- }
- }
-
- Themes::view('admin/views/templates/extends/snippets/list')
- ->assign('snippets_list', $snippets)
- ->display();
- }
-
- private static function duplicateSnippet()
- {
- if (Http::get('snippet') != '') {
- if (Token::check((Http::get('token')))) {
- if (Snippets::copy(Http::get('snippet'),
- Http::get('snippet') . '-duplicate-' . date("Ymd_His"))) {
- Notification::set('success', __('admin_message_snippet_duplicated'));
- } else {
- Notification::set('error', __('admin_message_snippet_was_not_duplicated'));
- }
-
- Http::redirect(Http::getBaseUrl() . '/admin/snippets');
- } else {
- throw new \RuntimeException("Request was denied because it contained an invalid security token. Please refresh the page and try again.");
- }
- }
- }
-
- private static function renameSnippet()
- {
- $rename_snippet = Http::post('rename_snippet');
-
- if (isset($rename_snippet)) {
- if (Token::check((Http::post('token')))) {
- if (!Snippets::has(Http::post('name'))) {
- if (Snippets::rename(
- Http::post('name_current'),
- Http::post('name'))
- ) {
- Notification::set('success', __('admin_message_snippet_renamed'));
- } else {
- Notification::set('error', __('admin_message_snippet_was_not_renamed'));
- }
- Http::redirect(Http::getBaseUrl() . '/admin/snippets');
- }
- } else {
- throw new \RuntimeException("Request was denied because it contained an invalid security token. Please refresh the page and try again.");
- }
- }
-
- Themes::view('admin/views/templates/extends/snippets/rename')
- ->assign('name_current', Http::get('snippet'))
- ->display();
- }
-
- private static function deleteSnippet()
- {
- if (Http::get('snippet') != '') {
- if (Token::check((Http::get('token')))) {
-
- if (Snippets::delete(Http::get('snippet'))) {
- Notification::set('success', __('admin_message_snippet_deleted'));
- } else {
- Notification::set('error', __('admin_message_snippet_was_not_deleted'));
- }
-
- Http::redirect(Http::getBaseUrl() . '/admin/snippets');
- } else {
- throw new \RuntimeException("Request was denied because it contained an invalid security token. Please refresh the page and try again.");
- }
- }
- }
-
- private static function addSnippet()
- {
- $create_snippet = Http::post('create_snippet');
-
- if (isset($create_snippet)) {
- if (Token::check((Http::post('token')))) {
-
- $snippet_name = Text::safeString(Http::post('name'), '-', true);
-
- if (!Snippets::has($snippet_name)) {
-
- // Create a snippet!
- if (Snippets::create($snippet_name)) {
- Notification::set('success', __('admin_message_snippet_created'));
- } else {
- Notification::set('error', __('admin_message_snippet_was_not_created'));
- }
-
- Http::redirect(Http::getBaseUrl() . '/admin/snippets');
- }
- } else {
- throw new \RuntimeException("Request was denied because it contained an invalid security token. Please refresh the page and try again.");
- }
- }
-
- Themes::view('admin/views/templates/extends/snippets/add')
- ->display();
- }
-}
diff --git a/site/plugins/admin/classes/TemplatesManager.php b/site/plugins/admin/classes/TemplatesManager.php
deleted file mode 100644
index 29395210..00000000
--- a/site/plugins/admin/classes/TemplatesManager.php
+++ /dev/null
@@ -1,136 +0,0 @@
-display();
- break;
- case 'delete':
- if (Http::get('template') != '') {
- if (Token::check((Http::get('token')))) {
- $type = (Http::get('type') && Http::get('type') == 'partial') ? 'partial' : 'template';
- Filesystem::delete(PATH['themes'] . '/' . Registry::get('settings.theme') . '/views/' . $type . 's' . '/' . Http::get('template') . '.php');
- Notification::set('success', __('admin_message_template_deleted'));
- Http::redirect(Http::getBaseUrl() . '/admin/templates');
- } else {
- throw new \RuntimeException("Request was denied because it contained an invalid security token. Please refresh the page and try again.");
- }
- }
- break;
- case 'rename':
- $rename_template = Http::post('rename_template');
-
- if (isset($rename_template)) {
- if (Token::check((Http::post('token')))) {
- $type = (Http::post('type') && Http::post('type') == 'partial') ? 'partial' : 'template';
- $type_current = (Http::post('type_current') && Http::post('type_current') == 'partial') ? 'partial' : 'template';
- if (!Filesystem::has(PATH['themes'] . '/' . Registry::get('settings.theme') . '/views/' . $type . 's' . '/' . Http::post('name') . '.php')) {
- if (rename(
- PATH['themes'] . '/' . Registry::get('settings.theme') . '/views/' . $type_current . 's' . '/' . Http::post('name_current') . '.php',
- PATH['themes'] . '/' . Registry::get('settings.theme') . '/views/' . $type . 's' . '/' . Http::post('name') . '.php')
- ) {
- Notification::set('success', __('admin_message_template_renamed'));
- Http::redirect(Http::getBaseUrl() . '/admin/templates');
- }
- }
- } else {
- throw new \RuntimeException("Request was denied because it contained an invalid security token. Please refresh the page and try again.");
- }
- }
-
- Themes::view('admin/views/templates/extends/templates/rename')
- ->assign('name_current', Http::get('template'))
- ->assign('type', ((Http::get('type') && Http::get('type') == 'partial') ? 'partial' : 'template'))
- ->display();
- break;
- case 'duplicate':
- if (Http::get('template') != '') {
- if (Token::check((Http::get('token')))) {
- $type = (Http::get('type') && Http::get('type') == 'partial') ? 'partial' : 'template';
- Filesystem::copy(PATH['themes'] . '/' . Registry::get('settings.theme') . '/views/' . $type . 's' . '/' . Http::get('template') . '.php',
- PATH['themes'] . '/' . Registry::get('settings.theme') . '/views/' . $type . 's' . '/' . Http::get('template') . '-duplicate-' . date("Ymd_His") . '.php');
- Notification::set('success', __('admin_message_template_duplicated'));
- Http::redirect(Http::getBaseUrl() . '/admin/templates');
- } else {
- throw new \RuntimeException("Request was denied because it contained an invalid security token. Please refresh the page and try again.");
- }
- }
- break;
- case 'edit':
- $action = Http::post('action');
-
- if (isset($action) && $action == 'save-form') {
- if (Token::check((Http::post('token')))) {
-
- $type = (Http::post('type') && Http::post('type') == 'partial') ? 'partial' : 'template';
-
- // Save a template!
- if (Filesystem::write(
- PATH['themes'] . '/' . Registry::get('settings.theme') . '/views/' . $type . 's' . '/' . Http::post('name') . '.php',
- Http::post('template')
- )) {
- Notification::set('success', __('admin_message_template_saved'));
- Http::redirect(Http::getBaseUrl() . '/admin/templates/edit?template=' . Http::post('name') . '&type=' . $type);
- }
- } else {
- throw new \RuntimeException("Request was denied because it contained an invalid security token. Please refresh the page and try again.");
- }
- }
-
- $type = (Http::get('type') && Http::get('type') == 'partial') ? 'partials' : 'templates';
-
- Themes::view('admin/views/templates/extends/templates/edit')
- ->assign('template', Filesystem::read(PATH['themes'] . '/' . Registry::get('settings.theme') . '/views/' . $type . '/' . Http::get('template') . '.php'))
- ->assign('type', ((Http::get('type') && Http::get('type') == 'partial') ? 'partial' : 'template'))
- ->display();
- break;
- default:
-
- Themes::view('admin/views/templates/extends/templates/list')
- ->assign('templates_list', Themes::getTemplates())
- ->assign('partials_list', Themes::getPartials())
- ->display();
- break;
- }
- }
-}
diff --git a/site/plugins/admin/classes/UsersManager.php b/site/plugins/admin/classes/UsersManager.php
deleted file mode 100644
index c1d7c397..00000000
--- a/site/plugins/admin/classes/UsersManager.php
+++ /dev/null
@@ -1,128 +0,0 @@
-get('/admin/login', UsersController::class . ':login')->setName('admin.login');
-$app->get('/admin/profile', UsersController::class . ':profile')->setName('admin.profile');
-$app->get('/admin/logout', UsersController::class . ':processLogoutForm')->setName('admin.logout');
-$app->get('/admin/registration', UsersController::class . ':registration')->setName('admin.registration');
-$app->post('/admin/registration', UsersController::class . ':processRegistrationForm');
-$app->post('/admin/login', UsersController::class . ':processLoginForm');
-
-class UsersController {
-
- protected $container;
-
- // constructor receives container instance
- public function __construct(ContainerInterface $container) {
- $this->container = $container;
- }
-
- public function login($request, $response, $args)
- {
- if (!Users::isLoggedIn()) {
- return $this->container->get('view')->render($response,
- 'plugins/admin/views/templates/users/login.html', [
- 'user_is_logged' => Users::isLoggedIn()
- ]);
- } else {
- return $response->withRedirect($this->container->get('router')->urlFor('admin.registration'));
- }
- }
-
- public function profile($request, $response, $args)
- {
- if (Users::isLoggedIn()) {
- return $this->container->get('view')->render($response,
- 'plugins/admin/views/templates/users/profile.html', [
- 'username' => Session::get('username'),
- 'rolename' => Session::get('role'),
- 'sidebar_menu_item' => 'profile',
- 'user_is_logged' => 'user_is_logged!'
- ]);
- } else {
- return $response->withRedirect($this->container->get('router')->urlFor('admin.login'));
- }
- }
-
- public function processLoginForm($request, $response, $args)
- {
- if (Filesystem::has($_user_file = PATH['site'] . '/accounts/' . $data['username'] . '.yaml')) {
-
- $user_file = YamlParser::decode(Filesystem::read($_user_file));
-
- if (password_verify(trim($data['password']), $user_file['hashed_password'])) {
- Session::set('username', $user_file['username']);
- Session::set('role', $user_file['role']);
-
- return $response->withRedirect('admin/entries');
-
- } else {
- //Notification::set('error', __('admin_message_wrong_username_password'));
- }
- } else {
- //Notification::set('error', __('admin_message_wrong_username_password'));
- }
- }
-
- public function processLogoutForm($request, $response, $args)
- {
- Session::destroy();
- return $response->withRedirect('/admin');
- }
-
- public function registration($request, $response, $args)
- {
- if (!Users::isLoggedIn()) {
- return $this->view->render($response,
- 'plugins/admin/views/templates/users/registration.html');
- } else {
- return $response->withRedirect($this->container->get('router')->urlFor('admin.login'));
- }
- }
-
- public function processRegistrationForm($request, $response, $args)
- {
- if (!Filesystem::has($_user_file = PATH['site'] . '/accounts/' . Text::safeString($data['username']) . '.yaml')) {
- if (Filesystem::write(
- PATH['site'] . '/accounts/' . $data['username'] . '.yaml',
- YamlParser::encode(['username' => Text::safeString($data['username']),
- 'hashed_password' => password_hash($data['password'], PASSWORD_BCRYPT),
- 'email' => $data['email'],
- 'role' => 'admin',
- 'state' => 'enabled']))) {
- return $response->withRedirect('admin/entries');
- } else {
- //return false;
- }
- } else {
- //return false;
- }
- }
-}
-
-class Users
-{
- public static function isUsersExists() : bool
- {
- // Get Users Profiles
- $users = Filesystem::listContents(PATH['site'] . '/accounts/');
-
- // If any users exists then return true
- return ($users && count($users) > 0) ? true : false;
- }
-
- public static function isLoggedIn() : bool
- {
- return (Session::exists('role') && Session::get('role') == 'admin') ? true : false;
- }
-}