diff options
| author | Philipp Schüttlöffel <schuettloeffel@zqs.uni-hannover.de> | 2024-09-24 10:53:31 +0200 |
|---|---|---|
| committer | Philipp Schüttlöffel <schuettloeffel@zqs.uni-hannover.de> | 2024-09-24 10:53:31 +0200 |
| commit | 4459dd7917f4d1c34f40bb68f0e991e9c3d53e4c (patch) | |
| tree | 5c07151ae61276d334e88f6309c30d439a85c12e /lib/classes/StudipSemSearch.class.php | |
| parent | da0022e5c1abbf9825ae76debaabdff7e8623bb4 (diff) | |
| parent | 97a188592c679890a25c37ab78463add76a52ff7 (diff) | |
Merge branch 'main' into issue-3911issue-3911
Diffstat (limited to 'lib/classes/StudipSemSearch.class.php')
| -rw-r--r-- | lib/classes/StudipSemSearch.class.php | 191 |
1 files changed, 0 insertions, 191 deletions
diff --git a/lib/classes/StudipSemSearch.class.php b/lib/classes/StudipSemSearch.class.php deleted file mode 100644 index 8932dd1..0000000 --- a/lib/classes/StudipSemSearch.class.php +++ /dev/null @@ -1,191 +0,0 @@ -<?php -# Lifter002: TODO -# Lifter007: TODO -# Lifter003: TODO -# Lifter010: TODO -// +---------------------------------------------------------------------------+ -// This file is part of Stud.IP -// StudipSemSearchForm.class.php -// Class to build search formular and execute search -// -// Copyright (c) 2003 André Noack <noack@data-quest.de> -// +---------------------------------------------------------------------------+ -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or any later version. -// +---------------------------------------------------------------------------+ -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// +---------------------------------------------------------------------------+ - -/** -* Class to build search formular and execute search -* -* -* -* @access public -* @author André Noack <noack@data-quest.de> -* @package DBTools -**/ -class StudipSemSearch { - - var $form; - var $search_result; - var $form_name; - var $sem_tree; - var $range_tree; - var $search_done = false; - var $found_rows = false; - var $search_button_clicked = false; - var $new_search_button_clicked = false; - var $sem_change_button_clicked = false; - var $override_sem = false; - var $attributes_default = ['style' => 'width:100%;']; - var $search_scopes = []; - var $search_ranges = []; - var $search_sem_class = 'all'; - var $visible_only = false; - var $sem_dates; - - function __construct($form_name = "search_sem", $auto_search = true, $visible_only = false, $sem_class = 'all'){ - - $search_fields = ['title' => ['type' => 'text'], - 'sub_title' => ['type' => 'text'], - 'number' => ['type' => 'text'], - 'comment' => ['type' => 'text'], - 'lecturer' => ['type' => 'text'], - 'scope' => ['type' => 'text'], - 'quick_search' => ['type' => 'text'], - 'type' => ['type' => 'select', 'default_value' => 'all', 'max_length' => 35,'options_callback' => [$this, 'getSelectOptions']], - 'sem' => ['type' => 'select', 'default_value' => 'all','options_callback' => [$this, 'getSelectOptions']], - 'category' => ['type' => 'select', 'default_value' => 'all', 'max_length' => 50,'options_callback' => [$this, 'getSelectOptions']], - 'combination' => ['type' => 'select', 'default_value' => 'AND','options_callback' => [$this, 'getSelectOptions']], - 'scope_choose' => ['type' => 'select', 'default_value' => 'root', 'max_length' => 45,'options_callback' => [$this, 'getSelectOptions']], - 'range_choose' => ['type' => 'select', 'default_value' => 'root', 'max_length' => 45,'options_callback' => [$this, 'getSelectOptions']], - 'qs_choose' => ['type' => 'select', - 'default_value' => 'title_lecturer_number', - 'options_callback' => [$this, 'getSelectOptions'] - ] - ]; - $search_buttons = ['do_search' => ['caption' => _("Suchen"), 'info' => _("Suche starten")], - 'sem_change' => ['caption' => _('Auswählen'), 'info' => _("anderes Semester auswählen")], - 'new_search' => ['caption' => _('Neue Suche'), 'info' =>_("Neue Suche starten")]]; - //workaround: Qicksearch ändert den Namen des Eingabefeldes - if (Request::get("search_sem_quick_search_parameter")) { - Request::set('search_sem_quick_search', Request::get("search_sem_quick_search_parameter")); - } - $this->form = new StudipForm($search_fields, $search_buttons, $form_name , false); - $this->form_name = $form_name; - $this->sem_dates = Semester::findAllVisible(); - $this->visible_only = $visible_only; - $this->search_sem_class = $sem_class; - - if($this->form->isClicked('do_search') || ($this->form->isSended() && (!$this->form->isClicked('sem_change') || mb_strlen($this->form->getFormFieldValue('quick_search')) > 2))){ - $this->search_button_clicked = true; - if ($auto_search){ - $this->doSearch(); - $this->search_done = true; - } - } - - $this->new_search_button_clicked = $this->form->isClicked('new_search'); - $this->sem_change_button_clicked = $this->form->isClicked('do_search'); - - } - - function getSearchField($name,$attributes = false,$default = false){ - if (!$attributes){ - $attributes = $this->attributes_default; - } - return $this->form->getFormField($name,$attributes,$default); - } - - function getSelectOptions($caller, $name){ - $options = []; - if ($name == "combination"){ - $options = [['name' =>_("UND"),'value' => 'AND'],['name' => _("ODER"), 'value' => 'OR']]; - } elseif ($name == "sem"){ - $options = [['name' =>_("alle"),'value' => 'all']]; - for ($i = count($this->sem_dates) -1 ; $i >= 0; --$i){ - $options[] = ['name' => $this->sem_dates[$i]['name'], 'value' => $i]; - } - } elseif ($name == "type"){ - $options = [['name' =>_("alle"),'value' => 'all']]; - foreach($GLOBALS['SEM_TYPE'] as $type_key => $type_value){ - if($this->search_sem_class == 'all' || $type_value['class'] == $this->search_sem_class){ - $options[] = ['name' => $type_value['name'] . " (". $GLOBALS['SEM_CLASS'][$type_value['class']]['name'] .")", - 'value' => $type_key]; - } - } - } elseif ($name == "category"){ - $options = [['name' =>_("alle"),'value' => 'all']]; - foreach($GLOBALS['SEM_CLASS'] as $class_key => $class_value){ - $options[] = ['name' => $class_value['name'], - 'value' => $class_key]; - } - } elseif ($name == "scope_choose"){ - if(!is_object($this->sem_tree)){ - $this->sem_tree = TreeAbstract::GetInstance("StudipSemTree", false); - } - $options = [['name' => $this->sem_tree->root_name, 'value' => 'root']]; - for($i = 0; $i < count($this->search_scopes); ++$i){ - $options[] = ['name' => $this->sem_tree->tree_data[$this->search_scopes[$i]]['name'], 'value' => $this->search_scopes[$i]]; - } - } elseif ($name == "range_choose"){ - if(!is_object($this->range_tree)){ - $this->range_tree = TreeAbstract::GetInstance("StudipRangeTree", false); - } - $options = [['name' => $this->range_tree->root_name, 'value' => 'root']]; - for($i = 0; $i < count($this->search_ranges); ++$i){ - $options[] = ['name' => $this->range_tree->tree_data[$this->search_ranges[$i]]['name'], 'value' => $this->search_ranges[$i]]; - } - } elseif ($name == "qs_choose"){ - foreach(StudipSemSearchHelper::GetQuickSearchFields() as $key => $value){ - $options[] = ['name' => $value, 'value' => $key]; - } - } - return $options; - } - - function getFormStart($action = "", $attributes = []) - { - return $this->form->getFormStart($action, $attributes); - } - - function getFormEnd() - { - $ret = ''; - if ($this->search_sem_class != 'all'){ - $ret = $this->form->getHiddenField('category',$this->search_sem_class); - } - return $ret . $this->form->getFormEnd(); - } - - function getHiddenField($name, $value = false){ - return $this->form->getHiddenField($name, $value); - } - - function getSearchButton($attributes = false, $tooltip = false){ - return $this->form->getFormButton('do_search', $attributes); - } - function getNewSearchButton($attributes = false, $tooltip = false){ - return $this->form->getFormButton('new_search', $attributes); - } - function getSemChangeButton($attributes = false, $tooltip = false){ - return $this->form->getFormButton('sem_change', $attributes); - } - - 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; - } -} -?> |
