ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
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(ilDBConstants::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(ilDBConstants::FETCHMODE_OBJECT))
76  {
77  foreach($rbacreview->getRolesOfRoleFolder($row->ref_id,false) as $rol_id)
78  {
79  $role = ilObject::_lookupTitle($rol_id);
80 
81  $result[$counter] = new stdClass();
82  $result[$counter]->value = $role;
83  $result[$counter]->label = $role." (".$row->title.")";
84  ++$counter;
85  }
86  }
88  }
89 }
90 ?>
$result
static getList($a_str)
Get completion list.
static _lookupTitle($a_id)
lookup object title
$counter
static encode($mixed, $suppress_native=false)
Create styles array
The data for the language used.
global $ilDB
static getListByObject($a_str)
Get list of roles assigned to an object.
Auto completion class for user lists.