Пример #1
0
 /**
  * Method to index an item. The item must be a FinderIndexerResult object.
  *
  * @param	object		The item to index as an FinderIndexerResult object.
  * @throws	Exception on database error.
  */
 protected function _index(FinderIndexerResult $item)
 {
     // Build the necessary route and path information.
     $item->url = $this->_getURL($item->topic);
     $item->itemid = '100065';
     $item->route = $item->url . '&post=' . $item->id . '&Itemid=' . $item->itemid . '#p' . $item->id;
     $item->path = FinderIndexerHelper::getContentPath($item->route);
     // Add the meta-data processing instructions.
     $item->addInstruction(FinderIndexer::META_CONTEXT, 'display_name');
     // Strip slashes!
     $item->title = stripslashes($item->title);
     $item->summary = stripslashes($item->summary);
     $item->display_name = stripslashes($item->display_name);
     $item->text = FinderIndexerHelper::prepareContent($item->summary);
     // Translate the access group to an access level.
     //$item->cat_access = $this->_getAccessLevel($item->cat_access);
     // Inherit state and access form the category.
     $item->state = 1;
     $item->access = 0;
     // Set the language.
     $item->language = FinderIndexerHelper::getDefaultLanguage();
     // Add the type taxonomy data.
     $item->addTaxonomy('Type', 'Forum Post');
     // Add the author taxonomy data.
     if (!empty($item->author)) {
         $item->addTaxonomy('Forum User', $item->display_name);
     }
     // Index the item.
     FinderIndexer::index($item);
 }
Пример #2
0
Файл: query.php Проект: 01J/topm
 /**
  * Method to instantiate the query object.
  *
  * @param   array  $options  An array of query options.
  *
  * @since   2.5
  * @throws  Exception on database error.
  */
 public function __construct($options)
 {
     // Get the input string.
     $this->input = isset($options['input']) ? $options['input'] : null;
     // Get the empty query setting.
     $this->empty = isset($options['empty']) ? (bool) $options['empty'] : false;
     // Get the input language.
     $this->language = !empty($options['language']) ? $options['language'] : FinderIndexerHelper::getDefaultLanguage();
     $this->language = FinderIndexerHelper::getPrimaryLanguage($this->language);
     // Get the matching mode.
     $this->mode = 'AND';
     // Initialize the temporary date storage.
     $this->dates = new JRegistry();
     // Populate the temporary date storage.
     if (isset($options['date1']) && !empty($options['date1'])) {
         $this->dates->set('date1', $options['date1']);
     }
     if (isset($options['date2']) && !empty($options['date1'])) {
         $this->dates->set('date2', $options['date2']);
     }
     if (isset($options['when1']) && !empty($options['date1'])) {
         $this->dates->set('when1', $options['when1']);
     }
     if (isset($options['when2']) && !empty($options['date1'])) {
         $this->dates->set('when2', $options['when2']);
     }
     // Process the static taxonomy filters.
     if (isset($options['filter']) && !empty($options['filter'])) {
         $this->processStaticTaxonomy($options['filter']);
     }
     // Process the dynamic taxonomy filters.
     if (isset($options['filters']) && !empty($options['filters'])) {
         $this->processDynamicTaxonomy($options['filters']);
     }
     // Get the date filters.
     $d1 = $this->dates->get('date1');
     $d2 = $this->dates->get('date2');
     $w1 = $this->dates->get('when1');
     $w2 = $this->dates->get('when2');
     // Process the date filters.
     if (!empty($d1) || !empty($d2)) {
         $this->processDates($d1, $d2, $w1, $w2);
     }
     // Process the input string.
     $this->processString($this->input, $this->language, $this->mode);
     // Get the number of matching terms.
     foreach ($this->included as $token) {
         $this->terms += count($token->matches);
     }
     // Remove the temporary date storage.
     unset($this->dates);
     /*
      * Lastly, determine whether this query can return a result set.
      */
     // Check if we have a query string.
     if (!empty($this->input)) {
         $this->search = true;
     } elseif ($this->empty && (!empty($this->filter) || !empty($this->filters) || !empty($this->date1) || !empty($this->date2))) {
         $this->search = true;
     } else {
         $this->search = false;
     }
 }
Пример #3
0
 /**
  * Method to auto-populate the model state.  Calling getState in this method will result in recursion.
  *
  * @param   string  $ordering   An optional ordering field.
  * @param   string  $direction  An optional direction (asc|desc).
  *
  * @return  void
  *
  * @since   2.5
  */
 protected function populateState($ordering = null, $direction = null)
 {
     // Get the configuration options.
     $app = JFactory::getApplication();
     $input = $app->input;
     $params = JComponentHelper::getParams('com_finder');
     $user = JFactory::getUser();
     // Get the query input.
     $this->setState('input', $input->request->get('q', '', 'string'));
     // Set the query language
     if (JLanguageMultilang::isEnabled()) {
         $lang = JFactory::getLanguage()->getTag();
     } else {
         $lang = FinderIndexerHelper::getDefaultLanguage();
     }
     $lang = FinderIndexerHelper::getPrimaryLanguage($lang);
     $this->setState('language', $lang);
     // Load the list state.
     $this->setState('list.start', 0);
     $this->setState('list.limit', 10);
     // Load the parameters.
     $this->setState('params', $params);
     // Load the user state.
     $this->setState('user.id', (int) $user->get('id'));
 }
 /**
  * Tests the getDefaultLanguage method
  *
  * @return  void
  *
  * @since   3.0
  */
 public function testGetDefaultLanguage()
 {
     $this->assertThat(FinderIndexerHelper::getDefaultLanguage(), $this->StringContains('en-GB'), 'The default language is en-GB');
 }
 /**
  * Tests the getDefaultLanguage method
  *
  * @return  void
  *
  * @since   3.0
  */
 public function testGetDefaultLanguage()
 {
     $this->assertEquals('en-GB', FinderIndexerHelper::getDefaultLanguage(), 'The default language is en-GB');
 }