File manager - Edit - /home/verseaumee/ptitsanes/plugins/solidres/feedback/administrator/components/com_solidres/models/feedbackmodellist.php
Back
<?php /* ------------------------------------------------------------------------ Solidres - Hotel booking extension for Joomla ------------------------------------------------------------------------ @Author Solidres Team @Website http://www.solidres.com @Copyright Copyright (C) 2013 - 2015 Solidres. All Rights Reserved. @License GNU General Public License version 3, or later ------------------------------------------------------------------------ */ defined('_JEXEC') or die; /** * FeedBack model * * @package Solidres * @subpackage FeedBack * @since 0.8.0 */ class SolidresFeedbackModelList extends JModelList { /** * Constructor. * * @param array An optional associative array of configuration settings. * * @see JController * @since 1.6 */ public function __construct($config = array()) { if (empty($config['filter_fields'])) { $config['filter_fields'] = array( 'id', 'a.id', 'reservation_asset_id', 'a.reservation_asset_id', 'customer_id', 'a.customer_id', 'positive', 'a.positive', 'title', 'a.title', 'negative', 'a.negative', 'like_count', 'a.like_count', 'dislike_count', 'a.dislike_count', 'state', 'a.state', 'created_date', 'a.created_date', 'modified_date', 'a.modified_date', 'scope', 'a.scope', 'state', 'target_name', ); } parent::__construct($config); } /** * Method to auto-populate the model state. * * Note. Calling getState in this method will result in recursion. * * @since 1.6 */ protected function populateState($ordering = null, $direction = null) { // Load the filter state. $search = $this->getUserStateFromRequest($this->context . '.filter.search', 'filter_search', '', 'string'); $this->setState('filter.search', $search); $published = $this->getUserStateFromRequest($this->context . '.filter.state', 'filter_state', '', 'string'); $this->setState('filter.state', $published); $assetId = $this->getUserStateFromRequest($this->context . '.filter.reservation_asset_id', 'filter_reservation_asset_id', '', 'string'); $this->setState('filter.reservation_asset_id', $assetId); $expId = $this->getUserStateFromRequest($this->context . '.filter.experience_id', 'filter_experience_id', '', 'string'); $this->setState('filter.experience_id', $expId); // Load the parameters. $params = JComponentHelper::getParams('com_solidres'); $this->setState('params', $params); $scope = $this->getUserStateFromRequest($this->context . '.filter.scope', 'filter_scope', '0', 'uint'); $this->setState('filter.scope', $scope); // List state information. parent::populateState('a.id', 'desc'); } protected function getStoreId($id = '') { $id .= ':' . $this->getState('filter.search'); $id .= ':' . $this->getState('filter.state'); $id .= ':' . $this->getState('filter.reservation_asset_id'); $id .= ':' . $this->getState('filter.experience_id'); $id .= ':' . $this->getState('filter.scope'); return parent::getStoreId($id); } /** * Build an SQL query to load the list data. * * @return JDatabaseQuery * @since 1.6 */ protected function getListQuery() { // Create a new query object. $scope = (int) $this->getState('filter.scope', '0'); if (!SRPlugin::isEnabled('experience')) { $scope = 0; } $db = $this->getDbo(); $query = $db->getQuery(true); $query->select( $this->getState( 'list.select', 'a.id, a3.name AS target_name' ) ); $query->from($db->qn('#__sr_feedbacks', 'a')) ->where('(a.reservation_id > 0 OR a.item_id > 0) AND a.scope = ' . $scope); if ($scope) { $query->leftJoin($db->qn('#__sr_experience_reservations', 'a2') . ' ON a2.id = a.reservation_id') ->leftJoin($db->qn('#__sr_experiences', 'a3') . ' ON a3.id = a2.experience_id'); $expId = $this->getState('filter.experience_id'); if (is_numeric($expId)) { $expId = (int) $expId; $query->where('(a3.id = ' . $expId . ' OR a.item_id = ' . $expId . ')'); } } else { $query->leftJoin($db->qn('#__sr_reservations', 'a2') . ' ON a2.id = a.reservation_id') ->leftJoin($db->qn('#__sr_reservation_assets', 'a3') . ' ON a3.id = a2.reservation_asset_id'); $assetId = $this->getState('filter.reservation_asset_id'); if (is_numeric($assetId)) { $assetId = (int) $assetId; $query->where('(a3.id = ' . $assetId . ' OR a.item_id = ' . $assetId . ')'); } } if (defined('SR_FEEDBACK_ID') && SR_FEEDBACK_ID) { $query->where('a.id = ' . SR_FEEDBACK_ID); return $query; } // Filter by published state $published = $this->getState('filter.state'); if (is_numeric($published)) { $query->where('a.state = ' . (int) $published); } else if ($published === '' && JFactory::getApplication()->getName() == 'administrator') { $query->where('(a.state IN (0, 1))'); } // Filter by search in title $search = $this->getState('filter.search'); if (!empty($search)) { if (stripos($search, 'id:') === 0) { $query->where('a.id = ' . (int) substr($search, 3)); } else { $search = $db->quote('%' . str_replace(' ', '%', $db->escape(trim($search), true) . '%')); $query->where('a.title LIKE ' . $search); } } $query->order($db->escape($this->getState('list.ordering', 'a.id')) . ' ' . $db->escape($this->getState('list.direction', 'DESC'))); return $query; } public function getFilterForm($data = array(), $loadData = true) { if ($form = parent::getFilterForm($data, $loadData)) { $app = JFactory::getApplication(); if ($app->getName() == 'site' && $app->input->getCmd('view') == 'feedbacks') { $form->setFieldAttribute('scope', 'type', 'hidden', 'filter'); } if (SRPlugin::isEnabled('experience')) { $scope = $form->getValue('scope', 'filter'); if ($scope == '0') { $form->removeField('experience_id', 'filter'); } elseif ($scope == '1') { $form->removeField('reservation_asset_id', 'filter'); } else { $form->removeField('experience_id', 'filter'); $form->removeField('reservation_asset_id', 'filter'); } } else { $form->removeField('scope', 'filter'); $form->removeField('experience_id', 'filter'); } } return $form; } public function getItems() { if ($items = parent::getItems()) { $modelItem = JModelLegacy::getInstance('Feedback', 'SolidresModel'); foreach ($items as &$item) { $item = $modelItem->getItem($item->id); } } return $items; } }
| ver. 1.4 |
Github
|
.
| PHP 8.5.7 | Generation time: 0 |
proxy
|
phpinfo
|
Settings