/** * checks if the entered searchstring is the default value * * @param string $searchString * @return string Returns the searchstring or an empty string */ public function checkAgainstDefaultValue($searchString) { $searchStringToLower = strtolower(trim($searchString)); $defaultValueToLower = strtolower($this->pObj->pi_getLL('searchbox_default_value')); if ($searchStringToLower === $defaultValueToLower) { $searchString = ''; } return $searchString; }
/** * generate the link for the given sorting value * * @param string $field * @param string $sortByDir * @return string The complete link as A-Tag */ public function generateSortingLink($field, $sortByDir) { $params = array(); $params['sortByField'] = $field; $params['sortByDir'] = $sortByDir; foreach ($params as $key => $value) { $params[$key] = $this->cObj->wrap($value, $this->pObj->prefixId . '[' . $key . ']=|'); } $conf = array(); $conf['parameter'] = $GLOBALS['TSFE']->id; $conf['addQueryString'] = '1'; $conf['addQueryString.']['exclude'] = 'id,tx_kesearch_pi1[multi],cHash'; $conf['additionalParams'] = '&' . implode('&', $params); return $this->cObj->typoLink($this->pObj->pi_getLL('orderlink_' . $field, $field), $conf); }
/** * The main entry point of this class * It will return the complete HTML for textlinks * * @param integer $filterUid uid of the current loopd filter * @param array $optionsOfSearchresult All found options in current search result * @param object $lib * @return string HTML */ public function renderTextlinks($filterUid, $optionsOfSearchresult, $lib) { $filters = $this->pObj->filters->getFilters(); $filter = $filters[$filterUid]; if (!is_array($filter) || count($filter) == 0) { return ''; } // get options $optionsOfFilter = $this->getOptionsOfFilter($filter, $optionsOfSearchresult); if (!is_array($optionsOfFilter) || count($optionsOfFilter) == 0) { return ''; } // alphabetical sorting of filter options if ($filter['alphabeticalsorting'] == 1) { $this->pObj->sortArrayByColumn($optionsOfFilter, 'title'); } $this->maxAllowedNormalOptions = $filter['amount']; if (is_array($this->pObj->piVars['filter'][$filterUid]) && count($this->pObj->piVars['filter'][$filterUid])) { $piVarsOptionList = implode(',', array_keys($this->pObj->piVars['filter'][$filterUid])); $optionsOfFilter = $this->pObj->getFilterOptions($piVarsOptionList); } foreach ($optionsOfFilter as $key => $data) { $this->saveRenderedTextlinkToGlobalArrays($filterUid, $data); } if (is_array($this->contentOfActiveOptions) && count($this->contentOfActiveOptions)) { foreach ($this->contentOfActiveOptions as $option) { $contentOptions .= $option; } } else { foreach ($this->contentOfNormalOptions as $option) { $contentOptions .= $option; } } // modify filter options by hook if (is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['ke_search']['modifyFilterOptions'])) { foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['ke_search']['modifyFilterOptions'] as $_classRef) { $_procObj =& TYPO3\CMS\Core\Utility\GeneralUtility::getUserObj($_classRef); $contentOptions .= $_procObj->modifyFilterOptions($filterUid, $contentOptions, count($optionsOfFilter), $this); } } unset($markerArray); // render filter $contentFilters = $this->cObj->substituteSubpart($this->templateArray['filter'], '###SUB_FILTER_TEXTLINK_OPTION###', $contentOptions); // get title $filterTitle = $filter['title']; $filter['target_pid'] = $filter['target_pid'] ? $filter['target_pid'] : $this->conf['resultPage']; // fill markers $markerArray['###FILTERTITLE###'] = htmlspecialchars($filterTitle); $markerArray['###HIDDEN_FIELDS###'] = implode(CHR(10), $this->contentOfHiddenFields); $exclude = 'tx_kesearch_pi1[page],tx_kesearch_pi1[multi],tx_kesearch_pi1[filter][' . $filterUid . ']'; if ($this->countActiveOptions) { $markerArray['###LINK_MULTISELECT###'] = ''; $markerArray['###LINK_RESET_FILTER###'] = $this->cObj->typoLink($this->pObj->pi_getLL('reset_filter'), array('parameter' => $this->conf['resultPage'], 'addQueryString' => 1, 'addQueryString.' => array('exclude' => $exclude))); } else { // check if there is a special translation for current filter $linkTextMore = $this->pObj->pi_getLL('linktext_more_' . $filterUid, $this->pObj->pi_getLL('linktext_more')); $markerArray['###LINK_MULTISELECT###'] = $this->cObj->typoLink(sprintf($linkTextMore, $filterTitle), array('parameter' => $filter['target_pid'], 'addQueryString' => 1, 'addQueryString.' => array('exclude' => 'id,tx_kesearch_pi1[page],tx_kesearch_pi1[multi]'))); $markerArray['###LINK_RESET_FILTER###'] = ''; } $contentFilters = $this->cObj->substituteMarkerArray($contentFilters, $markerArray); return $contentFilters; }