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;
 }
示例#2
0
 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;
 }