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 subitems (forum threads, lm pages...) 26* 27* @author Stefan Meyer <meyer@leifos.com> 28* @version $Id$ 29* 30* 31* @ingroup ServicesSearch 32*/ 33class ilLuceneSubItemListGUIFactory 34{ 35 private static $instances = array(); 36 37 /** 38 * get instance by type 39 * 40 * @param string $a_type Object type 41 * @return 42 * @static 43 */ 44 public static function getInstanceByType($a_type, $a_cmd_class) 45 { 46 global $DIC; 47 48 $objDefinition = $DIC['objDefinition']; 49 50 if (isset(self::$instances[$a_type])) { 51 return self::$instances[$a_type]; 52 } 53 54 $class = $objDefinition->getClassName($a_type); 55 $location = $objDefinition->getLocation($a_type); 56 $full_class = "ilObj" . $class . "SubItemListGUI"; 57 if (@include_once($location . "/class." . $full_class . ".php")) { 58 return self::$instances[$a_type] = new $full_class($a_cmd_class); 59 } else { 60 include_once './Services/Object/classes/class.ilObjectSubItemListGUI.php'; 61 return self::$instances[$a_type] = new ilObjectSubItemListGUI($a_cmd_class); 62 } 63 } 64} 65