Beispiel #1
0
 /**
  * Returns the results to a given keyword. To get the results is the
  * job of this routine and it does not even need to come from a database.
  * The results should be an array in the form
  * array (
  *   array($key, $name),
  *   array($key, $name),
  *   ...
  * )
  * where $key is an identifier like user_id and $name is a displayed text
  * that should appear to represent that ID.
  * @param keyword: string
  * @param array $contextual_data an associative array with more variables
  * @param int $limit maximum number of results (default: all)
  * @param int $offset return results starting from this row (default: 0)
  * @return array
  */
 public function getResults($keyword, $contextual_data = array(), $limit = PHP_INT_MAX, $offset = 0)
 {
     $search_helper = new StudipSemSearchHelper();
     $search_helper->setParams(array('quick_search' => $keyword, 'qs_choose' => $contextual_data['search_sem_qs_choose'] ? $contextual_data['search_sem_qs_choose'] : 'all', 'sem' => isset($contextual_data['search_sem_sem']) ? $contextual_data['search_sem_sem'] : 'all', 'category' => $contextual_data['search_sem_category'], 'scope_choose' => $contextual_data['search_sem_scope_choose'], 'range_choose' => $contextual_data['search_sem_range_choose']), !(is_object($GLOBALS['perm']) && $GLOBALS['perm']->have_perm(Config::Get()->SEM_VISIBILITY_PERM)));
     $search_helper->doSearch();
     $result = $search_helper->getSearchResultAsArray();
     if (empty($result)) {
         return array();
     }
     $style = $this->styles[$this->resultstyle] ?: $this->styles['name'];
     $query = "SELECT s.Seminar_id, {$style}, Name\n                   FROM seminare AS s\n                   LEFT JOIN seminar_user AS su ON (su.Seminar_id = s.Seminar_id AND su.status='dozent')\n                   LEFT JOIN auth_user_md5 USING (user_id)\n                   WHERE s.Seminar_id IN (?)\n                   GROUP BY s.Seminar_id";
     if (Config::get()->IMPORTANT_SEMNUMBER) {
         $query .= " ORDER BY s.VeranstaltungsNummer, s.Name";
     } else {
         $query .= " ORDER BY s.Name";
     }
     $statement = DBManager::get()->prepare($query);
     $statement->execute(array(array_slice($result, $offset, $limit) ?: ''));
     return $statement->fetchAll(PDO::FETCH_NUM);
 }
 function getContentSimpleSearch()
 {
     $select_qs = '<select name="ext_templatesembrowse[qs_choose]" id="ext_templatesembrowse_qs_choose">';
     foreach (StudipSemSearchHelper::GetQuickSearchFields() as $key => $value) {
         if ($this->sem_browse_data['qs_choose'] == $key) {
             $select_qs .= "<option value=\"{$key}\" selected=\"selected\">{$value}</option>";
         } else {
             $select_qs .= "<option value=\"{$key}\">{$value}</option>";
         }
     }
     $select_qs .= '</select>';
     $content['SEARCH_FORM'] = array('SELECT_FIELD' => $select_qs, 'SELECT_SEMESTER' => $this->getSelectSem(), 'INPUT_SEARCH_TERM' => '<input type="text" name="ext_templatesembrowse[quick_search]" id="ext_templatesembrowse_quick_search" value="' . ExternModule::ExtHtmlReady($this->sem_browse_data['quick_search'] ? $this->sem_browse_data['quick_search'] : '') . '" size="' . $this->config->getValue('Main', 'sizeinput') . '" maxlength="50">', 'SEARCHFORM_ACTION' => $this->getLinkToSelf(array('start_item_id' => $this->sem_browse_data['start_item_id'], 'do_search' => '1'), true, 'LinkInternSearchForm'), 'SEARCHFORM_ACTION_SELECT_SEM' => $this->getLinkToSelf(array('start_item_id' => $this->sem_browse_data['start_item_id'], 'do_search' => '0', 'show_result' => '1'), true, 'LinkInternSearchForm'), 'HREF_RESET_SEARCH' => $this->getLinkToSelf(array('start_item_id' => $this->getRootStartItemId())));
     return $content;
 }
Beispiel #3
0
 function doSearch()
 {
     $search_helper = new StudipSemSearchHelper($this->form, $this->visible_only);
     $this->found_rows = $search_helper->doSearch();
     $this->search_result = $search_helper->getSearchResultAsSnapshot();
     return $this->found_rows;
 }