private function createSphinxMatchPhrase($conditionStr) { $partnerId = kCurrentContext::$partner_id ? kCurrentContext::$partner_id : kCurrentContext::$ks_partner_id; if (isset($this->cuePointTypeIn)) { $conditions = array(); $types = explode(',', $this->cuePointTypeIn); foreach ($types as $type) { $prefix = CuePointPlugin::ENTRY_CUE_POINT_INDEX_PREFIX . $partnerId . "_" . $type; $cuePointSubType = $this->getCuePointSubTypeEqual(); if ($cuePointSubType) { $prefix .= " " . CuePointPlugin::ENTRY_CUE_POINT_INDEX_SUB_TYPE . $cuePointSubType; } $postfix = CuePointPlugin::ENTRY_CUE_POINT_INDEX_SUFFIX . $partnerId . "_" . $type; $conditions[] = $prefix . " << " . $conditionStr . " << " . $postfix; } $condition = implode(' | ', $conditions); } else { $condition = CuePointPlugin::PLUGIN_NAME . "_" . $partnerId . " << {$conditionStr} << " . CuePointPlugin::SEARCH_TEXT_SUFFIX; } return '@' . CuePointPlugin::getSearchFieldName(CuePointPlugin::SEARCH_FIELD_DATA) . " " . $condition; }
public static function getCuePointSearchData(entry $entry) { $indexOnEntryTypes = self::getIndexOnEntryTypes(); if (!count($indexOnEntryTypes)) { return; } $dataByType = array(); CuePointPeer::setUseCriteriaFilter(false); $cuePointObjects = CuePointPeer::retrieveByEntryId($entry->getId(), $indexOnEntryTypes); CuePointPeer::setUseCriteriaFilter(true); foreach ($cuePointObjects as $cuePoint) { /* @var $cuePoint CuePoint */ $contributedData = $cuePoint->contributeData(); if (!$contributedData) { continue; } $cuePointType = $cuePoint->getType(); if (!isset($dataByType[$cuePointType])) { $dataByType[$cuePointType] = array(); } $contributedData = self::buildDataToIndexOnEntry($contributedData, $cuePointType, $cuePoint->getPartnerId(), $cuePoint->getId(), $cuePoint->getSubType()); $dataByType[$cuePointType][] = $contributedData; } $data = array(); foreach ($dataByType as $type => $typeData) { $data = array_merge($data, $typeData); } $dataField = CuePointPlugin::getSearchFieldName(CuePointPlugin::SEARCH_FIELD_DATA); $searchValues = array($dataField => CuePointPlugin::PLUGIN_NAME . "_" . $entry->getPartnerId() . ' ' . implode(' ', $data) . ' ' . CuePointPlugin::SEARCH_TEXT_SUFFIX); return $searchValues; }