1: <?php
2: 3: 4: 5:
6: class Horde_Core_Factory_Group extends Horde_Core_Factory_Injector
7: {
8: public function create(Horde_Injector $injector)
9: {
10: $driver = Horde_String::ucfirst($GLOBALS['conf']['group']['driver']);
11: $params = Horde::getDriverConfig('group', $driver);
12: switch ($driver) {
13: case 'Ldap':
14: case 'Kolab':
15: $class = 'Horde_Core_Group_' . $driver;
16: $params['ldap'] = $injector
17: ->getInstance('Horde_Core_Factory_Ldap')
18: ->create('horde', 'group');
19: break;
20: case 'Sql':
21: $class = 'Horde_Group_Sql';
22: $params['db'] = $injector
23: ->getInstance('Horde_Core_Factory_Db')
24: ->create('horde', 'group');
25: break;
26: case 'Contactlists':
27: $class = 'Horde_Group_Contactlists';
28: $params['api'] = $GLOBALS['registry']->contacts;
29: break;
30: default:
31: $class = 'Horde_Group_' . $driver;
32: break;
33: }
34: if (!class_exists($class)) {
35: throw new Horde_Exception(sprintf(Horde_Core_Translation::t("\"%s\" group driver not found."), $driver));
36: }
37: return new $class($params);
38: }
39:
40: }
41: