0) foreach ($files as $file) File::delete(MINIFY . DS . $file); Request::redirect('index.php?id=themes'); } else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); } } // Save site theme if (Request::post('save_admin_theme')) { if (Security::check(Request::post('csrf'))) { Option::update('theme_admin_name', Request::post('themes')); // Cleanup minify if (count($files = File::scan(MINIFY, array('css', 'js', 'php'))) > 0) foreach ($files as $file) File::delete(MINIFY . DS . $file); Request::redirect('index.php?id=themes'); } else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); } } // Its mean that you can add your own actions for this plugin Action::run('admin_themes_extra_actions'); // Check for get actions // ------------------------------------- if (Request::get('action')) { // Switch actions // ------------------------------------- switch (Request::get('action')) { // Add chunk // ------------------------------------- case "add_chunk": if (Request::post('add_file') || Request::post('add_file_and_exit')) { if (Security::check(Request::post('csrf'))) { if (trim(Request::post('name')) == '') $errors['file_empty_name'] = __('Required field', 'themes'); if (file_exists($chunk_path.Security::safeName(Request::post('name')).'.chunk.php')) $errors['file_exists'] = __('This chunk already exists', 'themes'); if (count($errors) == 0) { // Save chunk File::setContent($chunk_path.Security::safeName(Request::post('name')).'.chunk.php', Request::post('content')); Notification::set('success', __('Your changes to the chunk :name have been saved.', 'themes', array(':name' => Security::safeName(Request::post('name'))))); if (Request::post('add_file_and_exit')) { Request::redirect('index.php?id=themes'); } else { Request::redirect('index.php?id=themes&action=edit_chunk&filename='.Security::safeName(Request::post('name'))); } } } else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); } } // Save fields if (Request::post('name')) $name = Request::post('name'); else $name = ''; if (Request::post('content')) $content = Request::post('content'); else $content = ''; // Display view View::factory('box/themes/views/backend/add') ->assign('name', $name) ->assign('content', $content) ->assign('errors', $errors) ->assign('action', 'chunk') ->display(); break; // Add template // ------------------------------------- case "add_template": if (Request::post('add_file') || Request::post('add_file_and_exit')) { if (Security::check(Request::post('csrf'))) { if (trim(Request::post('name')) == '') $errors['file_empty_name'] = __('Required field', 'themes'); if (file_exists($template_path.Security::safeName(Request::post('name')).'.template.php')) $errors['file_exists'] = __('This template already exists', 'themes'); if (count($errors) == 0) { // Save chunk File::setContent($template_path.Security::safeName(Request::post('name')).'.template.php', Request::post('content')); Notification::set('success', __('Your changes to the chunk :name have been saved.', 'themes', array(':name' => Security::safeName(Request::post('name'))))); if (Request::post('add_file_and_exit')) { Request::redirect('index.php?id=themes'); } else { Request::redirect('index.php?id=themes&action=edit_template&filename='.Security::safeName(Request::post('name'))); } } } else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); } } // Save fields if (Request::post('name')) $name = Request::post('name'); else $name = ''; if (Request::post('content')) $content = Request::post('content'); else $content = ''; // Display view View::factory('box/themes/views/backend/add') ->assign('name', $name) ->assign('content', $content) ->assign('errors', $errors) ->assign('action', 'template') ->display(); break; // Add styles // ------------------------------------- case "add_styles": if (Request::post('add_file') || Request::post('add_file_and_exit')) { if (Security::check(Request::post('csrf'))) { if (trim(Request::post('name')) == '') $errors['file_empty_name'] = __('Required field', 'themes'); if (file_exists($style_path.Security::safeName(Request::post('name')).'.css')) $errors['file_exists'] = __('This styles already exists', 'themes'); if (count($errors) == 0) { // Save chunk File::setContent($style_path.Security::safeName(Request::post('name')).'.css', Request::post('content')); Notification::set('success', __('Your changes to the styles :name have been saved.', 'themes', array(':name' => Security::safeName(Request::post('name'))))); if (Request::post('add_file_and_exit')) { Request::redirect('index.php?id=themes'); } else { Request::redirect('index.php?id=themes&action=edit_styles&filename='.Security::safeName(Request::post('name'))); } } } else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); } } // Save fields if (Request::post('name')) $name = Request::post('name'); else $name = ''; if (Request::post('content')) $content = Request::post('content'); else $content = ''; // Display view View::factory('box/themes/views/backend/add') ->assign('name', $name) ->assign('content', $content) ->assign('errors', $errors) ->assign('action', 'styles') ->display(); break; // Add script // ------------------------------------- case "add_script": if (Request::post('add_file') || Request::post('add_file_and_exit')) { if (Security::check(Request::post('csrf'))) { if (trim(Request::post('name')) == '') $errors['file_empty_name'] = __('Required field', 'themes'); if (file_exists($script_path.Security::safeName(Request::post('name')).'.js')) $errors['file_exists'] = __('This script already exists', 'themes'); if (count($errors) == 0) { // Save chunk File::setContent($script_path.Security::safeName(Request::post('name')).'.js', Request::post('content')); Notification::set('success', __('Your changes to the script :name have been saved.', 'themes', array(':name' => Security::safeName(Request::post('name'))))); if (Request::post('add_file_and_exit')) { Request::redirect('index.php?id=themes'); } else { Request::redirect('index.php?id=themes&action=edit_script&filename='.Security::safeName(Request::post('name'))); } } } else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); } } // Save fields if (Request::post('name')) $name = Request::post('name'); else $name = ''; if (Request::post('content')) $content = Request::post('content'); else $content = ''; // Display view View::factory('box/themes/views/backend/add') ->assign('name', $name) ->assign('content', $content) ->assign('errors', $errors) ->assign('action', 'script') ->display(); break; // Edit chunk // ------------------------------------- case "edit_chunk": // Save current chunk action if (Request::post('edit_file') || Request::post('edit_file_and_exit') ) { if (Security::check(Request::post('csrf'))) { if (trim(Request::post('name')) == '') $errors['file_empty_name'] = __('Required field', 'themes'); if ((file_exists($chunk_path.Security::safeName(Request::post('name')).'.chunk.php')) and (Security::safeName(Request::post('chunk_old_name')) !== Security::safeName(Request::post('name')))) $errors['file_exists'] = __('This chunk already exists', 'themes'); // Save fields if (Request::post('content')) $content = Request::post('content'); else $content = ''; if (count($errors) == 0) { $chunk_old_filename = $chunk_path.Request::post('chunk_old_name').'.chunk.php'; $chunk_new_filename = $chunk_path.Security::safeName(Request::post('name')).'.chunk.php'; if ( ! empty($chunk_old_filename)) { if ($chunk_old_filename !== $chunk_new_filename) { rename($chunk_old_filename, $chunk_new_filename); $save_filename = $chunk_new_filename; } else { $save_filename = $chunk_new_filename; } } else { $save_filename = $chunk_new_filename; } // Save chunk File::setContent($save_filename, Request::post('content')); Notification::set('success', __('Your changes to the chunk :name have been saved.', 'themes', array(':name' => basename($save_filename, '.chunk.php')))); if (Request::post('edit_file_and_exit')) { Request::redirect('index.php?id=themes'); } else { Request::redirect('index.php?id=themes&action=edit_chunk&filename='.Security::safeName(Request::post('name'))); } } } else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); } } if (Request::post('name')) $name = Request::post('name'); else $name = File::name(Request::get('filename')); $content = File::getContent($chunk_path.Request::get('filename').'.chunk.php'); // Display view View::factory('box/themes/views/backend/edit') ->assign('content', $content) ->assign('name', $name) ->assign('errors', $errors) ->assign('action', 'chunk') ->display(); break; // Edit template // ------------------------------------- case "edit_template": // Save current chunk action if (Request::post('edit_file') || Request::post('edit_file_and_exit') ) { if (Security::check(Request::post('csrf'))) { if (trim(Request::post('name')) == '') $errors['file_empty_name'] = __('Required field', 'themes'); if ((file_exists($template_path.Security::safeName(Request::post('name')).'.template.php')) and (Security::safeName(Request::post('template_old_name')) !== Security::safeName(Request::post('name')))) $errors['template_exists'] = __('This template already exists', 'themes'); // Save fields if (Request::post('content')) $content = Request::post('content'); else $content = ''; if (count($errors) == 0) { $template_old_filename = $template_path.Request::post('template_old_name').'.template.php'; $template_new_filename = $template_path.Security::safeName(Request::post('name')).'.template.php'; if ( ! empty($template_old_filename)) { if ($template_old_filename !== $template_new_filename) { rename($template_old_filename, $template_new_filename); $save_filename = $template_new_filename; } else { $save_filename = $template_new_filename; } } else { $save_filename = $template_new_filename; } // Save chunk File::setContent($save_filename, Request::post('content')); Notification::set('success', __('Your changes to the template :name have been saved.', 'themes', array(':name' => basename($save_filename, '.template.php')))); if (Request::post('edit_file_and_exit')) { Request::redirect('index.php?id=themes'); } else { Request::redirect('index.php?id=themes&action=edit_template&filename='.Security::safeName(Request::post('name'))); } } } else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); } } if (Request::post('name')) $name = Request::post('name'); else $name = File::name(Request::get('filename')); $content = File::getContent($chunk_path.Request::get('filename').'.template.php'); // Display view View::factory('box/themes/views/backend/edit') ->assign('content', $content) ->assign('name', $name) ->assign('errors', $errors) ->assign('action', 'template') ->display(); break; // Edit styles // ------------------------------------- case "edit_styles": // Save current chunk action if (Request::post('edit_file') || Request::post('edit_file_and_exit') ) { if (Security::check(Request::post('csrf'))) { if (trim(Request::post('name')) == '') $errors['file_empty_name'] = __('Required field', 'themes'); if ((file_exists($style_path.Security::safeName(Request::post('name')).'.css')) and (Security::safeName(Request::post('styles_old_name')) !== Security::safeName(Request::post('name')))) $errors['file_exists'] = __('This styles already exists', 'themes'); // Save fields if (Request::post('content')) $content = Request::post('content'); else $content = ''; if (count($errors) == 0) { $styles_old_filename = $style_path.Request::post('styles_old_name').'.css'; $styles_new_filename = $style_path.Security::safeName(Request::post('name')).'.css'; if ( ! empty($styles_old_filename)) { if ($styles_old_filename !== $styles_new_filename) { rename($styles_old_filename, $styles_new_filename); $save_filename = $styles_new_filename; } else { $save_filename = $styles_new_filename; } } else { $save_filename = $styles_new_filename; } // Save chunk File::setContent($save_filename, Request::post('content')); Notification::set('success', __('Your changes to the styles :name have been saved.', 'themes', array(':name' => basename($save_filename, '.css')))); if (Request::post('edit_file_and_exit')) { Request::redirect('index.php?id=themes'); } else { Request::redirect('index.php?id=themes&action=edit_styles&filename='.Security::safeName(Request::post('name'))); } } } else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); } } if (Request::post('name')) $name = Request::post('name'); else $name = File::name(Request::get('filename')); $content = File::getContent($style_path.Request::get('filename').'.css'); // Display view View::factory('box/themes/views/backend/edit') ->assign('content', $content) ->assign('name', $name) ->assign('errors', $errors) ->assign('action', 'styles') ->display(); break; // Edit script // ------------------------------------- case "edit_script": // Save current chunk action if (Request::post('edit_file') || Request::post('edit_file_and_exit') ) { if (Security::check(Request::post('csrf'))) { if (trim(Request::post('name')) == '') $errors['file_empty_name'] = __('Required field', 'themes'); if ((file_exists($script_path.Security::safeName(Request::post('name')).'.js')) and (Security::safeName(Request::post('script_old_name')) !== Security::safeName(Request::post('name')))) $errors['file_exists'] = __('This script already exists', 'themes'); // Save fields if (Request::post('content')) $content = Request::post('content'); else $content = ''; if (count($errors) == 0) { $script_old_filename = $script_path.Request::post('script_old_name').'.js'; $script_new_filename = $script_path.Security::safeName(Request::post('name')).'.js'; if ( ! empty($script_old_filename)) { if ($script_old_filename !== $script_new_filename) { rename($script_old_filename, $script_new_filename); $save_filename = $script_new_filename; } else { $save_filename = $script_new_filename; } } else { $save_filename = $script_new_filename; } // Save chunk File::setContent($save_filename, Request::post('content')); Notification::set('success', __('Your changes to the script :name have been saved.', 'themes', array(':name' => basename($save_filename, '.js')))); if (Request::post('edit_file_and_exit')) { Request::redirect('index.php?id=themes'); } else { Request::redirect('index.php?id=themes&action=edit_script&filename='.Security::safeName(Request::post('name'))); } } } else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); } } if (Request::post('name')) $name = Request::post('name'); else $name = File::name(Request::get('filename')); $content = File::getContent($script_path.Request::get('filename').'.js'); // Display view View::factory('box/themes/views/backend/edit') ->assign('content', $content) ->assign('name', $name) ->assign('errors', $errors) ->assign('action', 'script') ->display(); break; // Delete chunk // ------------------------------------- case "delete_chunk": if (Security::check(Request::get('token'))) { File::delete($chunk_path.Request::get('filename').'.chunk.php'); Notification::set('success', __('Chunk :name deleted', 'themes', array(':name' => File::name(Request::get('filename'))))); Request::redirect('index.php?id=themes'); } else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); } break; // Delete styles // ------------------------------------- case "delete_styles": if (Security::check(Request::get('token'))) { File::delete($style_path.Request::get('filename').'.css'); Notification::set('success', __('Styles :name deleted', 'themes', array(':name' => File::name(Request::get('filename'))))); Request::redirect('index.php?id=themes'); } else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); } break; // Delete script // ------------------------------------- case "delete_script": if (Security::check(Request::get('token'))) { File::delete($script_path.Request::get('filename').'.js'); Notification::set('success', __('Script :name deleted', 'themes', array(':name' => File::name(Request::get('filename'))))); Request::redirect('index.php?id=themes'); } else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); } break; // Delete template // ------------------------------------- case "delete_template": if (Security::check(Request::get('token'))) { File::delete($template_path.Request::get('filename').'.template.php'); Notification::set('success', __('Template :name deleted', 'themes', array(':name' => File::name(Request::get('filename'))))); Request::redirect('index.php?id=themes'); } break; // Clone styles // ------------------------------------- case "clone_styles": if (Security::check(Request::get('token'))) { File::setContent(THEMES_SITE . DS . $current_site_theme . DS . 'css' . DS . Request::get('filename') .'_clone_'.date("Ymd_His").'.css', File::getContent(THEMES_SITE . DS . $current_site_theme . DS . 'css' . DS . Request::get('filename') . '.css')); Request::redirect('index.php?id=themes'); } break; // Clone script // ------------------------------------- case "clone_script": if (Security::check(Request::get('token'))) { File::setContent(THEMES_SITE . DS . $current_site_theme . DS . 'js' . DS . Request::get('filename') .'_clone_'.date("Ymd_His").'.js', File::getContent(THEMES_SITE . DS . $current_site_theme . DS . 'js' . DS . Request::get('filename') . '.js')); Request::redirect('index.php?id=themes'); } break; // Clone template // ------------------------------------- case "clone_template": if (Security::check(Request::get('token'))) { File::setContent(THEMES_SITE . DS . $current_site_theme . DS . Request::get('filename') .'_clone_'.date("Ymd_His").'.template.php', File::getContent(THEMES_SITE . DS . $current_site_theme . DS . Request::get('filename') . '.template.php')); Request::redirect('index.php?id=themes'); } break; // Clone chunk // ------------------------------------- case "clone_chunk": if (Security::check(Request::get('token'))) { File::setContent(THEMES_SITE . DS . $current_site_theme . DS . Request::get('filename') .'_clone_'.date("Ymd_His").'.chunk.php', File::getContent(THEMES_SITE . DS . $current_site_theme . DS . Request::get('filename') . '.chunk.php')); Request::redirect('index.php?id=themes'); } break; } } else { // Display view View::factory('box/themes/views/backend/index') ->assign('themes_site', $themes_site) ->assign('themes_admin', $themes_admin) ->assign('templates', $templates) ->assign('chunks', $chunks) ->assign('styles', $styles) ->assign('scripts', $scripts) ->assign('current_site_theme', $current_site_theme) ->assign('current_admin_theme', $current_admin_theme) ->display(); } } }