private function _executeSearch(sfWebRequest $request) { if ($q = $request->getParameter('q')) { $query = sfSympalSearch::getInstance()->getDoctrineSearchQuery('sfSympalContent', $q); $this->dataGrid = sfSympalDataGrid::create($query)->addColumn('a.title', 'renderer=sympal_search/title label=Search Result'); $this->getResponse()->setTitle(__('Sympal Search / ') . $q); } else { $this->getResponse()->setTitle(__('Sympal Search')); } }
/** * @see sfTask */ protected function execute($arguments = array(), $options = array()) { $databaseManager = new sfDatabaseManager($this->configuration); if ($this->configuration instanceof sfApplicationConfiguration && !$options['all']) { $this->sites = Doctrine_Core::getTable('sfSympalSite')->createQuery('s')->where('s.slug = ?', sfConfig::get('sf_app'))->execute(); } else { $this->sites = Doctrine_Core::getTable('sfSympalSite')->createQuery('s')->execute(); } foreach ($this->sites as $site) { $this->logSection('sympal', sprintf('Indexing models for site "%s"', sfConfig::get('sf_app'))); $search = sfSympalSearch::getInstance(); $models = sfSympalConfig::getSearchableModels(); foreach ($models as $model) { $records = Doctrine_Core::getTable($model)->findAll(); $this->logBlock(sprintf('Indexing "%s"', $model), 'INFO'); foreach ($records as $record) { $this->logBlock(sprintf('...%s (%s)', $record->getId(), (string) $record), 'COMMENT'); $search->updateSearchIndex($record); } } } }
public function save(Doctrine_Connection $conn = null) { $result = parent::save($conn); // When a slot is saved and we have some content set lets update the search index if ($this->_contentRenderedFor) { sfSympalSearch::getInstance()->updateSearchIndex($this->_contentRenderedFor); } return $result; }
public function delete(Doctrine_Connection $conn = null) { if ($this->_updateSearchIndex) { $index = sfSympalSearch::getInstance()->getIndex(); foreach ($index->find('pk:' . $this->getId()) as $hit) { $index->delete($hit->id); } } return parent::delete($conn); }
public function getSearchQuery($query) { return sfSympalSearch::getInstance()->getDoctrineSearchQuery($this->getOption('name'), $query); }
public function delete(Doctrine_Connection $conn = null) { if ($this->_updateSearchIndex) { $index = sfSympalSearch::getInstance()->getIndex(); foreach ($index->find('pk:' . $this->getId()) as $hit) { $index->delete($hit->id); } } // delete content from accociated content type table Doctrine_Core::getTable($this->getType()->getName())->findOneByContentId($this->getId())->delete(); return parent::delete($conn); }