1<?php
2/*
3    +-----------------------------------------------------------------------------+
4    | ILIAS open source                                                           |
5    +-----------------------------------------------------------------------------+
6    | Copyright (c) 1998-2006 ILIAS open source, University of Cologne            |
7    |                                                                             |
8    | This program is free software; you can redistribute it and/or               |
9    | modify it under the terms of the GNU General Public License                 |
10    | as published by the Free Software Foundation; either version 2              |
11    | of the License, or (at your option) any later version.                      |
12    |                                                                             |
13    | This program is distributed in the hope that it will be useful,             |
14    | but WITHOUT ANY WARRANTY; without even the implied warranty of              |
15    | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               |
16    | GNU General Public License for more details.                                |
17    |                                                                             |
18    | You should have received a copy of the GNU General Public License           |
19    | along with this program; if not, write to the Free Software                 |
20    | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. |
21    +-----------------------------------------------------------------------------+
22*/
23
24/**
25* List GUI factory for lucene search results
26*
27* @author Stefan Meyer <meyer@leifos.com>
28* @version $Id$
29*
30*
31* @ingroup ServicesSearch
32*/
33class ilLuceneSearchObjectListGUIFactory
34{
35    private static $item_list_gui = array();
36
37    /**
38     * Get list gui by type
39     * This method caches all the returned list guis
40     * @param string $a_type object type
41     * @return object item_list_gui
42     * @static
43     */
44    public static function factory($a_type)
45    {
46        global $DIC;
47
48        $objDefinition = $DIC['objDefinition'];
49        $ilLog = $DIC['ilLog'];
50
51        if (isset(self::$item_list_gui[$a_type])) {
52            return self::$item_list_gui[$a_type];
53        }
54
55        if (!$a_type) {
56            return self::$item_list_gui[$a_type] = $item_list_gui;
57        }
58
59        $class = $objDefinition->getClassName($a_type);
60        $location = $objDefinition->getLocation($a_type);
61
62        $full_class = "ilObj" . $class . "ListGUI";
63
64        include_once($location . "/class." . $full_class . ".php");
65        $item_list_gui = new $full_class();
66
67        $item_list_gui->setDetailsLevel(ilObjectListGUI::DETAILS_SEARCH);
68        $item_list_gui->enableDelete(true);
69        $item_list_gui->enableCut(true);
70        $item_list_gui->enableSubscribe(true);
71        $item_list_gui->enableLink(true);
72        $item_list_gui->enablePath(false);
73        $item_list_gui->enableLinkedPath(true);
74        $item_list_gui->enableSearchFragments(true);
75        $item_list_gui->enableRelevance(false);
76        if ($_SESSION["il_cont_admin_panel"]) {
77            $item_list_gui->enableCheckbox(false);
78        }
79
80        return self::$item_list_gui[$a_type] = $item_list_gui;
81    }
82}
83