/** * Show modules * * @param integer $id_area Area ID * @param string $area Area name * @return void */ public function index($id_area = 2, $area = 'public') { // load dictionary $this->dict->get_wordarray(array('modules')); $area = new Area_model(); list($id_area, $areas) = $area->get_my_areas($id_area); $view = new X4View_core('container'); $view->content = new X4View_core('modules/module_list'); // get page $page = $this->get_page('modules'); $navbar = array($this->site->get_bredcrumb($page)); $view->content->navbar = $navbar; $view->content->page = $page; $view->content->id_area = $id_area; $view->content->area = $area->get_by_id($id_area); // get installed and installable plugins $mod = new X4Plugin_model(); $view->content->plugged = $mod->get_installed($id_area); $chk = AdmUtils_helper::get_ulevel(1, $_SESSION['xuid'], '_module_install'); $view->content->pluggable = !$chk || $chk->level < 4 ? array() : $mod->get_installable($id_area); // area switcher $view->content->areas = $areas; $view->render(TRUE); }
<?php defined('ROOT') or die('No direct script access.'); /** * X3 CMS - A smart Content Management System * * @author Paolo Certo * @copyright (c) CBlu.net di Paolo Certo * @license http://www.gnu.org/licenses/agpl.htm * @package X3CMS */ // x3flags area_uninstall $mod_name = 'x3flags'; $required = array(); $sql = array(); $a = new Area_model(); $area = $a->get_by_id($plugin->id_area); $sql[] = 'DELETE FROM param WHERE xrif = \'' . $mod_name . '\' AND id_area = ' . $area->id; $sql[] = 'DELETE FROM dictionary WHERE what = \'' . $mod_name . '\' AND area = \'' . $area->name . '\''; $sql[] = 'DELETE FROM modules WHERE id = ' . intval($id);
/** * Initialize area: create default pages * * @param integer $id_area Area ID * @param string $lang Language code * @return void */ public function init($id_area, $lang) { $msg = null; // check permissions $msg = AdmUtils_helper::chklevel($_SESSION['xuid'], '_page_creation', 0, 4); if (is_null($msg)) { $qs = X4Route_core::get_query_string(); // get object: the area $area = new Area_model(); $a = $area->get_by_id($id_area); $mod = new Page_model($id_area, $lang); // build the post array $post = array(); if ($id_area == 1) { // admin area // uses admin area with language = SESSION['lang'] as base and duplicates all pages $pmod = new Page_model($id_area, $_SESSION['lang']); $pages = $pmod->get_pages(); foreach ($pages as $i) { $post[] = array($i->url, array('lang' => $lang, 'id_area' => $id_area, 'xid' => $i->xid, 'url' => $i->url, 'name' => $i->name, 'title' => $i->title, 'description' => $i->description, 'xfrom' => $i->xfrom, 'tpl' => $i->tpl, 'css' => $i->css, 'id_menu' => $i->id_menu, 'xpos' => $i->xpos, 'deep' => $i->deep, 'ordinal' => $i->ordinal, 'xon' => $i->xon)); } } else { // other areas // home $post[] = array('home', array('lang' => $lang, 'id_area' => $id_area, 'xid' => 'pages', 'url' => 'home', 'name' => 'Home page', 'title' => 'Home page', 'description' => 'Home page', 'xfrom' => 'home', 'tpl' => 'base', 'css' => 'base', 'id_menu' => 0, 'xpos' => 0, 'deep' => 0, 'ordinal' => 'A', 'xon' => 1)); // x3admin $post[] = array('x3admin', array('lang' => $lang, 'id_area' => $id_area, 'xid' => 'pages', 'url' => 'x3admin', 'name' => 'Editor', 'title' => 'Editor', 'description' => 'Editor', 'xfrom' => 'home', 'tpl' => 'base', 'css' => 'base', 'id_menu' => 0, 'xpos' => 1, 'deep' => 1, 'ordinal' => 'A0000001', 'hidden' => 1, 'xlock' => 1, 'xon' => 1)); // msg $post[] = array('comunication', array('lang' => $lang, 'id_area' => $id_area, 'xid' => 'pages', 'url' => 'msg', 'name' => 'Communication', 'title' => 'Communication', 'description' => 'Communication', 'xfrom' => 'home', 'tpl' => 'base', 'css' => 'base', 'id_menu' => 0, 'xpos' => 2, 'deep' => 1, 'ordinal' => 'A0000002', 'hidden' => 1, 'xlock' => 1, 'xon' => 1)); // search $post[] = array('search', array('lang' => $lang, 'id_area' => $id_area, 'xid' => 'pages', 'url' => 'search', 'name' => 'Search result', 'title' => 'Search result', 'description' => 'Search result', 'xfrom' => 'home', 'tpl' => 'base', 'css' => 'base', 'id_menu' => 0, 'xpos' => 3, 'deep' => 1, 'ordinal' => 'A0000003', 'hidden' => 1, 'xlock' => 1, 'xon' => 1)); // if is a private area if ($a->private) { // exit $post[] = array('logout', array('lang' => $lang, 'id_area' => $id_area, 'xid' => 'pages', 'url' => 'logout', 'name' => 'Logout', 'title' => 'Logout', 'description' => 'Logout', 'xfrom' => 'home', 'tpl' => 'base', 'css' => 'base', 'id_menu' => 0, 'xpos' => 4, 'deep' => 1, 'ordinal' => 'A0000004', 'hidden' => 0, 'xlock' => 1, 'xon' => 1)); } } // action $result = $mod->initialize_area($id_area, $lang, $post); // set message $this->dict->get_words(); $msg = AdmUtils_helper::set_msg($result); if ($result[1]) { // create default contexts $mod->initialize_context($id_area, $lang); // refresh permissions $perm = new Permission_model(); $perm->refactory($_SESSION['xuid']); // set update $msg->update[] = array('element' => $qs['div'], 'url' => urldecode($qs['url']), 'title' => null); } } $this->response($msg); }
/** * New / Edit group form (use Ajax) * * @param integer $id item ID (if 0 then is a new item) * @return void */ public function edit($id = 0) { // load dictionaries $this->dict->get_wordarray(array('form', 'groups')); // get object $group = new Group_model(); $g = $id ? $group->get_by_id($id) : new Group_obj(); // build the form $fields = array(); $fields[] = array('label' => null, 'type' => 'hidden', 'value' => $id, 'name' => 'id'); $amod = new Area_model(); if ($id) { // update a group $area = $amod->get_by_id($g->id_area, 'areas', 'title'); $fields[] = array('label' => null, 'type' => 'html', 'value' => '<h4>' . _AREA . ': ' . $area->title . '</h4>'); $fields[] = array('label' => null, 'type' => 'hidden', 'value' => $g->id_area, 'name' => 'id_area'); } else { $fields[] = array('label' => _AREA, 'type' => 'select', 'value' => '', 'options' => array($amod->get_areas(), 'id', 'title'), 'name' => 'id_area', 'extra' => 'class="large"'); } $fields[] = array('label' => _NAME, 'type' => 'text', 'value' => $g->name, 'name' => 'name', 'rule' => 'required', 'extra' => 'class="large"'); $fields[] = array('label' => _DESCRIPTION, 'type' => 'textarea', 'value' => $g->description, 'name' => 'description', 'rule' => 'required', 'extra' => 'class="large"'); // if submitted if (X4Route_core::$post) { $e = X4Validation_helper::form($fields, 'editor'); if ($e) { $this->editing($_POST); } else { $this->notice($fields); } die; } // contents $view = new X4View_core('editor'); $view->title = $id ? _EDIT_GROUP : _ADD_GROUP; // form builder $view->form = X4Form_helper::doform('editor', $_SERVER["REQUEST_URI"], $fields, array(_RESET, _SUBMIT, 'buttons'), 'post', '', 'onclick="setForm(\'editor\');"'); $view->render(TRUE); }
/** * Delete Area form (use Ajax) * * @param integer $id Area ID * @return void */ public function delete($id) { // load dictionaries $this->dict->get_wordarray(array('form', 'areas')); // get object $area = new Area_model(); $obj = $area->get_by_id($id, 'areas', 'name'); // build the form $fields = array(); $fields[] = array('label' => null, 'type' => 'hidden', 'value' => $id, 'name' => 'id'); // if submitted if (X4Route_core::$post) { $this->deleting($id, $obj->name); die; } // contents $view = new X4View_core('delete'); $view->title = _DELETE_AREA; $view->item = $obj->name; // form builder $view->form = X4Form_helper::doform('delete', $_SERVER["REQUEST_URI"], $fields, array(null, _YES, 'buttons'), 'post', '', 'onclick="setForm(\'delete\');"'); $view->render(TRUE); }