/** * Return an instance of a model that loaded base on configuration * @param mixed $config * @param object $state * @param string $coverage * @return JModelList */ private function getItemModel($config, $state, $coverage) { $path = ''; // Load model file if (!$config['path']) { $path = JPATH_ADMINISTRATOR . '/'; } else { $path = $config['path'] . '/'; } require_once $path . $config['modelfile']; // Load component language $this->language->load($config['language'], JPATH_ADMINISTRATOR); // Create model instance $model = new $config['modelname'](array('state' => $state)); $model->getState('filter.search'); $currentCoverage = $this->app->getUserStateFromRequest('components.selected', 'tab'); if ($currentCoverage == $coverage) { $order = $this->app->getUserStateFromRequest("{$currentCoverage}.{$config['modelname']}.order", 'filter_order', $config['order']); $orderDir = $this->app->getUserStateFromRequest("{$currentCoverage}.{$config['modelname']}.orderDir", 'filter_order_Dir', 'asc'); $state->set('list.ordering', $order); $state->set('list.direction', $orderDir); } $state->set('filter.search', $this->keyword); $state->set('filter.published', 'all'); $state->set('filter.state', 'all'); if (isset($config['filters']) && is_array($config['filters'])) { foreach ($config['filters'] as $key => $value) { $state->set($key, $value); } } return $model; }
/** * @param string $entity */ public function __construct($entity, $init) { $this->app = JFactory::getApplication(); $this->db = JFactory::getDBO(); $option = 'com_acctexp'; $this->filtered = false; $this->limit = $this->app->getUserStateFromRequest("viewlistlimit", 'limit', $this->app->getCfg('list_limit')); $this->limitstart = $this->app->getUserStateFromRequest("viewconf{$option}limitstart", 'limitstart', 0); $this->search = xJ::escape($this->db, trim(strtolower($this->app->getUserStateFromRequest("search{$option}_subscr", 'search', '')))); if (!empty($this->search)) { $this->filtered = true; } $this->filter = new stdClass(); if (!empty($init['filter'])) { foreach ($init['filter'] as $key => $default) { $value = $this->app->getUserStateFromRequest('aec_' . $entity . '_' . $key, $entity . '_' . $key, $default); if (!empty($_REQUEST[$key])) { $value = $_REQUEST[$key]; } if (is_array($default) && !is_array($value)) { $value = array($value); } $this->filter->{$key} = $value; if ($this->filter->{$key} != $default) { $this->filtered = true; } } } if (!empty($init['sort'])) { $this->{$key} = $this->app->getUserStateFromRequest('aec_' . $entity . '_sort', $entity . '_sort', $init['sort']); } if (empty($this->sort)) { $this->sort = 'id ASC'; } }
/** * Gets the value of a user state variable. * * @param string $stateName Unique name of state * @param string $reqName The name of the variable passed in a request. * @param string $default First value if not initialized * @return string State */ function getUserStateFromRequest($stateName, $reqName, $default = null) { return $this->_baseFramework->getUserStateFromRequest($stateName, $reqName, $default); }