function processSave($id = 0, $post = null) { //save aclparam and core param in individual columns $id = JRequest::getVar('id', $id); $data = array(); if ($post === null) { $post = JRequest::get('post'); } $model = $this->getModel(); // Get the complete INI string of params $param = new XiptParameter(); $post['coreparams']['core_display_message'] = base64_encode($post['coreparams']['core_display_message']); $param->loadArray($post['coreparams'], 'xipt_coreparams'); $data['coreparams'] = $param->toString('XiptINI', 'xipt_coreparams'); $data['aclname'] = $post['aclname']; $data['rulename'] = $post['rulename']; $data['published'] = $post['published']; $aclObject = XiptAclFactory::getAclObject($data['aclname']); $data['aclparams'] = $aclObject->collectParamsFromPost($post); // Save it // XITODO : clean it if (!($info['id'] = $model->save($data, $id))) { $info['msg'] = XiptText::_('ERROR_IN_SAVING_RULE'); } else { $info['msg'] = XiptText::_('RULE_SAVED'); } return $info; }
/** * Save the configuration to the config file * * @return boolean True on success false on failure. **/ function saveParams($data, $id, $what = 'params') { XiptError::assert($id, XiptText::_("ID {$id} IS_NOT_VALID"), XiptError::ERROR); if (empty($data) || !is_array($data)) { return false; } //We want to handle only JS Configuration from this function //Everything else should be handled by generic parent function if ($what != 'params') { parent::saveParams($data, $id, $what); return; } // XITODO : move this to controller unset($data[JUtility::getToken()]); unset($data['option']); unset($data['task']); unset($data['view']); unset($data['id']); //XITODO : bind params $param = new XiptParameter(); $param->loadArray($data); $params = $param->toString('XiptINI'); return $this->save(array($what => $params), $id); }
function collectParamsFromPost($postdata) { // it is not necessary the each rule will have acl params // so check it, and return empty ini string if not exists if (!isset($postdata['aclparams'])) { return "\n\n"; } $param = new XiptParameter(); $param->loadArray($postdata['aclparams']); return $param->toString('XiptINI'); }
function saveParams($data, $id, $what = '') { XiptError::assert($id, sprintf(XiptText::_("ID_DOES_NOT_EXIST"), $id), XiptError::ERROR); XiptError::assert($what, sprintf(XiptText::_("PARAM_DOES_NOT_EXIST"), $what), XiptError::ERROR); if (empty($data) || !is_array($data)) { return false; } //$xmlPath = XIPT_FRONT_PATH_ASSETS.DS.'xml'.DS. JString::strtolower($this->getName().".$what.xml"); $iniPath = XIPT_FRONT_PATH_ASSETS . DS . 'ini' . DS . JString::strtolower($this->getName() . ".{$what}.ini"); $iniData = JFile::read($iniPath); $param = new XiptParameter(); $param->loadINI($iniData); $param->loadArray($data); $iniData = $param->toString('XiptINI'); return $this->save(array($what => $iniData), $id); }
function _migration460() { $ver = intval(self::getXiptVersion()); //echo $ver; if ($ver > 460) { return false; } echo $ver; $db = JFactory::getDBO(); $query = 'SELECT `id`, `coreparams` FROM `#__xipt_aclrules`'; $db->setQuery($query); $aclrules = $db->loadObjectList(); foreach ($aclrules as $data) { $registry = new XiptParameter(); $registry->loadINI($data->coreparams); $params = $registry->toArray(); $params['core_display_message'] = base64_encode($params['core_display_message']); $registry->loadArray($params); $iniParamData = $registry->toString('XiptINI'); $query = 'UPDATE `#__xipt_aclrules`' . ' SET `coreparams`=' . $db->Quote($iniParamData) . 'WHERE ' . $db->nameQuote('id') . '=' . $db->Quote($data->id) . ''; $db->setQuery($query); $db->query(); } return true; }