public static function fetchSymptomsLetters($related_infos = false) { if ( is_null(self::$_symptomsLetters) ) { $field = 'attr_custom_symptom_'.ClusterTool::clusterIdentifier().'_s'; $params = array( 'indent' => 'on', 'q' => '', 'start' => 0, 'rows' => 0, 'fl' => 'score', 'qt' => 'ezpublish', 'explainOther' => '', 'hl.fl' => '', 'facet' => 'true', 'facet.field' => $field, 'facet.mincount' => 1 ); $solrResult = self::rawSearch($params); $translations = FacetFilteringTool::getTaxonomyTranslation( 'symptom' ); $letters = array(); foreach( $solrResult['facet_counts']['facet_fields'][$field] as $key => $v) { list( $letter, $symptomLabel, $url ) = explode('##', $key); if( !isset($letters[$letter]) ) $letters[$letter] = array(); $letters[$letter][$symptomLabel] = $url; } ksort($letters); foreach ( $letters as $letter => $symptoms) { uksort($symptoms, function($a, $b) { return strcmp(StringTool::CJK2Pinyin($a), StringTool::CJK2Pinyin($b)); }); $letters[$letter] = $symptoms; } self::$_symptomsLetters = $letters; } return array( 'result' => self::$_symptomsLetters ); }