function page_content_handler(&$sm) { $um = $sm->get_url_manager(); $sm->set_theme(); if ($um->get_param('search_page')) { require_once dirname(__FILE__) . '/Pages.class.php'; $page_list = new Pages_list($sm); $page = $page_list->get_pages_by_id($um->get_param('search_page')); if ($page) { $sm->_template->assign('PAGE_TITLE', strval($page->title)); if ($um->isset_param('force_template') && $sm->user && $sm->user->is_admin() && file_exists(VIVVO_FS_TEMPLATE_ROOT . VIVVO_TEMPLATE_DIR . 'frame/' . $um->get_param('force_template'))) { $sm->_template->set_template_file(VIVVO_FS_TEMPLATE_ROOT . VIVVO_TEMPLATE_DIR . 'frame/' . $um->get_param('force_template')); } elseif ($page->template && file_exists(VIVVO_FS_TEMPLATE_ROOT . VIVVO_TEMPLATE_DIR . 'frame/' . $page->template)) { $sm->_template->set_template_file(VIVVO_FS_TEMPLATE_ROOT . VIVVO_TEMPLATE_DIR . 'frame/' . $page->template); } else { $sm->_template->set_template_file(VIVVO_FS_TEMPLATE_ROOT . VIVVO_TEMPLATE_DIR . 'frame/default.tpl'); } $sm->_template->assign('PAGE_CONTENT', $page->body); $sm->_template->assign('PAGE_OBJECT', $page); } } }
/** * Edit page * * @param integer $page_id * @param array $data * @return boolean true on success or false on fail */ function edit_page($page_id, $data) { $sm = vivvo_lite_site::get_instance(); if ($sm->user) { if ($sm->user->can('MANAGE_PLUGIN', 'pages')) { $page_list = new Pages_list(); $data['title'] = htmlspecialchars($data['title'], ENT_QUOTES, 'UTF-8'); if (empty($data['sefriendly']) or !strlen(trim($data['sefriendly']))) { $data['sefriendly'] = $data['title']; } if (!empty($data['sefriendly'])) { $sefriendly_url = strtolower(preg_replace('/[^a-z\\d_]/i', '-', $data['sefriendly'])); $sefriendly_url = preg_replace('/-+/', '-', $sefriendly_url); $sefriendly_url = trim($sefriendly_url, '-'); $data['sefriendly'] = $sefriendly_url; } $page_list = new Pages_list(); $page = $page_list->get_pages_by_id($page_id); if ($page !== false) { if ($page->sefriendly != $data['sefriendly']) { if ($sm->is_registered_url($data['sefriendly'] . '.html')) { $this->set_error_code(2608); return false; } } if (!empty($page->sefriendly) && $page->sefriendly != $data['sefriendly']) { $um = $sm->get_url_manager(); $um->unregister_url($page->sefriendly . '.html'); $um->register_url($data['sefriendly'] . '.html', 'plugins/pages/page_url_handler.php', 'page_url_handler', 'page_content_handler'); } if ($page->populate($data, true) === false) { return false; } $this->_post_master->set_data_object($page); if ($this->_post_master->sql_update()) { return true; } else { $this->set_error_code(2609); return false; } } else { $this->set_error_code(2610); return false; } } else { $this->set_error_code(2611); return false; } } else { $this->set_error_code(2612); return false; } }
function _default_assignments() { $sm = vivvo_lite_site::get_instance(); $template = $sm->get_template(); $um = $sm->get_url_manager(); $pm = $sm->get_plugin_manager(); $dm = $sm->get_dump_manager(); $template->assign('PLUGIN_ROOT', $pm->plugins['pages']['root_dir']); $action = $sm->action_status; $url = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; if ($action && !$um->isset_param('list_output')) { $dm->store_dump(md5($url)); header('Location: http://' . $url); exit; } require_once VIVVO_FS_PLUGIN_ROOT . 'plugins/pages/Pages.class.php'; if ($um->isset_param('action') && $action === false) { $in_page = $um->get_param_regexp('/^PAGE_/'); $page = new Pages($sm, $in_page); $template->assign('page', $page); } elseif ($um->get_param('search_pid')) { $pl = new Pages_list(); $page = $pl->get_pages_by_id($um->get_param('search_pid')); if ($page) { $template->assign('page', $page); } } }