. */ /** * @brief Contains the action controler page * * * @file * @author Laurent Giovannoni * @author Arnaud Veber * @date $date$ * @version $Revision$ * @ingroup admin */ $core_tools = new core_tools(); $core_tools->test_admin('admin_actions', 'apps'); core_tools::load_lang(); $mode = 'add'; if (isset($_REQUEST['mode']) && !empty($_REQUEST['mode'])) { $mode = $_REQUEST['mode']; } $page_labels = array( 'add' => _ADDITION, 'up' => _MODIFICATION, 'list' => _ACTION_LIST ); $page_ids = array( 'add' => 'action_add', 'up' => 'action_up', 'list' => 'action_list' ); try { require_once('core/class/ActionControler.php'); require_once('core/class/class_request.php'); if ($mode == 'list') { require_once('apps' . DIRECTORY_SEPARATOR . $_SESSION['config']['app_id'] . DIRECTORY_SEPARATOR . 'class' . DIRECTORY_SEPARATOR . 'class_list_show.php'); } require_once 'core/class/StatusControler.php'; } catch (Exception $e) { functions::xecho($e->getMessage()); } $statusController = new Maarch_Core_Class_StatusControler(); if ($mode == "up" || $mode == "add") { $statusArray = array(); $statusArray = $statusController->getAllInfos(); //var_dump($statusArray); } function init_session() { $_SESSION['m_admin']['action'] = array(); $_SESSION['m_admin']['action']['ID'] = ''; $_SESSION['m_admin']['action']['LABEL'] = ''; $_SESSION['m_admin']['action']['ID_STATUS'] = ''; $_SESSION['m_admin']['action']['ACTION_PAGE'] = ''; $_SESSION['m_admin']['action']['KEYWORD'] = ''; $_SESSION['m_admin']['action']['HISTORY'] = 'Y'; $_SESSION['m_admin']['action']['IS_FOLDER_ACTION'] = 'N'; $_SESSION['m_admin']['action']['categories'] = ''; $_SESSION['m_admin']['action']['categoriesSelected'] = ''; } if (isset($_REQUEST['id']) && !empty($_REQUEST['id'])) { $action_id = $_REQUEST['id']; } if (isset($_REQUEST['action_submit'])) { if ($_REQUEST['mode'] == 'up') { $_SESSION['m_admin']['action']['ID'] = functions::wash($action_id, 'no', _ID . ' '); } $_SESSION['m_admin']['action']['LABEL'] = functions::wash($_REQUEST['label'], 'no', _DESC .' ', 'yes', 0, 255); if (empty($_REQUEST['action_page'])) { $_SESSION['m_admin']['action']['ID_STATUS'] = functions::wash($_REQUEST['status'], 'no', _STATUS . ' ', 'yes', 0, 10); } else { $_SESSION['m_admin']['action']['ID_STATUS'] = trim($_REQUEST['status']); } if (empty($_REQUEST['status'])) { $_SESSION['m_admin']['action']['ID_STATUS'] = ' '; $_SESSION['m_admin']['action']['ACTION_PAGE'] = functions::wash($_REQUEST['action_page'], 'no', _ACTION_PAGE . ' ', 'yes', 0, 255); } else { $_SESSION['m_admin']['action']['ACTION_PAGE'] = trim($_REQUEST['action_page']); } $_SESSION['m_admin']['action']['KEYWORD'] = $_REQUEST['keyword']; //$_SESSION['m_admin']['action']['CATEGORY_ID'] = $_REQUEST['category_id']; $_SESSION['m_admin']['action']['categoriesSelected'] = array(); for ($i=0;$i'; } if (!empty($_SESSION['error'])) { if ($mode == 'up') { if (!empty($_SESSION['m_admin']['action']['ID'])) { header('location: ' . $_SESSION['config']['businessappurl'] . 'index.php?page=action_management_controler&mode=up&id=' . $_SESSION['m_admin']['action']['ID'] . '&admin=action' ); exit(); } else { header('location: ' . $_SESSION['config']['businessappurl'] . 'index.php?page=action_management_controler&mode=list' . '&admin=action&order=' . $_REQUEST['order'] . '&order_field=' . $_REQUEST['order_field'] . '&start=' . $_REQUEST['start'] . '&what=' . $_REQUEST['what'] ); exit(); } } elseif ($mode == 'add') { header('location: ' . $_SESSION['config']['businessappurl'] . 'index.php?page=action_management_controler&mode=add' . '&admin=action' ); exit(); } } else { $action_value = array( 'id' => $_SESSION['m_admin']['action']['ID'], 'label_action' => $_SESSION['m_admin']['action']['LABEL'], 'keyword' => $_SESSION['m_admin']['action']['KEYWORD'], 'create_id' => $_SESSION['m_admin']['action']['FLAG_CREATE'], 'history' => $_SESSION['m_admin']['action']['HISTORY'], 'is_folder_action' => $_SESSION['m_admin']['action']['IS_FOLDER_ACTION'], 'action_page' => $_SESSION['m_admin']['action']['ACTION_PAGE'], 'id_status' => $_SESSION['m_admin']['action']['ID_STATUS'], //'category_id' => $_SESSION['m_admin']['action']['CATEGORY_ID'] ); $action = new Action(); $action->setArray($action_value); ActionControler::save($action, $mode); if ($_SESSION['m_admin']['action']['ID'] == "") { ActionControler::saveCategoriesAssociation(ActionControler::getLastActionId($_SESSION['m_admin']['action']['LABEL'])); } else { ActionControler::saveCategoriesAssociation($_SESSION['m_admin']['action']['ID']); } ActionControler::razActionPage(); if ($_SESSION['history']['actionadd'] == 'true' && $mode == 'add') { $db = new Database(); $stmt = $db->query("SELECT id FROM actions ORDER BY id desc limit 1"); $last_insert = $stmt->fetchObject(); require_once('core/class/class_history.php'); $hist = new history(); $hist->add($_SESSION['tablename']['actions'], $last_insert->id, 'ADD', 'actionadd', _ACTION_ADDED . ' : ' . $last_insert->id, $_SESSION['config']['databasetype'] ); } elseif ($_SESSION['history']['actionup'] == 'true' && $mode == 'up') { require_once('core/class/class_history.php'); $hist = new history(); $hist->add($_SESSION['tablename']['actions'], $_SESSION['m_admin']['action']['ID'], 'UP', 'actionup', _ACTION_MODIFIED . ' : ' . $_SESSION['m_admin']['action']['ID'], $_SESSION['config']['databasetype'] ); } unset($_SESSION['m_admin']); if($mode == 'add'){ $_SESSION['info'] = _ACTION_ADDED; } else { $_SESSION['info'] = _ACTION_MODIFIED; } header('location: ' . $_SESSION['config']['businessappurl'] . 'index.php?page=action_management_controler&mode=list' . '&admin=action&order=' . $_REQUEST['order'] . '&order_field=' . $_REQUEST['order_field'] . '&start=' . $_REQUEST['start'] . '&what=' . $_REQUEST['what'] ); } exit(); } $state = true; if ($mode == 'up') { $action = ActionControler::get($action_id); $categories = ActionControler::getAllCategoriesLinkedToAction($action_id); if (!isset($action)) { $state = false; } else { $_SESSION['m_admin']['action']['ID'] = $action->__get('id'); $_SESSION['m_admin']['action']['LABEL'] = functions::show_string($action->__get('label_action')); $_SESSION['m_admin']['action']['ID_STATUS'] = functions::show_string($action->__get('id_status')); $_SESSION['m_admin']['action']['IS_SYSTEM'] = functions::show_string($action->__get('is_system')); $_SESSION['m_admin']['action']['ACTION_PAGE'] = functions::show_string($action->__get('action_page')); $_SESSION['m_admin']['action']['HISTORY'] = functions::show_string($action->__get('history')); $_SESSION['m_admin']['action']['IS_FOLDER_ACTION'] = functions::show_string($action->__get('is_folder_action')); $_SESSION['m_admin']['action']['KEYWORD'] = functions::show_string($action->__get('keyword')); /*$_SESSION['m_admin']['action']['CATEGORY_ID'] = functions::show_string($action->__get('category_id'));*/ $_SESSION['m_admin']['action']['categories'] = $categories; } } elseif ($mode == 'add') { if (!isset($_SESSION['m_admin']['action'])) { init_session(); } } elseif ($mode == 'list') { $_SESSION['m_admin'] = array(); init_session(); $select[$_SESSION['tablename']['actions']] = array(); array_push($select[$_SESSION['tablename']['actions']], 'id', 'label_action', 'is_folder_action ', 'is_system' ); $what = ''; $where = " enabled = 'Y' "; $arrayPDO = array(); if (isset($_REQUEST['what']) && !empty($_REQUEST['what'])) { $what = $_REQUEST['what']; $where .= " and (lower(label_action) like lower(?)) "; $arrayPDO = array($what.'%'); } $order = 'asc'; if (isset($_REQUEST['order']) && !empty($_REQUEST['order'])) { $order = trim($_REQUEST['order']); } $field = 'label_action'; if (isset($_REQUEST['order_field']) && !empty($_REQUEST['order_field'])) { $field = trim($_REQUEST['order_field']); } $orderstr = list_show::define_order($order, $field); $request = new request(); $tab = $request->PDOselect($select, $where, $arrayPDO, $orderstr, $_SESSION['config']['databasetype']); for ($i = 0;$i < count($tab); $i++) { for ($j = 0;$j < count($tab[$i]); $j++) { foreach (array_keys($tab[$i][$j]) as $value) { if ($tab[$i][$j][$value] == 'id') { $load = core_tools::is_action_defined($tab[$i][$j]['value']); $tab[$i][$j]['id'] = $tab[$i][$j]['value']; $tab[$i][$j]['label'] = _ID; $tab[$i][$j]['size'] = '10'; $tab[$i][$j]['label_align'] = 'left'; $tab[$i][$j]['align'] = 'left'; $tab[$i][$j]['valign'] = 'bottom'; $tab[$i][$j]['show'] = true; $tab[$i][$j]['order'] = 'id'; } if ($tab[$i][$j][$value] == 'label_action') { $tab[$i][$j]['value'] = functions::show_string($tab[$i][$j]['value']); $tab[$i][$j]['label_action'] = $tab[$i][$j]['value']; $tab[$i][$j]['label'] = _DESC; $tab[$i][$j]['size'] = '30'; $tab[$i][$j]['label_align'] = 'left'; $tab[$i][$j]['align'] = 'left'; $tab[$i][$j]['valign'] = 'bottom'; $tab[$i][$j]['show'] = true; $tab[$i][$j]['order'] = 'label_action'; } if ($tab[$i][$j][$value] == 'is_system') { if ($tab[$i][$j]['value'] == 'Y') { $tab[$i][$j]['value'] = _YES; array_push($tab[$i], array('column' => 'can_delete', 'value' => 'false', 'can_delete' => 'false', 'label' => _DESC,'show' => false) ); } else { $tab[$i][$j]['value'] = _NO; array_push($tab[$i], array('column' => 'can_delete', 'value' => 'true', 'can_delete' => 'true', 'label' => _DESC,'show' => false) ); } $tab[$i][$j]['is_system'] = $tab[$i][$j]['value']; $tab[$i][$j]['label'] =_IS_SYSTEM; $tab[$i][$j]['size'] = '10'; $tab[$i][$j]['label_align'] = 'left'; $tab[$i][$j]['align'] = 'left'; $tab[$i][$j]['valign'] = 'bottom'; $tab[$i][$j]['show'] = true; $tab[$i][$j]['order'] = 'is_system'; } if (core_tools::is_module_loaded('folder')) { if ($tab[$i][$j][$value] == 'is_folder_action') { ($tab[$i][$j]['value'] == 'Y')? $tab[$i][$j]['value'] = _YES : $tab[$i][$j]['value'] = _NO; $tab[$i][$j]['is_system'] = $tab[$i][$j]['value']; $tab[$i][$j]['label'] =_IS_FOLDER_ACTION; $tab[$i][$j]['size'] = '10'; $tab[$i][$j]['label_align'] = 'left'; $tab[$i][$j]['align'] = 'left'; $tab[$i][$j]['valign'] = 'bottom'; $tab[$i][$j]['show'] = true; $tab[$i][$j]['order'] = 'is_system'; } } } } } $page_name = 'action_management_controler&mode=list'; $page_name_up = 'action_management_controler&mode=up'; $page_name_del = 'action_management_controler&mode=del'; $page_name_val= ''; $page_name_ban = ''; $page_name_add = 'action_management_controler&mode=add'; $label_add = _ADD_ACTION; $_SESSION['m_admin']['init'] = true; $title = _ACTION_LIST . ' : ' . count($tab) . ' ' . _ACTIONS; $autoCompletionArray = array(); $autoCompletionArray['list_script_url'] = $_SESSION['config']['businessappurl'] .'index.php?display=true' . '&admin=action&page=action_list_by_name'; $autoCompletionArray['number_to_begin'] = 1; } elseif ((!isset($action_id) || empty($action_id) || ! ActionControler::actionExists($action_id)) && $mode == 'del' ) { $_SESSION['error'] = _ACTION.' '._UNKNOWN; } elseif ($mode == 'del') { ActionControler::delete($action_id); $_SESSION['info'] = _ACTION_DELETED . ' ' . $action_id; if($_SESSION['history']['actiondel'] == 'true') { require_once('core'.DIRECTORY_SEPARATOR.'class'.DIRECTORY_SEPARATOR.'class_history.php'); $hist = new history(); $hist->add($_SESSION['tablename']['actions'], $action_id, "DEL", 'actiondel', _ACTION_DELETED.' : '.$action_id, $_SESSION['config']['databasetype']); } ?>