protected function getValues() { if ($this->values === null) { $this->values = array(); $field = ezfSolrDocumentFieldBase::generateAttributeFieldName($this->contentClassAttribute, ezfSolrDocumentFieldBase::getClassAttributeType($this->contentClassAttribute, null, 'search')); $facets = array('field' => $field, 'name' => $this->attributes['name'], 'limit' => 500, 'sort' => 'alpha'); $currentParameters = $baseParameters = array_merge(OCClassSearchFormHelper::result()->getBaseParameters(), array('SearchContentClassID' => array($this->contentClassAttribute->attribute('contentclass_id')), 'Facet' => array($facets), 'SearchLimit' => 1)); if (OCClassSearchFormHelper::result()->isFetch()) { $currentParameters = array_merge($currentParameters, OCClassSearchFormHelper::result()->getCurrentParameters()); } $data = OCFacetNavgationHelper::navigationList($baseParameters, $currentParameters, OCClassSearchFormHelper::result()->searchText, OCClassSearchFormHelper::result()->isFetch()); if (isset($data[$this->attributes['name']])) { $this->values = $data[$this->attributes['name']]; // setto i valori attivi e inietto il conto nel nome foreach ($this->values as $index => $value) { $current = (array) $this->attributes['value']; if (in_array($value['query'], $current)) { $this->values[$index]['active'] = true; } $this->values[$index]['query'] = OCFacetNavgationHelper::encodeValue($this->values[$index]['query']); $this->values[$index]['raw_name'] = $value['name']; if (isset($value['count']) && $value['count'] > 0) { $this->values[$index]['name'] = $value['name'] . ' (' . $value['count'] . ')'; $this->values[$index]['count'] = $value['count']; } } } } return $this->values; }
protected function getValues() { if ($this->values === null) { $this->values = array(); //@todo filter per parent_node //$classContent = $this->contentClassAttribute->content(); //$filters = isset( $classContent['default_placement']['node_id'] ) ? array( $classContent['default_placement']['node_id'] ) : array( 1 ); //@todo errore nella definzione del nome del sottoattributo? verifaicare vedi anche in self::buildFetch //$field = ezfSolrDocumentFieldBase::$DocumentFieldName->lookupSchemaName( // ezfSolrDocumentFieldBase::SUBMETA_FIELD_PREFIX . $this->contentClassAttribute->attribute( 'identifier' ) . ezfSolrDocumentFieldBase::SUBATTR_FIELD_SEPARATOR . 'name', // 'string'); $field = ezfSolrDocumentFieldBase::$DocumentFieldName->lookupSchemaName(ezfSolrDocumentFieldBase::SUBATTR_FIELD_PREFIX . $this->contentClassAttribute->attribute('identifier') . ezfSolrDocumentFieldBase::SUBATTR_FIELD_SEPARATOR . 'name' . ezfSolrDocumentFieldBase::SUBATTR_FIELD_SEPARATOR, 'string'); $facets = array('field' => $field, 'name' => $this->attributes['name'], 'limit' => 300, 'sort' => 'alpha'); $currentParameters = $baseParameters = array_merge(OCClassSearchFormHelper::result()->getBaseParameters(), array('SearchContentClassID' => array($this->contentClassAttribute->attribute('contentclass_id')), 'Facet' => array($facets), 'SearchLimit' => 1)); if (OCClassSearchFormHelper::result()->isFetch()) { $currentParameters = array_merge($currentParameters, OCClassSearchFormHelper::result()->getCurrentParameters()); } $data = OCFacetNavgationHelper::navigationList($baseParameters, $currentParameters, OCClassSearchFormHelper::result()->searchText, OCClassSearchFormHelper::result()->isFetch()); if (isset($data[$this->attributes['name']])) { $this->values = $data[$this->attributes['name']]; // setto i valori attivi e inietto il conto nel nome foreach ($this->values as $index => $value) { $current = (array) $this->attributes['value']; if (in_array($value['query'], $current)) { $this->values[$index]['active'] = true; } $this->values[$index]['query'] = OCFacetNavgationHelper::encodeValue($this->values[$index]['query']); $this->values[$index]['raw_name'] = $value['name']; if (isset($value['count']) && $value['count'] > 0) { $this->values[$index]['name'] = $value['name'] . ' (' . $value['count'] . ')'; $this->values[$index]['count'] = $value['count']; } } } } return $this->values; }
/** * @param array $parameters * * @return array */ protected function navigationList($parameters) { return OCFacetNavgationHelper::navigationList($parameters, $this->baseSearchParameters); }