mirror of
https://github.com/flextype/flextype.git
synced 2025-08-15 09:34:14 +02:00
Admin Panel: Snippets Manager - code cleanup and refactoring.
This commit is contained in:
@@ -16,118 +16,163 @@ class SnippetsManager
|
||||
{
|
||||
Registry::set('sidebar_menu_item', 'snippets');
|
||||
|
||||
// Create directory for logs
|
||||
// Create directory for snippets
|
||||
!Filesystem::has(PATH['snippets']) and Filesystem::createDir(PATH['snippets']);
|
||||
|
||||
switch (Http::getUriSegment(2)) {
|
||||
case 'add':
|
||||
$create_snippet = Http::post('create_snippet');
|
||||
|
||||
if (isset($create_snippet)) {
|
||||
if (Token::check((Http::post('token')))) {
|
||||
|
||||
$file = PATH['snippets'] . '/' . Text::safeString(Http::post('name'), '-', true) . '.php';
|
||||
|
||||
if (!Filesystem::has($file)) {
|
||||
// Create a snippet!
|
||||
if (Filesystem::write(
|
||||
$file,
|
||||
""
|
||||
)) {
|
||||
Notification::set('success', __('admin_message_snippet_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();
|
||||
SnippetsManager::addSnippet();
|
||||
break;
|
||||
case 'delete':
|
||||
if (Http::get('snippet') != '') {
|
||||
if (Token::check((Http::get('token')))) {
|
||||
Filesystem::delete(PATH['snippets'] . '/' . Http::get('snippet') . '.php');
|
||||
Notification::set('success', __('admin_message_snippet_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.");
|
||||
}
|
||||
}
|
||||
SnippetsManager::deleteSnippet();
|
||||
break;
|
||||
case 'rename':
|
||||
$rename_snippet = Http::post('rename_snippet');
|
||||
|
||||
if (isset($rename_snippet)) {
|
||||
if (Token::check((Http::post('token')))) {
|
||||
if (!Filesystem::has(PATH['snippets'] . '/' . Http::post('name') . '.php')) {
|
||||
if (rename(
|
||||
PATH['snippets'] . '/' . Http::post('name_current') . '.php',
|
||||
PATH['snippets'] . '/' . Http::post('name') . '.php')
|
||||
) {
|
||||
Notification::set('success', __('admin_message_snippet_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();
|
||||
SnippetsManager::renameSnippet();
|
||||
break;
|
||||
case 'duplicate':
|
||||
if (Http::get('snippet') != '') {
|
||||
if (Token::check((Http::get('token')))) {
|
||||
Filesystem::copy(PATH['snippets'] . '/' . Http::get('snippet') . '.php',
|
||||
PATH['snippets'] . '/' . Http::get('snippet') . '-duplicate-' . date("Ymd_His") . '.php');
|
||||
Notification::set('success', __('admin_message_snippet_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.");
|
||||
}
|
||||
}
|
||||
SnippetsManager::duplicateSnippet();
|
||||
break;
|
||||
case 'edit':
|
||||
$action = Http::post('action');
|
||||
|
||||
if (isset($action) && $action == 'save-form') {
|
||||
if (Token::check((Http::post('token')))) {
|
||||
|
||||
// Save a snippet!
|
||||
if (Filesystem::write(
|
||||
PATH['snippets'] . '/' . Http::post('name') . '.php',
|
||||
Http::post('snippet')
|
||||
)) {
|
||||
Notification::set('success', __('admin_message_snippet_saved'));
|
||||
Http::redirect(Http::getBaseUrl() . '/admin/snippets/edit?snippet=' . 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/snippets/edit')
|
||||
->assign('snippet', Filesystem::read(PATH['snippets'] . '/' . Http::get('snippet') . '.php'))
|
||||
->display();
|
||||
SnippetsManager::editSnippet();
|
||||
break;
|
||||
default:
|
||||
$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();
|
||||
SnippetsManager::listSnippet();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private static function editSnippet()
|
||||
{
|
||||
$action = Http::post('action');
|
||||
|
||||
if (isset($action) && $action == 'save-form') {
|
||||
if (Token::check((Http::post('token')))) {
|
||||
|
||||
// Save a snippet!
|
||||
if (Snippets::update(
|
||||
Http::post('name'),
|
||||
Http::post('snippet')
|
||||
)) {
|
||||
Notification::set('success', __('admin_message_snippet_saved'));
|
||||
} else {
|
||||
Notification::set('error', __('admin_message_snippet_was_not_saved'));
|
||||
}
|
||||
|
||||
Http::redirect(Http::getBaseUrl() . '/admin/snippets/edit?snippet=' . 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/snippets/edit')
|
||||
->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();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user