ILIAS  release_4-3 Revision
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilRoleAutoComplete.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
9 {
13  public static function getList($a_str)
14  {
15  global $ilDB;
16 
17  $ilDB->setLimit(20);
18  $query = "SELECT o1.title role,o2.title container FROM object_data o1 ".
19  "JOIN rbac_fa fa ON o1.obj_id = rol_id ".
20  "JOIN tree t1 ON fa.parent = t1.child ".
21  "JOIN object_reference obr ON ref_id = t1.parent ".
22  "JOIN object_data o2 ON obr.obj_id = o2.obj_id ".
23  "WHERE o1.type = 'role' ".
24  "AND assign = 'y' ".
25  "AND ".$ilDB->like('o1.title','text','%'.$a_str.'%')." ".
26  "AND fa.parent != 8 ".
27  "ORDER BY role,container";
28 
29  $res = $ilDB->query($query);
30  $counter = 0;
31  $result = array();
32  while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
33  {
34  $result[$counter] = new stdClass();
35  $result[$counter]->value = $row->role;
36  $result[$counter]->label = $row->role." (".$row->container.")";
37  ++$counter;
38  }
39 
40  if($counter == 0)
41  {
42  return self::getListByObject($a_str);
43  }
44 
45  include_once './Services/JSON/classes/class.ilJsonUtil.php';
47  }
48 
54  public static function getListByObject($a_str)
55  {
56  global $rbacreview,$ilDB;
57 
58  include_once './Services/JSON/classes/class.ilJsonUtil.php';
59  $result = array();
60 
61  if(strpos($a_str,'@') !== 0)
62  {
64  }
65 
66  $a_str = substr($a_str,1);
67 
68  $ilDB->setLimit(100);
69  $query = "SELECT ref_id, title FROM object_data ode ".
70  "JOIN object_reference ore ON ode.obj_id = ore.obj_id ".
71  "WHERE ".$ilDB->like('title', 'text',$a_str.'%').' '.
72  'ORDER BY title';
73  $res = $ilDB->query($query);
74  $counter = 0;
75  while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
76  {
77  $rolf = $rbacreview->getRoleFolderIdOfObject($row->ref_id);
78  if($rolf)
79  {
80  foreach($rbacreview->getRolesOfRoleFolder($rolf,false) as $rol_id)
81  {
82  $role = ilObject::_lookupTitle($rol_id);
83 
84  $result[$counter] = new stdClass();
85  $result[$counter]->value = $role;
86  $result[$counter]->label = $role." (".$row->title.")";
87  ++$counter;
88  }
89  }
90  }
92  }
93 }
94 ?>