protected static function _run($action, $data) { try { $value = Action::run($action, $data); var_export($value); echo "\n"; } catch (Exception $e) { echo $e->getMessage(), "\n"; } }
/** * Constructor. * * @access protected */ protected function __construct() { static::$current_page = static::getPage(Url::getUriString()); // Send default header header('Content-Type: text/html; charset=' . Config::get('system.charset')); // Run actions before page rendered Action::run('before_page_rendered'); // Display page for current requested url static::display(static::$current_page); // Run actions after page rendered Action::run('after_page_rendered'); }
/** * Constructor. * * @access protected */ protected function __construct() { $plugins_cache_id = ''; $plugin_manifest = []; $plugin_settings = []; // Get Plugins List $plugins_list = Config::get('system.plugins'); // If Plugins List isnt empty then create plugin cache ID if (is_array($plugins_list) && count($plugins_list) > 0) { // Go through... foreach ($plugins_list as $plugin) { if (File::exists($_plugin = PLUGINS_PATH . '/' . $plugin . '/' . $plugin . '.yml')) { $plugins_cache_id .= filemtime($_plugin); } } // Create Unique Cache ID for Plugins $plugins_cache_id = md5('plugins' . ROOT_DIR . PLUGINS_PATH . $plugins_cache_id); } // Get plugins list from cache or scan plugins folder and create new plugins cache item if (Cache::driver()->contains($plugins_cache_id)) { Config::set('plugins', Cache::driver()->fetch($plugins_cache_id)); } else { // If Plugins List isnt empty if (is_array($plugins_list) && count($plugins_list) > 0) { // Go through... foreach ($plugins_list as $plugin) { if (File::exists($_plugin_manifest = PLUGINS_PATH . '/' . $plugin . '/' . $plugin . '.yml')) { $plugin_manifest = Yaml::parseFile($_plugin_manifest); } if (File::exists($_plugin_settings = PLUGINS_PATH . '/' . $plugin . '/settings.yml')) { $plugin_settings = Yaml::parseFile($_plugin_settings); } $_plugins_config[File::name($_plugin_manifest)] = array_merge($plugin_manifest, $plugin_settings); } Config::set('plugins', $_plugins_config); Cache::driver()->save($plugins_cache_id, $_plugins_config); } } // Include enabled plugins if (is_array(Config::get('plugins')) && count(Config::get('plugins')) > 0) { foreach (Config::get('plugins') as $plugin_name => $plugin) { if (Config::get('plugins.' . $plugin_name . '.enabled')) { include_once PLUGINS_PATH . '/' . $plugin_name . '/' . $plugin_name . '.php'; } } } // Run Actions on plugins_loaded Action::run('plugins_loaded'); }
/** * Constructor. * * @access protected */ protected function __construct() { // Get Theme Templates static::$current_template = Template::factory(THEMES_PATH . '/' . Config::get('system.theme')); // Get Current Page static::$current_page = static::getPage(Url::getUriString()); // Send default header header('Content-Type: text/html; charset=' . Config::get('system.charset')); // Run actions before page rendered Action::run('before_page_rendered'); // Display page for current requested url static::display(static::$current_page); // Run actions after page rendered Action::run('after_page_rendered'); }
public function run($sAction, $aParams = array()) { $sMethod = 'action' . $sAction; if (method_exists($this, $sMethod)) { $aFilters = $this->filters(); $aActionFilters = array(); if (is_array($aFilters) && count($aFilters)) { foreach ($aFilters as $key => $actions) { if (is_array($actions)) { foreach ($actions as $action) { if (strcasecmp($sAction, $action) === 0) { $aActionFilters[] = $key; break; } } } else { if (strcasecmp($sAction, $actions) === 0) { $aActionFilters[] = $key; } } } if (count($aActionFilters)) { $oFilterChain = new FilterChain(); foreach ($aActionFilters as $filter) { $sFilterClass = $filter . 'Filter'; $oFilterChain->registerFilter(new $sFilterClass()); } $oFilterChain->process(); } } $oAction = new Action($this, $sAction, $aParams); return $oAction->run(); } else { $this->redirect('/site/404'); } }
<div class="form-group"> <?php echo Form::label('access', __('Access', 'pages')) . Form::select('access', $access_array, $access, array('class' => 'form-control')); ?> </div> <?php } ?> </div> </div> <div class="row margin-bottom-1"> <div class="col-xs-12"> <?php Action::run('admin_editor', array(Html::toText($to_edit))); ?> </div> </div> <div class="row margin-top-1"> <div class="col-xs-12"> <div class="form-group"> <div class="input-group"> <?php echo Form::input('page_tags', $tags_to_edit, array('class' => 'form-control')); ?> <span class="input-group-addon add-on"> <?php echo __('Tags', 'pages'); ?>
?> $('.reset-password-btn').click(function() { $('.reset-password-area, .administration-btn').show(); $('.administration-area, .reset-password-btn').hide(); }); $('.administration-btn').click(function() { $('.reset-password-area, .administration-btn').hide(); $('.administration-area, .reset-password-btn').show(); }); }); </script> <?php Action::run('admin_header'); ?> <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries --> <!--[if lt IE 9]> <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7/html5shiv.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.js"></script> <![endif]--> </head> <body class="login-body"> <?php // Monstra Notifications Notification::get('success') and Alert::success(Notification::get('success')); Notification::get('warning') and Alert::warning(Notification::get('warning')); Notification::get('error') and Alert::error(Notification::get('error'));
/** * * Método que executa uma Action * @param Action $action Action a ser executada * */ public static function mountAction($action) { $args = Proxy::mountForm(); if ($action) { $access = ACL::checkProfile($action->getPermissions()); if ($access) { try { ?> <script language="javascript"> function load(i) { document.getElementById("bar").style.width=i; }; </script> <div class='container'> <div class='row span5 offset3'> <div class="progress progress-striped active"> <div id='bar' class="bar" style="width: 0%;"></div> </div> </div> </div> <?php $action->run($args); if ($action->hasMessage()) { SessionManager::setKey('bodymsg', $action->getMessage()); SessionManager::setKey('bodymsgtype', $action->getMessageType()); } if ($action->hasPopup()) { SessionManager::setKey('popup', $action->getPopup()); } Forward::go($action->getForward()); } catch (Exception $e) { SessionManager::setKey('bodymsg', "[ERRO] " . $e->getMessage()); SessionManager::setKey('bodymsgtype', Constants::$_MSG_ERRO); Forward::go(Forward::$_BACK); } } } }
Stylesheet::load(); ?> <!-- JavaScripts --> <?php Javascript::add('public/assets/js/jquery.min.js', 'frontend', 1); ?> <?php Javascript::add('public/assets/js/bootstrap.min.js', 'frontend', 2); ?> <?php Javascript::load(); ?> <?php Action::run('theme_header'); ?> <!-- HTML5 shim, for IE6-8 support of HTML5 elements --> <!--[if lt IE 9]> <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7/html5shiv.js"></script> <![endif]--> <!-- Fav-icons --> <link rel="icon" href="<?php echo Site::url(); ?> /favicon.ico" type="image/x-icon"> <link rel="shortcut icon" href="<?php echo Site::url(); ?>
/** * Themes plugin admin */ public static function main() { // Get current themes $current_site_theme = Option::get('theme_site_name'); $current_admin_theme = Option::get('theme_admin_name'); // Init vars $themes_site = Themes::getSiteThemes(); $themes_admin = Themes::getAdminThemes(); $templates = Themes::getTemplates(); $chunks = Themes::getChunks(); $styles = Themes::getStyles(); $scripts = Themes::getScripts(); $errors = array(); $chunk_path = THEMES_SITE . DS . $current_site_theme . DS; $template_path = THEMES_SITE . DS . $current_site_theme . DS; $style_path = THEMES_SITE . DS . $current_site_theme . DS . 'css' . DS; $script_path = THEMES_SITE . DS . $current_site_theme . DS . 'js' . DS; // Save site theme if (Request::post('save_site_theme')) { if (Security::check(Request::post('csrf'))) { Option::update('theme_site_name', Request::post('themes')); // Clean Monstra TMP folder. Monstra::cleanTmp(); // Increment Styles and Javascript version Stylesheet::stylesVersionIncrement(); Javascript::javascriptVersionIncrement(); 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')); // Clean Monstra TMP folder. Monstra::cleanTmp(); 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'), null, false) . '.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'), null, false) . '.chunk.php', Request::post('content')); Notification::set('success', __('Your changes to the chunk <i>:name</i> have been saved.', 'themes', array(':name' => Security::safeName(Request::post('name'), null, false)))); 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'), null, false)); } } } 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 // ------------------------------------- // 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'), null, false) . '.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'), null, false) . '.template.php', Request::post('content')); Notification::set('success', __('Your changes to the chunk <i>:name</i> have been saved.', 'themes', array(':name' => Security::safeName(Request::post('name'), null, false)))); 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'), null, false)); } } } 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 // ------------------------------------- // 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'), null, false) . '.css')) { $errors['file_exists'] = __('This styles already exists', 'themes'); } if (count($errors) == 0) { // Save chunk File::setContent($style_path . Security::safeName(Request::post('name'), null, false) . '.css', Request::post('content')); Notification::set('success', __('Your changes to the styles <i>:name</i> have been saved.', 'themes', array(':name' => Security::safeName(Request::post('name'), null, false)))); // Clean Monstra TMP folder. Monstra::cleanTmp(); // Increment Styles version Stylesheet::stylesVersionIncrement(); 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'), null, false)); } } } 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 // ------------------------------------- // 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'), null, false) . '.js')) { $errors['file_exists'] = __('This script already exists', 'themes'); } if (count($errors) == 0) { // Save chunk File::setContent($script_path . Security::safeName(Request::post('name'), null, false) . '.js', Request::post('content')); Notification::set('success', __('Your changes to the script <i>:name</i> have been saved.', 'themes', array(':name' => Security::safeName(Request::post('name'), null, false)))); // Clean Monstra TMP folder. Monstra::cleanTmp(); // Increment Javascript version Javascript::javascriptVersionIncrement(); 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'), null, false)); } } } 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 // ------------------------------------- // 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'), null, false) . '.chunk.php') and Security::safeName(Request::post('chunk_old_name'), null, false) !== Security::safeName(Request::post('name'), null, false)) { $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'), null, false) . '.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 <i>:name</i> 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'), null, false)); } } } 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 // ------------------------------------- // 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'), null, false) . '.template.php') and Security::safeName(Request::post('template_old_name'), null, false) !== Security::safeName(Request::post('name'), null, false)) { $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'), null, false) . '.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 <i>:name</i> 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'), null, false)); } } } 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 // ------------------------------------- // 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'), null, false) . '.css') and Security::safeName(Request::post('styles_old_name'), null, false) !== Security::safeName(Request::post('name'), null, false)) { $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'), null, false) . '.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 <i>:name</i> have been saved.', 'themes', array(':name' => basename($save_filename, '.css')))); // Clean Monstra TMP folder. Monstra::cleanTmp(); // Increment Styles version Stylesheet::stylesVersionIncrement(); 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'), null, false)); } } } 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 // ------------------------------------- // 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'), null, false) . '.js') and Security::safeName(Request::post('script_old_name'), null, false) !== Security::safeName(Request::post('name'), null, false)) { $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'), null, false) . '.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 <i>:name</i> have been saved.', 'themes', array(':name' => basename($save_filename, '.js')))); // Clean Monstra TMP folder. Monstra::cleanTmp(); // Increment Javascript version Javascript::javascriptVersionIncrement(); 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'), null, false)); } } } 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 // ------------------------------------- // Delete chunk // ------------------------------------- case "delete_chunk": if (Security::check(Request::get('token'))) { File::delete($chunk_path . Request::get('filename') . '.chunk.php'); Notification::set('success', __('Chunk <i>:name</i> 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 // ------------------------------------- // Delete styles // ------------------------------------- case "delete_styles": if (Security::check(Request::get('token'))) { File::delete($style_path . Request::get('filename') . '.css'); Notification::set('success', __('Styles <i>:name</i> deleted', 'themes', array(':name' => File::name(Request::get('filename'))))); // Clean Monstra TMP folder. Monstra::cleanTmp(); // Increment Styles version Stylesheet::stylesVersionIncrement(); 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 // ------------------------------------- // Delete script // ------------------------------------- case "delete_script": if (Security::check(Request::get('token'))) { File::delete($script_path . Request::get('filename') . '.js'); Notification::set('success', __('Script <i>:name</i> deleted', 'themes', array(':name' => File::name(Request::get('filename'))))); // Clean Monstra TMP folder. Monstra::cleanTmp(); // Increment Javascript version Javascript::javascriptVersionIncrement(); 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 // ------------------------------------- // Delete template // ------------------------------------- case "delete_template": if (Security::check(Request::get('token'))) { File::delete($template_path . Request::get('filename') . '.template.php'); Notification::set('success', __('Template <i>:name</i> deleted', 'themes', array(':name' => File::name(Request::get('filename'))))); Request::redirect('index.php?id=themes'); } break; // Clone styles // ------------------------------------- // 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')); // Clean Monstra TMP folder. Monstra::cleanTmp(); // Increment Styles version Stylesheet::stylesVersionIncrement(); Request::redirect('index.php?id=themes'); } break; // Clone script // ------------------------------------- // 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')); // Clean Monstra TMP folder. Monstra::cleanTmp(); // Increment Javascript version Javascript::javascriptVersionIncrement(); Request::redirect('index.php?id=themes'); } break; // Clone template // ------------------------------------- // 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 // ------------------------------------- // 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(); } }
} // If is admin then load admin area if ($is_admin) { // If id is empty then redirect to default plugin PAGES if (Request::get('id')) { $area = Request::get('id'); } else { Request::redirect('index.php?id=dashboard'); } $plugins_registered = Plugin::$plugins; foreach ($plugins_registered as $plugin) { $plugins_registered_areas[] = $plugin['id']; } // Show plugins admin area only for registered plugins if (in_array($area, $plugins_registered_areas)) { $plugin_admin_area = true; } else { $plugin_admin_area = false; } // Backend pre render Action::run('admin_pre_render'); // Display admin template require 'themes' . DS . Option::get('theme_admin_name') . DS . 'index.template.php'; // Backend post render Action::run('admin_post_render'); } else { // Display login template require 'themes' . DS . Option::get('theme_admin_name') . DS . 'login.template.php'; } // Flush (send) the output buffer and turn off output buffering ob_end_flush();
/** * 执行情景模式 * * @param params params */ public static function _Excute($params) { if (isset($params["sceneid"])) { $sceneid = $params["sceneid"]; $db = Db::init(); $invokes = $db->get_results("select * from scene_info where sceneid={$sceneid}"); if (isset($invokes[0])) { foreach ($invokes as $invoke) { //var_dump($invoke); Action::run($invoke->cmdline, $invoke->mid, $_GET["u"]); } } return Error::getRetString(0); } else { return Error::getRetString(10007); } }
<?php require_once __DIR__ . "/../libs/Action.php"; header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . 'GMT'); header('Cache-Control: no-cache, must-revalidate'); header('Pragma: no-cache'); $string = file_get_contents("php://input"); //$array = json_decode($json_string, true); //解析post数据 $uuid = $_GET["u"]; //用户email $mid = $_GET["mid"]; //房子主设备ID $vercode = $_GET["vercode"]; //用户验证码 echo Action::run($string, $mid, $uuid);
<footer class="container"> <div class="pull-left"><?php echo Chunk::get('footer-links'); ?> </div> <div class="pull-right"><?php Action::run('theme_footer'); echo Site::powered(); ?> </div> </footer> <?php echo Snippet::get('google-analytics'); ?> </body> </html>
<?php echo Form::hidden('csrf', Security::token()); ?> <div class="form-group margin-bottom-1"> <?php echo Form::label('name', __('Name', 'blocks')); ?> <?php echo Form::input('name', $name, array('class' => isset($errors['blocks_empty_name']) || isset($errors['blocks_exists']) ? 'form-control error-field' : 'form-control')); ?> <?php if (isset($errors['blocks_empty_name'])) { echo '<span class="error-message">' . $errors['blocks_empty_name'] . '</span>'; } if (isset($errors['blocks_exists'])) { echo '<span class="error-message">' . $errors['blocks_exists'] . '</span>'; } ?> </div> <div class="row margin-bottom-1"> <div class="col-xs-12"> <?php Action::run('admin_editor', array(Html::toText($content))); ?> </div> </div> <?php echo Form::submit('add_blocks_and_exit', __('Save and Exit', 'blocks'), array('class' => 'btn btn-phone btn-primary')) . Html::nbsp(2) . Form::submit('add_blocks', __('Save', 'blocks'), array('class' => 'btn btn-phone btn-primary')) . Html::nbsp(2) . Html::anchor(__('Cancel', 'blocks'), 'index.php?id=blocks', array('title' => __('Cancel', 'blocks'), 'class' => 'btn btn-phone btn-default')) . Form::close();
date_default_timezone_set('PRC'); //调整系统时区 define('REQUEST_TIME_START', microtime(true)); //记录页面开始执行的时间 session_start(); //默认开启SESSION会话 //声明框架源文件所在目录 define('CXPHP', str_replace('\\', '/', dirname(__FILE__))); //定义项目根目录 define('PRO_PATH', substr(CXPHP, 0, strspn(CXPHP, str_replace('\\', '/', dirname($_SERVER['SCRIPT_FILENAME']))) - 1)); //定义应用名称 defined('APP_NAME') or define('APP_NAME', 'Home'); //定义应用目录 defined('APP_PATH') or define('APP_PATH', './' . APP_NAME); //定义样式主题(默认Default) defined('TPL_STYLE') or define('TPL_STYLE', 'Default'); //开启DUBGE调试(默认开启) defined('DEBUG') or define('DEBUG', true); //载入系统函数库 require CXPHP . '/Common/function.php'; //载入配置文件并应用配置 C(load(CXPHP . '/Config/base.config.php')); C(load(C('PRO_PATH') . '/config.php')); C(load(C('APP_PATH') . '/config.php')); //导入用户自定义函数库 load(C('APP_PATH') . '/Common/function.inc.php'); //设置系统自动加载的目录 set_include_path(get_include_path() . PATH_SEPARATOR . join(PATH_SEPARATOR, C('AUTO_PATH'))); //执行相关的操作 Action::run();
/** * Pages admin function */ public static function main() { $current_theme = Option::get('theme_site_name'); $site_url = Option::get('siteurl'); $templates_path = THEMES_SITE; $errors = array(); $pages = new Table('pages'); PagesAdmin::$pages = $pages; $users = new Table('users'); $user = $users->select('[id=' . Session::get('user_id') . ']', null); // Page author if (!empty($user['firstname'])) { $author = empty($user['lastname']) ? $user['firstname'] : $user['firstname'] . ' ' . $user['lastname']; } else { $author = Session::get('user_login'); } $author = Html::toText($author); // Status array $status_array = array('published' => __('Published', 'pages'), 'draft' => __('Draft', 'pages')); // Access array $access_array = array('public' => __('Public', 'pages'), 'registered' => __('Registered', 'pages')); // Check for get actions // --------------------------------------------- if (Request::get('action')) { // Switch actions // ----------------------------------------- switch (Request::get('action')) { // Clone page // ------------------------------------- case "clone_page": if (Security::check(Request::get('token'))) { // Generate rand page name $rand_page_name = Request::get('name') . '_clone_' . date("Ymd_His"); // Get original page $orig_page = $pages->select('[slug="' . Request::get('name') . '"]', null); // Generate rand page title $rand_page_title = $orig_page['title'] . ' [copy]'; // Clone page if ($pages->insert(array('slug' => $rand_page_name, 'template' => $orig_page['template'], 'parent' => $orig_page['parent'], 'robots_index' => $orig_page['robots_index'], 'robots_follow' => $orig_page['robots_follow'], 'status' => $orig_page['status'], 'access' => isset($orig_page['access']) ? $orig_page['access'] : 'public', 'expand' => isset($orig_page['expand']) ? $orig_page['expand'] : '0', 'title' => $rand_page_title, 'meta_title' => $orig_page['meta_title'], 'description' => $orig_page['description'], 'keywords' => $orig_page['keywords'], 'tags' => $orig_page['tags'], 'date' => $orig_page['date'], 'author' => $orig_page['author']))) { // Get cloned page ID $last_id = $pages->lastId(); // Save cloned page content File::setContent(STORAGE . DS . 'pages' . DS . $last_id . '.page.txt', File::getContent(STORAGE . DS . 'pages' . DS . $orig_page['id'] . '.page.txt')); // Send notification Notification::set('success', __('The page <i>:page</i> cloned.', 'pages', array(':page' => Security::safeName(Request::get('name'), '-', true)))); } // Run add extra actions Action::run('admin_pages_action_clone'); // Redirect Request::redirect('index.php?id=pages'); } else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); } break; // Add page // ------------------------------------- // Add page // ------------------------------------- case "add_page": // Add page if (Request::post('add_page') || Request::post('add_page_and_exit')) { if (Security::check(Request::post('csrf'))) { // Get parent page if (Request::post('pages') == '0') { $parent_page = ''; } else { $parent_page = Request::post('pages'); } // Validate //-------------- if (trim(Request::post('page_name')) == '') { $errors['pages_empty_name'] = __('Required field', 'pages'); } if (trim(Request::post('page_title')) == '') { $errors['pages_empty_title'] = __('Required field', 'pages'); } if (count($pages->select('[slug="' . Security::safeName(Request::post('page_name'), '-', true) . '"]')) != 0) { $errors['pages_exists'] = __('This page already exists', 'pages'); } // Prepare date if (Valid::date(Request::post('page_date'))) { $date = strtotime(Request::post('page_date')); } else { $date = time(); } if (Request::post('robots_index')) { $robots_index = 'noindex'; } else { $robots_index = 'index'; } if (Request::post('robots_follow')) { $robots_follow = 'nofollow'; } else { $robots_follow = 'follow'; } // If no errors then try to save if (count($errors) == 0) { // Insert new page if ($pages->insert(array('slug' => Security::safeName(Request::post('page_name'), '-', true), 'template' => Request::post('templates'), 'parent' => $parent_page, 'status' => Request::post('status'), 'access' => Request::post('access'), 'expand' => '0', 'robots_index' => $robots_index, 'robots_follow' => $robots_follow, 'title' => Request::post('page_title'), 'meta_title' => Request::post('page_meta_title'), 'description' => Request::post('page_description'), 'keywords' => Request::post('page_keywords'), 'tags' => Request::post('page_tags'), 'date' => $date, 'author' => $author))) { // Get inserted page ID $last_id = $pages->lastId(); // Save content File::setContent(STORAGE . DS . 'pages' . DS . $last_id . '.page.txt', XML::safe(Request::post('editor'))); // Send notification Notification::set('success', __('Your changes to the page <i>:page</i> have been saved.', 'pages', array(':page' => Security::safeName(Request::post('page_title'), '-', true)))); } // Run add extra actions Action::run('admin_pages_action_add'); // Redirect if (Request::post('add_page_and_exit')) { Request::redirect('index.php?id=pages'); } else { Request::redirect('index.php?id=pages&action=edit_page&name=' . Security::safeName(Request::post('page_name'), '-', true)); } } } else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); } } // Get all pages $pages_list = $pages->select('[slug!="error404" and parent=""]'); $pages_array[] = '-none-'; foreach ($pages_list as $page) { $pages_array[$page['slug']] = $page['title']; } // Get all templates $templates_list = File::scan($templates_path, '.template.php'); foreach ($templates_list as $file) { $templates_array[basename($file, '.template.php')] = basename($file, '.template.php'); } // Save fields if (Request::post('page_name')) { $post_name = Request::post('page_name'); } else { $post_name = ''; } if (Request::post('page_title')) { $post_title = Request::post('page_title'); } else { $post_title = ''; } if (Request::post('page_meta_title')) { $post_meta_title = Request::post('page_meta_title'); } else { $post_meta_title = ''; } if (Request::post('page_keywords')) { $post_keywords = Request::post('page_keywords'); } else { $post_keywords = ''; } if (Request::post('page_description')) { $post_description = Request::post('page_description'); } else { $post_description = ''; } if (Request::post('page_tags')) { $post_tags = Request::post('page_tags'); } else { $post_tags = ''; } if (Request::post('editor')) { $post_content = Request::post('editor'); } else { $post_content = ''; } if (Request::post('templates')) { $post_template = Request::post('templates'); } else { $post_template = 'index'; } if (Request::post('status')) { $post_status = Request::post('status'); } else { $post_status = 'published'; } if (Request::post('access')) { $post_access = Request::post('access'); } else { $post_access = 'public'; } if (Request::post('pages')) { $parent_page = Request::post('pages'); } else { if (Request::get('parent_page')) { $parent_page = Request::get('parent_page'); } else { $parent_page = ''; } } if (Request::post('robots_index')) { $post_robots_index = true; } else { $post_robots_index = false; } if (Request::post('robots_follow')) { $post_robots_follow = true; } else { $post_robots_follow = false; } //-------------- // Generate date $date = Date::format(time(), 'Y-m-d H:i:s'); // Set Tabs State - page Notification::setNow('page', 'page'); // Display view View::factory('box/pages/views/backend/add')->assign('post_name', $post_name)->assign('post_title', $post_title)->assign('post_meta_title', $post_meta_title)->assign('post_description', $post_description)->assign('post_keywords', $post_keywords)->assign('post_tags', $post_tags)->assign('post_content', $post_content)->assign('pages_array', $pages_array)->assign('parent_page', $parent_page)->assign('templates_array', $templates_array)->assign('post_template', $post_template)->assign('post_status', $post_status)->assign('post_access', $post_access)->assign('status_array', $status_array)->assign('access_array', $access_array)->assign('date', $date)->assign('post_robots_index', $post_robots_index)->assign('post_robots_follow', $post_robots_follow)->assign('errors', $errors)->display(); break; // Edit page // ------------------------------------- // Edit page // ------------------------------------- case "edit_page": if (Request::post('edit_page') || Request::post('edit_page_and_exit')) { if (Security::check(Request::post('csrf'))) { // Get pages parent if (Request::post('pages') == '0') { $parent_page = ''; } else { $parent_page = Request::post('pages'); } // Save field $post_parent = Request::post('pages'); // Validate //-------------- if (trim(Request::post('page_name')) == '') { $errors['pages_empty_name'] = __('Required field', 'pages'); } if (count($pages->select('[slug="' . Security::safeName(Request::post('page_name'), '-', true) . '"]')) != 0 and Security::safeName(Request::post('page_old_name'), '-', true) !== Security::safeName(Request::post('page_name'), '-', true)) { $errors['pages_exists'] = __('This page already exists', 'pages'); } if (trim(Request::post('page_title')) == '') { $errors['pages_empty_title'] = __('Required field', 'pages'); } // Save fields if (Request::post('page_name')) { $post_name = Request::post('page_name'); } else { $post_name = ''; } if (Request::post('page_title')) { $post_title = Request::post('page_title'); } else { $post_title = ''; } if (Request::post('page_meta_title')) { $post_meta_title = Request::post('page_meta_title'); } else { $post_meta_title = ''; } if (Request::post('page_keywords')) { $post_keywords = Request::post('page_keywords'); } else { $post_keywords = ''; } if (Request::post('page_description')) { $post_description = Request::post('page_description'); } else { $post_description = ''; } if (Request::post('page_tags')) { $post_tags = Request::post('page_tags'); } else { $post_tags = ''; } if (Request::post('editor')) { $post_content = Request::post('editor'); } else { $post_content = ''; } if (Request::post('templates')) { $post_template = Request::post('templates'); } else { $post_template = 'index'; } if (Request::post('status')) { $post_status = Request::post('status'); } else { $post_status = 'published'; } if (Request::post('access')) { $post_access = Request::post('access'); } else { $post_access = 'public'; } if (Request::post('robots_index')) { $post_robots_index = true; } else { $post_robots_index = false; } if (Request::post('robots_follow')) { $post_robots_follow = true; } else { $post_robots_follow = false; } //-------------- // Prepare date if (Valid::date(Request::post('page_date'))) { $date = strtotime(Request::post('page_date')); } else { $date = time(); } if (Request::post('robots_index')) { $robots_index = 'noindex'; } else { $robots_index = 'index'; } if (Request::post('robots_follow')) { $robots_follow = 'nofollow'; } else { $robots_follow = 'follow'; } if (count($errors) == 0) { // Update parents in all childrens if (Security::safeName(Request::post('page_name'), '-', true) !== Security::safeName(Request::post('page_old_name'), '-', true) and Request::post('old_parent') == '') { $_pages = $pages->select('[parent="' . Text::translitIt(trim(Request::post('page_old_name'))) . '"]'); if (!empty($_pages)) { foreach ($_pages as $_page) { $pages->updateWhere('[parent="' . $_page['parent'] . '"]', array('parent' => Security::safeName(Request::post('page_name'), '-', true))); } } if ($pages->updateWhere('[slug="' . Request::get('name') . '"]', array('slug' => Security::safeName(Request::post('page_name'), '-', true), 'template' => Request::post('templates'), 'parent' => $parent_page, 'title' => Request::post('page_title'), 'meta_title' => Request::post('page_meta_title'), 'description' => Request::post('page_description'), 'keywords' => Request::post('page_keywords'), 'tags' => Request::post('page_tags'), 'robots_index' => $robots_index, 'robots_follow' => $robots_follow, 'status' => Request::post('status'), 'access' => Request::post('access'), 'date' => $date, 'author' => $author))) { File::setContent(STORAGE . DS . 'pages' . DS . Request::post('page_id') . '.page.txt', XML::safe(Request::post('editor'))); Notification::set('success', __('Your changes to the page <i>:page</i> have been saved.', 'pages', array(':page' => Security::safeName(Request::post('page_title'), '-', true)))); } // Run edit extra actions Action::run('admin_pages_action_edit'); } else { if ($pages->updateWhere('[slug="' . Request::get('name') . '"]', array('slug' => Security::safeName(Request::post('page_name'), '-', true), 'template' => Request::post('templates'), 'parent' => $parent_page, 'title' => Request::post('page_title'), 'meta_title' => Request::post('page_meta_title'), 'description' => Request::post('page_description'), 'keywords' => Request::post('page_keywords'), 'tags' => Request::post('page_tags'), 'robots_index' => $robots_index, 'robots_follow' => $robots_follow, 'status' => Request::post('status'), 'access' => Request::post('access'), 'date' => $date, 'author' => $author))) { File::setContent(STORAGE . DS . 'pages' . DS . Request::post('page_id') . '.page.txt', XML::safe(Request::post('editor'))); Notification::set('success', __('Your changes to the page <i>:page</i> have been saved.', 'pages', array(':page' => Security::safeName(Request::post('page_title'), '-', true)))); } // Run edit extra actions Action::run('admin_pages_action_edit'); } // Redirect if (Request::post('edit_page_and_exit')) { Request::redirect('index.php?id=pages'); } else { Request::redirect('index.php?id=pages&action=edit_page&name=' . Security::safeName(Request::post('page_name'), '-', true)); } } } else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); } } // Get all pages $pages_list = $pages->select(); $pages_array[] = '-none-'; // Foreach pages find page whithout parent foreach ($pages_list as $page) { if (isset($page['parent'])) { $c_p = $page['parent']; } else { $c_p = ''; } if ($c_p == '') { // error404 is system "constant" and no child for it if ($page['slug'] !== 'error404' && $page['slug'] !== Request::get('name')) { $pages_array[$page['slug']] = $page['title']; } } } // Get all templates $templates_list = File::scan($templates_path, '.template.php'); foreach ($templates_list as $file) { $templates_array[basename($file, '.template.php')] = basename($file, '.template.php'); } $page = $pages->select('[slug="' . Request::get('name') . '"]', null); if ($page) { $page_content = File::getContent(STORAGE . DS . 'pages' . DS . $page['id'] . '.page.txt'); // Safe fields or load fields if (Request::post('page_name')) { $slug_to_edit = Request::post('page_name'); } else { $slug_to_edit = $page['slug']; } if (Request::post('page_title')) { $title_to_edit = Request::post('page_title'); } else { $title_to_edit = $page['title']; } if (Request::post('page_meta_title')) { $meta_title_to_edit = Request::post('page_meta_title'); } else { $meta_title_to_edit = isset($page['meta_title']) ? $page['meta_title'] : ''; } if (Request::post('page_description')) { $description_to_edit = Request::post('page_description'); } else { $description_to_edit = $page['description']; } if (Request::post('page_keywords')) { $keywords_to_edit = Request::post('page_keywords'); } else { $keywords_to_edit = $page['keywords']; } if (Request::post('page_tags')) { $tags_to_edit = Request::post('page_tags'); } else { $tags_to_edit = isset($page['tags']) ? $page['tags'] : ''; } if (Request::post('editor')) { $to_edit = Request::post('editor'); } else { $to_edit = Text::toHtml($page_content); } if (Request::post('robots_index')) { $post_robots_index = true; } else { if ($page['robots_index'] == 'noindex') { $post_robots_index = true; } else { $post_robots_index = false; } } if (Request::post('robots_follow')) { $post_robots_follow = true; } else { if ($page['robots_follow'] == 'nofollow') { $post_robots_follow = true; } else { $post_robots_follow = false; } } if (Request::post('pages')) { // Get pages parent if (Request::post('pages') == '-none-') { $parent_page = ''; } else { $parent_page = Request::post('pages'); } // Save field $parent_page = Request::post('pages'); } else { $parent_page = $page['parent']; } if (Request::post('templates')) { $template = Request::post('templates'); } else { $template = $page['template']; } if (Request::post('status')) { $status = Request::post('status'); } else { $status = $page['status']; } if (Request::post('access')) { $access = Request::post('access'); } else { $access = isset($page['access']) ? $page['access'] : 'public'; } // Generate date $date = Request::post('date') ? Request::post('date') : Date::format($page['date'], 'Y-m-d H:i:s'); Notification::setNow('page', 'page'); // Display view View::factory('box/pages/views/backend/edit')->assign('slug_to_edit', $slug_to_edit)->assign('title_to_edit', $title_to_edit)->assign('meta_title_to_edit', $meta_title_to_edit)->assign('description_to_edit', $description_to_edit)->assign('keywords_to_edit', $keywords_to_edit)->assign('tags_to_edit', $tags_to_edit)->assign('page', $page)->assign('to_edit', $to_edit)->assign('pages_array', $pages_array)->assign('parent_page', $parent_page)->assign('templates_array', $templates_array)->assign('template', $template)->assign('status_array', $status_array)->assign('access_array', $access_array)->assign('status', $status)->assign('access', $access)->assign('date', $date)->assign('post_robots_index', $post_robots_index)->assign('post_robots_follow', $post_robots_follow)->assign('errors', $errors)->display(); } break; // Delete page // ------------------------------------- // Delete page // ------------------------------------- case "delete_page": // Error 404 page can not be removed if (Request::get('slug') !== 'error404') { if (Security::check(Request::get('token'))) { // Get specific page $page = $pages->select('[slug="' . Request::get('name') . '"]', null); // Delete page and update <parent> fields if ($pages->deleteWhere('[slug="' . $page['slug'] . '" ]')) { $_pages = $pages->select('[parent="' . $page['slug'] . '"]'); if (!empty($_pages)) { foreach ($_pages as $_page) { $pages->updateWhere('[slug="' . $_page['slug'] . '"]', array('parent' => '')); } } File::delete(STORAGE . DS . 'pages' . DS . $page['id'] . '.page.txt'); Notification::set('success', __('Page <i>:page</i> deleted', 'pages', array(':page' => Html::toText($page['title'])))); } // Run delete extra actions Action::run('admin_pages_action_delete'); // Redirect Request::redirect('index.php?id=pages'); } else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); } } break; // Update page access // ------------------------------------- // Update page access // ------------------------------------- case "update_access": if (Request::get('slug') !== 'error404') { if (Security::check(Request::get('token'))) { $pages->updateWhere('[slug="' . Request::get('slug') . '"]', array('access' => Request::get('access'))); // Run delete extra actions Action::run('admin_pages_action_update_access'); // Send notification Notification::set('success', __('Your changes to the page <i>:page</i> have been saved.', 'pages', array(':page' => Request::get('slug')))); // Redirect Request::redirect('index.php?id=pages'); } else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); } } break; // Update page status // ------------------------------------- // Update page status // ------------------------------------- case "update_status": if (Request::get('name') !== 'error404') { if (Security::check(Request::get('token'))) { $pages->updateWhere('[slug="' . Request::get('slug') . '"]', array('status' => Request::get('status'))); // Run delete extra actions Action::run('admin_pages_action_update_status'); // Send notification Notification::set('success', __('Your changes to the page <i>:page</i> have been saved.', 'pages', array(':page' => Request::get('slug')))); // Redirect Request::redirect('index.php?id=pages'); } else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); } } break; } // Its mean that you can add your own actions for this plugin Action::run('admin_pages_extra_actions'); } else { // Index action // ------------------------------------- // Init vars $pages_array = array(); $count = 0; // Get pages $pages_list = $pages->select(null, 'all', null, array('slug', 'title', 'status', 'date', 'author', 'expand', 'access', 'parent', 'template', 'tags')); // Loop foreach ($pages_list as $page) { $pages_array[$count]['title'] = $page['title']; $pages_array[$count]['meta_title'] = isset($page['meta_title']) ? $page['meta_title'] : ''; $pages_array[$count]['parent'] = $page['parent']; $pages_array[$count]['_status'] = $page['status']; $pages_array[$count]['_access'] = $page['access']; $pages_array[$count]['status'] = $status_array[$page['status']]; $pages_array[$count]['access'] = isset($access_array[$page['access']]) ? $access_array[$page['access']] : $access_array['public']; // hack for old Monstra Versions $pages_array[$count]['date'] = $page['date']; $pages_array[$count]['author'] = $page['author']; $pages_array[$count]['expand'] = $page['expand']; $pages_array[$count]['slug'] = $page['slug']; $pages_array[$count]['tags'] = $page['tags']; $pages_array[$count]['template'] = $page['template']; if (isset($page['parent'])) { $c_p = $page['parent']; } else { $c_p = ''; } if ($c_p != '') { $_page = $pages->select('[slug="' . $page['parent'] . '"]', null); if (isset($_page['title'])) { $_title = $_page['title']; } else { $_title = ''; } $pages_array[$count]['sort'] = $_title . ' ' . $page['title']; } else { $pages_array[$count]['sort'] = $page['title']; } $_title = ''; $count++; } // Sort pages $pages = Arr::subvalSort($pages_array, 'sort'); // Display view View::factory('box/pages/views/backend/index')->assign('pages', $pages)->assign('site_url', $site_url)->display(); } }
<?php echo Html::anchor(__('Delete', 'themes'), 'index.php?id=themes&action=delete_script&filename=' . basename($script, '.js') . '&token=' . Security::token(), array('class' => 'btn btn-actions btn-danger btn-actions-default', 'onclick' => "return confirmDelete('" . __('Delete script: :name', 'themes', array(':name' => basename($script, '.js'))) . "')")); ?> </div> </td> </tr> <?php } } ?> </tbody> </table> <!-- /Scripts_list --> <?php // All exept Pages, Users and Sitemap plugins if (count(Plugin::$components) > 3) { ?> <h2><?php echo __('Components templates', 'themes'); ?> </h2><br> <?php // Its mean that you can add your own actions for this plugin Action::run('admin_themes_extra_index_template_actions'); } ?> </div> </div>
/** * @inheritdoc */ public function run() { $this->queryData(); return parent::run(); }
<div class="form-group"> <?php echo Form::label('system_language', __('Language', 'system')) . Form::select('system_language', $languages_array, Option::get('language'), array('class' => 'form-control')); ?> </div> <div class="form-group"> <?php echo Form::label('system_email', __('Email', 'system')) . Form::input('system_email', Option::get('system_email'), array('class' => 'form-control')); ?> </div> <div class="form-group"> <?php echo Form::label('site_maintenance_message', __('Maintenance Mode', 'system')) . Form::textarea('site_maintenance_message', Html::toText(Option::get('maintenance_message')), array('class' => 'form-control', 'style' => 'height:160px;')); ?> </div> </div> </div> <div class="row"> <div class="col-md-6"> <?php echo Form::submit('edit_settings', __('Save', 'system'), array('class' => 'btn btn-phone btn-primary')) . Form::close(); ?> </div> </div> <?php // Custom code for this plugin Action::run('admin_system_extra_index_template_actions');
</svg> </a> </div> <div class="overlay_menu"> <ul id="overlay_menu_list"> <?php //echo Menu::get(); ?> <?php //Users::getPanel(); ?> <li class="active" data-menuanchor="da-riddles"><a href="#da-riddles">Riddles</a></li> <li data-menuanchor="da-about"><a href="#da-about">About Me</a></li> <li data-menuanchor="da-contact"><a href="#da-contact">Contact Me</a></li> <li data-menuanchor="da-gallery"><a href="#da-gallery">What I Do</a></li> </ul> </div> </div> </nav> </div> <div class="container"> <div class="row"> <div class="col-xs-12"> <?php Action::run('theme_pre_content'); ?> </div> </div> </div>
<div class="container-wide"><div class="container"><div class="row"> <div class="col-xs-12"> <?php Action::run('theme_pre_content'); ?> </div> </div><div class="row"> <div class="col-xs-12"> <div class="monstra-blog-post"> <?php echo Blog::getPost(); ?> </div> <small class="monstra-blog-date"><?php echo Blog::getPostDate('d M Y'); ?> / <?php echo Blog::getPostAuthor(); ?> </small> </div> </div><div class="row"> <div class="col-xs-12"> <?php Action::run('theme_post_content'); ?> </div> </div></div> </div> <?php Chunk::get('footer');
/** * 使能托管模式 * * @param params params */ public static function _Enable($params) { file_put_contents("./test.txt", "run\n", FILE_APPEND); $db = Db::init(); $time = $params['time']; $results = $db->get_results("select assid from assistant where time='{$time}'"); if (isset($results[0])) { foreach ($results as $re) { $invokes = $db->get_results("select * from assi_info where assid={$re->assid}"); if (isset($invokes[0])) { foreach ($invokes as $invoke) { $row = $db->get_row("select assisEn, notify from device where did='{$invoke->did}'"); //var_dump($invoke); if ($row->assisEn == 1) { file_put_contents("./test.txt", "actionrun\n", FILE_APPEND); Action::run($invoke->cmdline, $invoke->mid, '慧管家'); } } } } } }
@unlink('install.php'); // Redirect to main page header('location: index.php'); } } else { include 'install.php'; } } else { // Load Engine init file require_once ROOT . DS . 'engine' . DS . '_init.php'; // Check for maintenance mod if ('on' == Option::get('maintenance_status')) { // Set maintenance mode for all except admin and editor if (Session::exists('user_role') and (Session::get('user_role') == 'admin' or Session::get('user_role') == 'editor')) { // Monstra show this page :) } else { header('HTTP/1.1 503 Service Temporarily Unavailable'); header('Status: 503 Service Temporarily Unavailable'); header('Retry-After: 600'); die(Text::toHtml(Option::get('maintenance_message'))); } } // Frontend pre render Action::run('frontend_pre_render'); // Load site template require MINIFY . DS . 'theme.' . Site::theme() . '.' . Site::template() . '.template.php'; // Frontend pre render Action::run('frontend_post_render'); // Flush (send) the output buffer and turn off output buffering ob_end_flush(); }
</div> <div> <?php if ($plugin_admin_area) { if (is_callable(ucfirst(Plugin::$plugins[$area]['id']) . 'Admin::main')) { call_user_func(ucfirst(Plugin::$plugins[$area]['id']) . 'Admin::main'); } else { echo '<div class="message-error">' . __('Plugin main admin function does not exist', 'system') . '</div>'; } } else { echo '<div class="message-error">' . __('Plugin does not exist', 'system') . '</div>'; } ?> </div> <div><?php Action::run('admin_post_template'); ?> </div> </div> <div class="margin-top-1 margin-bottom-1 hidden-md"></div> <footer class="container visible-md visible-lg"> <p class="pull-right"> <span> <a href="http://monstra.org" target="_blank">Monstra</a> was made by <a href="http://awilum.github.io" target="_blank" class="highlight">Sergey Romanenko</a> and is maintained by <a href="https://github.com/monstra-cms/monstra/network/members" target="_blank" class="highlight">Monstra Community</a> / © 2012 - 2016 <a href="http://monstra.org/about/license" target="_blank">Monstra</a> – <?php echo __('Version', 'system'); ?> <?php echo Monstra::VERSION; ?> </span> </p>
<?php require_once dirname(__DIR__) . '/action.php'; $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : null; $data = isset($_REQUEST['data']) ? $_REQUEST['data'] : null; try { if ($action) { $value = Action::run($action, $data); } } catch (Exception $e) { $error = $e->getMessage(); } require_once __DIR__ . '/view.phtml';
public function runActions() { // Run requested actions and save responses in array if (isset($this->request['formname'])) { $this->response['_form'][$this->request['formname']] = array(); } if (isset($this->request['do'])) { $action = new Action(); if (!is_array($this->request['do'])) { $action->init($this->request['do']); $this->response[$this->request['do']] = $action->run(); if (isset($this->request['formname'])) { $this->response['_form'][$this->request['formname']] = $this->response[$do]; } } else { foreach ($this->request['do'] as $do) { $action->init($do, $this->request); // Run action + catch returned response $this->response[$do] = $action->run(); if (isset($this->response[$do][0]['redirect']['url'])) { // If redirect requested by action, do so if (!isset($this->response[$do][0]['redirect']['post']) || !is_array($this->response[$do][0]['redirect']['post'])) { $this->response[$do][0]['redirect']['post'] = array(); } $this->redirectToUrl($this->response[$do][0]['redirect']['url'], $this->response[$do][0]['redirect']['post']); } if (isset($this->request['formname'])) { // If action was triggert by a from, save response in form array as well // Just for easier message handling $this->response['_form'][$this->request['formname']] = array_merge($this->response['_form'][$this->request['formname']], $this->response[$do]); } } } } }
/** * System plugin admin */ public static function main() { if (Session::exists('user_role') && in_array(Session::get('user_role'), array('admin'))) { $filters = Filter::$filters; $plugins = Plugin::$plugins; $components = Plugin::$components; $actions = Action::$actions; // Get pages table $pages = new Table('pages'); // Get system timezone $system_timezone = Option::get('timezone'); // Get languages files $language_files = File::scan(PLUGINS_BOX . DS . 'system' . DS . 'languages' . DS, '.lang.php'); foreach ($language_files as $language) { $parts = explode('.', $language); $languages_array[$parts[0]] = I18n::$locales[$parts[0]]; } // Get all pages $pages_array = array(); $pages_list = $pages->select('[slug!="error404" and parent="" and status="published"]'); foreach ($pages_list as $page) { $pages_array[$page['slug']] = Html::toText($page['title']); } // Create Sitemap // ------------------------------------- if (Request::get('sitemap') == 'create') { if (Security::check(Request::get('token'))) { Notification::set('success', __('Sitemap created', 'system')); Sitemap::create(); Request::redirect('index.php?id=system'); } else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); } } // Delete temporary files // ------------------------------------- if (Request::get('temporary_files') == 'delete') { if (Security::check(Request::get('token'))) { Monstra::cleanTmp(); if (count(File::scan(MINIFY, array('css', 'js', 'php'))) == 0 && count(Dir::scan(CACHE)) == 0) { Notification::set('success', __('Temporary files deleted', 'system')); Request::redirect('index.php?id=system'); } } else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); } } // Set maintenance state on or off // ------------------------------------- if (Request::get('maintenance')) { if (Security::check(Request::get('token'))) { if ('on' == Request::get('maintenance')) { Option::update('maintenance_status', 'on'); Request::redirect('index.php?id=system'); } if ('off' == Request::get('maintenance')) { Option::update('maintenance_status', 'off'); Request::redirect('index.php?id=system'); } } else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); } } // Edit settings // ------------------------------------- if (Request::post('edit_settings')) { if (Security::check(Request::post('csrf'))) { // Add trailing slashes $_site_url = Request::post('system_url'); Option::update(array('sitename' => Request::post('site_name'), 'keywords' => Request::post('site_keywords'), 'description' => Request::post('site_description'), 'slogan' => Request::post('site_slogan'), 'defaultpage' => Request::post('site_default_page'), 'siteurl' => $_site_url, 'timezone' => Request::post('system_timezone'), 'system_email' => Request::post('system_email'), 'language' => Request::post('system_language'), 'maintenance_message' => Request::post('site_maintenance_message'))); Notification::set('success', __('Your changes have been saved.', 'system')); Request::redirect('index.php?id=system'); } 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_system_extra_actions'); // Display view View::factory('box/system/views/backend/index')->assign('pages_array', $pages_array)->assign('languages_array', $languages_array)->display(); } else { Request::redirect('index.php?id=users&action=edit&user_id=' . Session::get('user_id')); } }
public function run() { $this->deleteData(); return parent::run(); }