protected function getBounds($includeCurrentParameters = false) { $start = $end = false; $sortField = ezfSolrDocumentFieldBase::getFieldName($this->contentClassAttribute, null, 'sort'); $currentParameters = array(); if ($includeCurrentParameters) { $currentParameters = OCClassSearchFormHelper::result()->getCurrentParameters(); } $fieldName = ezfSolrDocumentFieldBase::getFieldName($this->contentClassAttribute, null, 'search'); $params = array_merge(OCClassSearchFormHelper::result()->getBaseParameters(), $currentParameters, array('SearchContentClassID' => $this->contentClassAttribute->attribute('contentclass_id'), 'SearchLimit' => 1, 'SortBy' => array($sortField => 'asc'))); $startSearch = OCFacetNavgationHelper::fetch($params, OCClassSearchFormHelper::result()->searchText); /** @var $startSearchResults eZFindResultNode[] */ $startSearchResults = $startSearch['SearchResult']; if (isset($startSearchResults[0])) { $dataMap = $startSearchResults[0]->attribute('object')->attribute('data_map'); $start = $dataMap[$this->contentClassAttribute->attribute('identifier')]; } $params['SortBy'] = array($sortField => 'desc'); $endSearch = OCFacetNavgationHelper::fetch($params, OCClassSearchFormHelper::result()->searchText); /** @var $endSearchResults eZFindResultNode[] */ $endSearchResults = $endSearch['SearchResult']; if (isset($endSearchResults[0])) { $dataMap = $endSearchResults[0]->attribute('object')->attribute('data_map'); $end = $dataMap[$this->contentClassAttribute->attribute('identifier')]; } $className = $this->getBoundsClassName(); /** @var OCClassSearchFormFieldBoundsInterface $bounds */ $bounds = new $className(); $bounds->setStart($start); $bounds->setEnd($end); return $bounds; }
protected function getBounds($includeCurrentParameters = false) { $startTimestamp = $endTimestamp = 0; $currentParameters = array(); if ($includeCurrentParameters) { $currentParameters = OCClassSearchFormHelper::result()->getCurrentParameters(); } $params = array_merge(OCClassSearchFormHelper::result()->getBaseParameters(), $currentParameters, array('SearchContentClassID' => $this->currentClassId !== null ? array($this->currentClassId) : null, 'SearchLimit' => 1, 'SortBy' => array('published' => 'asc'))); $startSearch = OCFacetNavgationHelper::fetch($params, OCClassSearchFormHelper::result()->searchText); if (isset($startSearch['SearchResult'][0])) { $startTimestamp = $startSearch['SearchResult'][0]->attribute('object')->attribute('published'); } $params['SortBy'] = array('published' => 'desc'); $endSearch = OCFacetNavgationHelper::fetch($params, OCClassSearchFormHelper::result()->searchText); if (isset($endSearch['SearchResult'][0])) { $endTimestamp = $endSearch['SearchResult'][0]->attribute('object')->attribute('published'); } $data = new OCClassSearchFormPublishedFieldBounds(); $data->setStart($startTimestamp); $data->setEnd($endTimestamp); return $data; }
protected function fetch() { if (self::$_result == null) { if ($this->isFetch()) { $params = OCFacetNavgationHelper::map(array_merge($this->baseParameters, $this->currentParameters)); self::$_result = OCFacetNavgationHelper::fetch($params, $this->searchText); if (self::$_result['SearchCount'] == 0) { eZDebug::writeNotice($params); eZDebug::writeNotice(self::$_result['SearchExtras']); } } else { self::$_result = false; } } return self::$_result; }