Ejemplo n.º 1
0
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);
        }
    }
}
Ejemplo n.º 2
0
 /**
  * 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;
     }
 }
Ejemplo n.º 3
0
 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);
         }
     }
 }