/** * @param SearchIndexWord $searchIndexWord The searchIndexWord object to add. */ protected function doAddSearchIndexWord($searchIndexWord) { $this->collSearchIndexWords[] = $searchIndexWord; $searchIndexWord->setSearchIndex($this); }
/** * Filter the query by a related SearchIndexWord object * * @param SearchIndexWord|PropelObjectCollection $searchIndexWord the related object to use as filter * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL * * @return SearchIndexQuery The current query, for fluid interface * @throws PropelException - if the provided filter is invalid. */ public function filterBySearchIndexWord($searchIndexWord, $comparison = null) { if ($searchIndexWord instanceof SearchIndexWord) { return $this->addUsingAlias(SearchIndexPeer::ID, $searchIndexWord->getSearchIndexId(), $comparison); } elseif ($searchIndexWord instanceof PropelObjectCollection) { return $this->useSearchIndexWordQuery()->filterByPrimaryKeys($searchIndexWord->getPrimaryKeys())->endUse(); } else { throw new PropelException('filterBySearchIndexWord() only accepts arguments of type SearchIndexWord or PropelCollection'); } }
/** * Exclude object from result * * @param SearchIndexWord $searchIndexWord Object to remove from the list of results * * @return SearchIndexWordQuery The current query, for fluid interface */ public function prune($searchIndexWord = null) { if ($searchIndexWord) { $this->addCond('pruneCond0', $this->getAliasedColName(SearchIndexWordPeer::SEARCH_INDEX_ID), $searchIndexWord->getSearchIndexId(), Criteria::NOT_EQUAL); $this->addCond('pruneCond1', $this->getAliasedColName(SearchIndexWordPeer::WORD), $searchIndexWord->getWord(), Criteria::NOT_EQUAL); $this->combine(array('pruneCond0', 'pruneCond1'), Criteria::LOGICAL_OR); } return $this; }
private function index(array $aPath) { $oNavigationItem = $this->oRootNavigationItem; PageNavigationItem::clearCache(); while (count($aPath) > 0) { $oNavigationItem = $oNavigationItem->namedChild(array_shift($aPath), $this->sLanguageId, true, true); } FilterModule::getFilters()->handleNavigationPathFound($this->oRootNavigationItem, $oNavigationItem); FrontendManager::$CURRENT_NAVIGATION_ITEM = $oNavigationItem; $oPageNavigationItem = $oNavigationItem; while (!$oPageNavigationItem instanceof PageNavigationItem) { $oPageNavigationItem = $oPageNavigationItem->getParent(); } FrontendManager::$CURRENT_PAGE = $oPageNavigationItem->getMe(); $oPage = FrontendManager::$CURRENT_PAGE; $bIsNotFound = false; FilterModule::getFilters()->handlePageHasBeenSet($oPage, $bIsNotFound, $oNavigationItem); FilterModule::getFilters()->handleRequestStarted(); FilterModule::getFilters()->handlePageNotFoundDetectionComplete($bIsNotFound, $oPage, $oNavigationItem, array(&$bIsNotFound)); if ($bIsNotFound) { return false; } $sDescription = $oNavigationItem->getDescription($this->sLanguageId); if ($sDescription === null) { $sDescription = $oPage->getDescription($this->sLanguageId); } $aKeywords = array(); foreach ($oPage->getConsolidatedKeywords($this->sLanguageId, true) as $sKeyword) { $aKeywords = array_merge($aKeywords, StringUtil::getWords($sKeyword)); } $sTitle = $oNavigationItem->getTitle($this->sLanguageId); $sLinkText = $oNavigationItem->getLinkText($this->sLanguageId); if (!$sLinkText) { $sLinkText = $sTitle; } $sName = $oNavigationItem->getName(); // Page type can prevent indexing if (!self::doIndex($oPage->getPageType(), $oNavigationItem)) { return false; } $oPageType = PageTypeModule::getModuleInstance($oPage->getPageType(), $oPage, $oNavigationItem); $aWords = $oPageType->getWords(); $aWords = array_merge($aWords, StringUtil::getWords($sDescription), $aKeywords, StringUtil::getWords($sTitle), StringUtil::getWords($sLinkText), array($sName)); $aPagePath = $oPage->getLink(); $aNavigationItemPath = $oNavigationItem->getLink(); $sPath = implode('/', array_diff($aNavigationItemPath, $aPagePath)); $oSearchIndex = new SearchIndex(); $oSearchIndex->setPageId($oPage->getId()); $oSearchIndex->setPath($sPath); $oSearchIndex->setLinkText($sLinkText); $oSearchIndex->setPageTitle($sTitle); $oSearchIndex->setLanguageId($this->sLanguageId); $oSearchIndex->save(); foreach ($aWords as $sWord) { $sWord = Synonyms::rootFor($sWord, $this->sLanguageId); $oSearchIndexWord = SearchIndexWordQuery::create()->filterBySearchIndex($oSearchIndex)->filterByWord($sWord)->findOne(); if ($oSearchIndexWord === null) { $oSearchIndexWord = new SearchIndexWord(); $oSearchIndexWord->setSearchIndex($oSearchIndex); $oSearchIndexWord->setWord($sWord); } else { $oSearchIndexWord->incrementCount(); } $oSearchIndexWord->save(); } return true; }
/** * Adds an object to the instance pool. * * Propel keeps cached copies of objects in an instance pool when they are retrieved * from the database. In some cases -- especially when you override doSelect*() * methods in your stub classes -- you may need to explicitly add objects * to the cache in order to ensure that the same objects are always returned by doSelect*() * and retrieveByPK*() calls. * * @param SearchIndexWord $obj A SearchIndexWord object. * @param string $key (optional) key to use for instance map (for performance boost if key was already calculated externally). */ public static function addInstanceToPool($obj, $key = null) { if (Propel::isInstancePoolingEnabled()) { if ($key === null) { $key = serialize(array((string) $obj->getSearchIndexId(), (string) $obj->getWord())); } // if key === null SearchIndexWordPeer::$instances[$key] = $obj; } }