24include_once 
'./Services/Search/classes/class.ilSearchSettings.php';
 
   25include_once 
'./Services/Search/classes/class.ilSearchBaseGUI.php';
 
   26include_once 
'./Services/Search/classes/Lucene/class.ilLuceneAdvancedSearchFields.php';
 
   27include_once 
'./Services/PersonalDesktop/interfaces/interface.ilDesktopItemHandling.php';
 
   28include_once 
'./Services/Administration/interfaces/interface.ilAdministrationCommandHandling.php';
 
   58        parent::__construct();
 
   73        $ilBench->start(
'Lucene', 
'0900_executeCommand');
 
   74        $next_class = $this->ctrl->getNextClass($this);
 
   75        $cmd = $this->ctrl->getCmd();
 
   78        switch ($next_class) {
 
   79            case "ilpropertyformgui":
 
   84                $ilCtrl->setReturn($this, 
'storeRoot');
 
   88            case 'ilobjectcopygui':
 
   89                $this->ctrl->setReturn($this, 
'');
 
   90                include_once 
'./Services/Object/classes/class.ilObjectCopyGUI.php';
 
   92                $this->ctrl->forwardCommand($cp);
 
   98                    $cmd = 
"showSavedResults";
 
  103        $ilBench->stop(
'Lucene', 
'0900_executeCommand');
 
  112        parent::prepareOutput();
 
  124        if (count($this->search_cache)) {
 
  137        return (array) $this->search_cache->getItemFilter();
 
  147        return (array) $this->search_cache->getMimeFilter();
 
  157        include_once 
'./Services/Search/classes/Lucene/class.ilLuceneQueryParser.php';
 
  159        $qp->parseAutoWildcard();
 
  163        $this->search_cache->setRoot((
int) 
$_POST[
'root_id']);
 
  165        $this->search_cache->save();
 
  181        if (!strlen($this->search_cache->getQuery())) {
 
  186        include_once 
'./Services/Search/classes/Lucene/class.ilLuceneSearcher.php';
 
  187        include_once 
'./Services/Search/classes/Lucene/class.ilLuceneQueryParser.php';
 
  194        include_once 
'./Services/Search/classes/Lucene/class.ilLuceneSearchResultFilter.php';
 
  196        $filter->loadFromDb();
 
  199        $searcher->highlight($filter->getResultObjIds());
 
  201        include_once 
'./Services/Search/classes/class.ilSearchResultPresentation.php';
 
  203        $presentation->setResults($filter->getResultIds());
 
  205        $presentation->setSearcher($searcher);
 
  208        $this->
addPager($filter, 
'max_page');
 
  210        $presentation->setPreviousNext($this->prev_link, $this->next_link);
 
  214        if ($presentation->render()) {
 
  215            $this->tpl->setVariable(
'SEARCH_RESULTS', $presentation->getHTML(
true));
 
  216        } elseif (strlen($this->search_cache->getQuery())) {
 
  217            ilUtil::sendInfo(sprintf($this->lng->txt(
'search_no_match_hint'), $qp->getQuery()));
 
  227        if (!$this->form->checkInput()) {
 
  228            $this->search_cache->deleteCachedEntries();
 
  230            include_once 
'./Services/Object/classes/class.ilSubItemListGUI.php';
 
  237        $this->search_cache->deleteCachedEntries();
 
  240        include_once 
'./Services/Object/classes/class.ilSubItemListGUI.php';
 
  261            foreach ((array) $this->search_cache->getItemFilter() as $obj => $value) {
 
  262                if (!$filter_query) {
 
  263                    $filter_query .= 
'+( ';
 
  265                    $filter_query .= 
'OR';
 
  267                $filter_query .= (
' ' . (string) $filter_settings[$obj][
'filter'] . 
' ');
 
  269            $filter_query .= 
') ';
 
  275            foreach ($this->search_cache->getMimeFilter() as $mime => $value) {
 
  277                    $mime_query .= 
'+( ';
 
  281                $mime_query .= (
' ' . (string) $filter_settings[$mime][
'filter'] . 
' ');
 
  291        $filter_query = $filter_query . 
' ' . $mime_query . 
' ' . $cdate_query;
 
  293        include_once 
'./Services/Search/classes/Lucene/class.ilLuceneSearcher.php';
 
  294        include_once 
'./Services/Search/classes/Lucene/class.ilLuceneQueryParser.php';
 
  296        $query = $this->search_cache->getQuery();
 
  306        include_once 
'./Services/Search/classes/Lucene/class.ilLuceneSearchResultFilter.php';
 
  307        include_once 
'./Services/Search/classes/Lucene/class.ilLucenePathFilter.php';
 
  310        $filter->setCandidates($searcher->getResult());
 
  313        if ($filter->getResultObjIds()) {
 
  314            $searcher->highlight($filter->getResultObjIds());
 
  320        include_once 
'./Services/Search/classes/class.ilSearchResultPresentation.php';
 
  322        $presentation->setResults($filter->getResultIds());
 
  323        $presentation->setSearcher($searcher);
 
  326        $ilBench->start(
'Lucene', 
'1500_fo');
 
  327        $this->
addPager($filter, 
'max_page');
 
  328        $ilBench->stop(
'Lucene', 
'1500_fo');
 
  330        $presentation->setPreviousNext($this->prev_link, $this->next_link);
 
  332        if ($presentation->render()) {
 
  333            $this->tpl->setVariable(
'SEARCH_RESULTS', $presentation->getHTML(
true));
 
  335            ilUtil::sendInfo(sprintf($this->lng->txt(
'search_no_match_hint'), $this->search_cache->getQuery()));
 
  346        $this->root_node = 
$form->getItemByPostVar(
'area')->getValue();
 
  347        $this->search_cache->setRoot($this->root_node);
 
  348        $this->search_cache->save();
 
  349        $this->search_cache->deleteCachedEntries();
 
  351        include_once 
'./Services/Object/classes/class.ilSubItemListGUI.php';
 
  364        $ilHelp = 
$DIC[
'ilHelp'];
 
  366        $ilHelp->setScreenIdComponent(
"src_luc");
 
  368        $this->tabs_gui->addTarget(
'search', $this->ctrl->getLinkTarget($this));
 
  371            $this->tabs_gui->addTarget(
'search_user', $this->ctrl->getLinkTargetByClass(
'illuceneusersearchgui'));
 
  375            $this->tabs_gui->addTarget(
'search_advanced', $this->ctrl->getLinkTargetByClass(
'illuceneAdvancedSearchgui'));
 
  378        $this->tabs_gui->setTabActive(
'search');
 
  393        include_once(
'Services/Search/classes/class.ilUserSearchCache.php');
 
  396        if ((
int) 
$_GET[
'page_number']) {
 
  397            $this->search_cache->setResultPageNumber((
int) 
$_GET[
'page_number']);
 
  399        if (isset(
$_POST[
'term'])) {
 
  401            if (
$_POST[
'item_filter_enabled']) {
 
  405                        $filtered[
$type] = 1;
 
  408                $this->search_cache->setItemFilter($filtered);
 
  417                $this->search_cache->setMimeFilter($mime);
 
  420            if (!
$_POST[
'item_filter_enabled']) {
 
  422                $this->search_cache->setItemFilter(array());
 
  423                $this->search_cache->setMimeFilter(array());
 
  425            if (!
$_POST[
'screation']) {
 
  426                $this->search_cache->setCreationFilter(array());
 
  442        $adm_view_cmp = $adm_cmds = $creation_selector = $adm_view = 
false;
 
  445        if ((count((array) $this->admin_panel_commands) > 0)) {
 
  446            foreach ($this->admin_panel_commands as $cmd) {
 
  447                $this->tpl->setCurrentBlock(
"lucene_admin_panel_cmd");
 
  448                $this->tpl->setVariable(
"LUCENE_PANEL_CMD", $cmd[
"cmd"]);
 
  449                $this->tpl->setVariable(
"LUCENE_TXT_PANEL_CMD", $cmd[
"txt"]);
 
  450                $this->tpl->parseCurrentBlock();
 
  456            $this->tpl->setCurrentBlock(
"lucene_adm_view_components");
 
  458            $this->tpl->setVariable(
"LUCENE_ADM_ALT_ARROW", 
$lng->txt(
"actions"));
 
  459            $this->tpl->parseCurrentBlock();
 
  460            $adm_view_cmp = 
true;
 
  464        if (is_array($this->admin_view_button)) {
 
  465            if (is_array($this->admin_view_button)) {
 
  466                $this->tpl->setCurrentBlock(
"lucene_admin_button");
 
  467                $this->tpl->setVariable(
 
  468                    "LUCENE_ADMIN_MODE_LINK",
 
  469                    $this->admin_view_button[
"link"]
 
  471                $this->tpl->setVariable(
 
  472                    "LUCENE_TXT_ADMIN_MODE",
 
  473                    $this->admin_view_button[
"txt"]
 
  475                $this->tpl->parseCurrentBlock();
 
  477            $this->tpl->setCurrentBlock(
"lucene_admin_view");
 
  478            $this->tpl->parseCurrentBlock();
 
  483        if (is_array($this->creation_selector)) {
 
  484            $this->tpl->setCurrentBlock(
"lucene_add_commands");
 
  486                $this->tpl->setVariable(
"LUCENE_ADD_COM_WIDTH", 
'width="1"');
 
  488            $this->tpl->setVariable(
 
  489                "LUCENE_SELECT_OBJTYPE_REPOS",
 
  490                $this->creation_selector[
"options"]
 
  492            $this->tpl->setVariable(
 
  493                "LUCENE_BTN_NAME_REPOS",
 
  494                $this->creation_selector[
"command"]
 
  496            $this->tpl->setVariable(
 
  497                "LUCENE_TXT_ADD_REPOS",
 
  498                $this->creation_selector[
"txt"]
 
  500            $this->tpl->parseCurrentBlock();
 
  501            $creation_selector = 
true;
 
  503        if ($adm_view || $creation_selector) {
 
  504            $this->tpl->setCurrentBlock(
"lucene_adm_panel");
 
  506                $this->tpl->setVariable(
"LUCENE_ADM_TBL_WIDTH", 
'width:"100%";');
 
  508            $this->tpl->parseCurrentBlock();
 
  517        $this->admin_panel_commands[] =
 
  518            array(
"cmd" => $a_cmd, 
"txt" => $a_txt);
 
  526        $this->admin_view_button =
 
  527            array(
"link" => $a_link, 
"txt" => $a_txt);
 
  532        $this->page_form_action = $a_action;
 
  546        $this->tpl->addBlockFile(
'ADM_CONTENT', 
'adm_content', 
'tpl.lucene_search.html', 
'Services/Search');
 
  549        include_once(
"./Services/UIComponent/Overlay/classes/class.ilOverlayGUI.php");
 
  551        $this->tpl->addJavascript(
"./Services/Search/js/Search.js");
 
  553        include_once(
"./Services/UIComponent/Glyph/classes/class.ilGlyphGUI.php");
 
  555        $this->tpl->setVariable(
"FORM_ACTION", 
$ilCtrl->getFormAction($this, 
'performSearch'));
 
  557        $this->tpl->setVariable(
"SEARCH_LABEL", 
$lng->txt(
"search"));
 
  558        include_once(
"./Services/UIComponent/Button/classes/class.ilSubmitButton.php");
 
  560        $btn->setCommand(
"performSearch");
 
  561        $btn->setCaption(
"search");
 
  562        $this->tpl->setVariable(
"SUBMIT_BTN", $btn->render());
 
  563        $this->tpl->setVariable(
"TXT_OPTIONS", 
$lng->txt(
"options"));
 
  565        $this->tpl->setVariable(
"TXT_COMBINATION", 
$lng->txt(
"search_term_combination"));
 
  567        $this->tpl->setVariable(
"TXT_AREA", 
$lng->txt(
"search_area"));
 
  570            $this->tpl->setCurrentBlock(
"type_sel");
 
  571            $this->tpl->setVariable(
'TXT_TYPE_DEFAULT', 
$lng->txt(
"search_off"));
 
  573            $this->tpl->setVariable(
"TXT_FILTER_BY_TYPE", 
$lng->txt(
"search_filter_by_type"));
 
  574            $this->tpl->setVariable(
'FORM', $this->form->getHTML());
 
  575            $this->tpl->parseCurrentBlock();
 
  579        $this->tpl->setVariable(
'SEARCH_AREA_FORM', $this->
getSearchAreaForm()->getHTML());
 
  580        $this->tpl->setVariable(
"TXT_CHANGE", 
$lng->txt(
"change"));
 
  584            $this->tpl->setVariable(
'TXT_FILTER_BY_CDATE', $this->lng->txt(
'search_filter_cd'));
 
  585            $this->tpl->setVariable(
'TXT_CD_OFF', $this->lng->txt(
'search_off'));
 
  602        $options = $this->search_cache->getCreationFilter();
 
  618                return '+(cdate:[* TO ' . $limit->get(
IL_CAL_DATE) . 
']) ';
 
  622                return '+(cdate:' . $limit->get(
IL_CAL_DATE) . 
'*) ';
 
An exception for terminatinating execution or to throw for unit testing.
static get($a_glyph, $a_text="")
Get glyph html.
static getInstance()
Get singleton instance.
@classDescription GUI for simple Lucene search
remoteSearch()
Search from main menu.
parseCreationFilter()
Parse creation date.
getType()
Get type of search (details | fast)
showSavedResults()
Show saved results.
__construct()
Constructor.
showSearchForm()
Show search form.
setAdminViewButton($a_link, $a_txt)
Show admin view button.
fillAdminPanel()
Put admin panel into template:
initUserSearchCache()
Init user search cache.
setPageFormAction($a_action)
storeRoot()
Store new root node.
getMimeDetails()
Needed for base class search form.
getDetails()
Needed for base class search form.
executeCommand()
Execute Command.
performSearch()
Perform search.
search()
Search (button pressed)
prepareOutput()
Add admin panel command.
addAdminPanelCommand($a_cmd, $a_txt)
Add a command to the admin panel.
static getInstance($a_user_id)
static getInstance(ilLuceneQueryParser $qp)
Get singleton instance.
GUI class for the workflow of copying objects.
static initJavascript()
Init javascript.
initStandardSearchForm($a_mode)
Init standard search form.
addPager($result, $a_session_key)
Add Pager.
getSearchAreaForm()
Init standard search form.
loadCreationFilter()
Load creation date filter.
handleCommand($a_cmd)
Handle command.
Presentation of search results using object list gui.
static resetDetails()
reset details As long as static::resetDetails is not possible this method is final
static _getInstance($a_usr_id)
Get singleton instance.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms @access public
if(isset($_POST['submit'])) $form