Inheritance diagram for ilObjUserFolderGUI:
Collaboration diagram for ilObjUserFolderGUI:Public Member Functions | |
| ilObjUserFolderGUI ($a_data, $a_id, $a_call_by_reference, $a_prepare_output=true) | |
| Constructor public. | |
| & | executeCommand () |
| execute command | |
| viewObject () | |
| list users | |
| displayList () | |
| display object list | |
| showActions ($with_subobjects=false) | |
| show possible action (form buttons) | |
| showPossibleSubObjects () | |
| show possible subobjects (pulldown menu) overwritten to prevent displaying of role templates in local role folders | |
| confirmedDeleteObject () | |
| confirmObject | |
| deleteObject () | |
| display deletion confirmation screen | |
| searchUserFormObject () | |
| displays user search form | |
| searchCancelledObject () | |
| searchUserObject () | |
| importUserFormObject () | |
| display form for user import | |
| importCancelledObject () | |
| import cancelled | |
| getImportDir () | |
| get user import directory name | |
| importUserRoleAssignmentObject () | |
| display form for user import | |
| importUsersObject () | |
| import users | |
| appliedUsersObject () | |
| editAppliedUsersObject () | |
| updateAppliedUsersObject () | |
| __showAppliedUsersTable ($a_result_set) | |
| & | __initTableGUI () |
| __setTableGUIBasicData (&$tbl, &$result_set, $from="") | |
| standard implementation for tables use 'from' variable use different initial setting of table | |
| __getDateSelect ($a_type, $a_varname, $a_selected) | |
| __toUnix ($a_time_arr) | |
| hitsperpageObject () | |
| settingsObject () | |
| Global user settings. | |
| saveGlobalUserSettingsObject () | |
Data Fields | |
| $ctrl | |
Definition at line 37 of file class.ilObjUserFolderGUI.php.
| ilObjUserFolderGUI::__getDateSelect | ( | $ | a_type, | |
| $ | a_varname, | |||
| $ | a_selected | |||
| ) |
Definition at line 1515 of file class.ilObjUserFolderGUI.php.
References formSelect().
Referenced by editAppliedUsersObject().
{
switch($a_type)
{
case "minute":
for($i=0;$i<=60;$i++)
{
$days[$i] = $i < 10 ? "0".$i : $i;
}
return ilUtil::formSelect($a_selected,$a_varname,$days,false,true);
case "hour":
for($i=0;$i<24;$i++)
{
$days[$i] = $i < 10 ? "0".$i : $i;
}
return ilUtil::formSelect($a_selected,$a_varname,$days,false,true);
case "day":
for($i=1;$i<32;$i++)
{
$days[$i] = $i < 10 ? "0".$i : $i;
}
return ilUtil::formSelect($a_selected,$a_varname,$days,false,true);
case "month":
for($i=1;$i<13;$i++)
{
$month[$i] = $i < 10 ? "0".$i : $i;
}
return ilUtil::formSelect($a_selected,$a_varname,$month,false,true);
case "year":
for($i = date("Y",time());$i < date("Y",time()) + 3;++$i)
{
$year[$i] = $i;
}
return ilUtil::formSelect($a_selected,$a_varname,$year,false,true);
}
}
Here is the call graph for this function:
Here is the caller graph for this function:| & ilObjUserFolderGUI::__initTableGUI | ( | ) |
Reimplemented from ilObjectGUI.
Definition at line 1494 of file class.ilObjUserFolderGUI.php.
Referenced by __showAppliedUsersTable().
{
include_once "./classes/class.ilTableGUI.php";
return new ilTableGUI(0,false);
}
Here is the caller graph for this function:| ilObjUserFolderGUI::__setTableGUIBasicData | ( | &$ | tbl, | |
| &$ | result_set, | |||
| $ | a_from = "" | |||
| ) |
standard implementation for tables use 'from' variable use different initial setting of table
Reimplemented from ilObjectGUI.
Definition at line 1500 of file class.ilObjUserFolderGUI.php.
Referenced by __showAppliedUsersTable().
{
$offset = $_GET["offset"];
$order = $_GET["sort_by"];
$direction = $_GET["sort_order"];
//$tbl->enable("hits");
$tbl->setOrderColumn($order);
$tbl->setOrderDirection($direction);
$tbl->setOffset($offset);
$tbl->setLimit($_GET["limit"]);
$tbl->setMaxCount(count($result_set));
$tbl->setFooter("tblfooter",$this->lng->txt("previous"),$this->lng->txt("next"));
$tbl->setData($result_set);
}
Here is the caller graph for this function:| ilObjUserFolderGUI::__showAppliedUsersTable | ( | $ | a_result_set | ) |
Definition at line 1447 of file class.ilObjUserFolderGUI.php.
References $tbl, ilObjectGUI::$tpl, __initTableGUI(), __setTableGUIBasicData(), and ilUtil::getImagePath().
Referenced by appliedUsersObject().
{
$tbl =& $this->__initTableGUI();
$tpl =& $tbl->getTemplateObject();
// SET FORMAACTION
$tpl->setCurrentBlock("tbl_form_header");
$tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));
$tpl->parseCurrentBlock();
$tpl->setCurrentBlock("tbl_action_btn");
$tpl->setVariable("BTN_NAME",'editAppliedUsers');
$tpl->setVariable("BTN_VALUE",$this->lng->txt('edit'));
$tpl->parseCurrentBlock();
$tpl->setCurrentBlock("tbl_action_row");
$tpl->setVariable("COLUMN_COUNTS",5);
$tpl->setVariable("IMG_ARROW", ilUtil::getImagePath("arrow_downright.gif"));
$tpl->parseCurrentBlock();
$tbl->setTitle($this->lng->txt("time_limit_applied_users"),"icon_usr_b.gif",$this->lng->txt("users"));
$tbl->setHeaderNames(array('',
$this->lng->txt("login"),
$this->lng->txt("firstname"),
$this->lng->txt("lastname"),
$this->lng->txt("time_limits")));
$tbl->setHeaderVars(array("",
"login",
"firstname",
"lastname",
"time_limit"),
array("ref_id" => $this->object->getRefId(),
"cmd" => "appliedUsers"));
$tbl->setColumnWidth(array("3%","19%","19%","19%","40%"));
$this->__setTableGUIBasicData($tbl,$a_result_set);
$tbl->render();
$this->tpl->setVariable("APPLIED_USERS",$tbl->tpl->get());
return true;
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilObjUserFolderGUI::__toUnix | ( | $ | a_time_arr | ) |
Definition at line 1555 of file class.ilObjUserFolderGUI.php.
Referenced by editAppliedUsersObject(), and updateAppliedUsersObject().
{
return mktime($a_time_arr["hour"],
$a_time_arr["minute"],
$a_time_arr["second"],
$a_time_arr["month"],
$a_time_arr["day"],
$a_time_arr["year"]);
}
Here is the caller graph for this function:| ilObjUserFolderGUI::appliedUsersObject | ( | ) |
Definition at line 1235 of file class.ilObjUserFolderGUI.php.
References $_SESSION, $counter, ilObjectGUI::$ilias, $rbacsystem, $tmp_user, __showAppliedUsersTable(), ilUtil::formCheckbox(), ilObjectFactory::getInstanceByObjId(), and sendInfo().
Referenced by editAppliedUsersObject(), and updateAppliedUsersObject().
{
global $rbacsystem,$ilias;
unset($_SESSION['applied_users']);
if (!$rbacsystem->checkAccess("visible,read",$this->object->getRefId()))
{
$this->ilias->raiseError($this->lng->txt("permission_denied"),$this->ilias->error_obj->MESSAGE);
}
if(!count($app_users =& $ilias->account->getAppliedUsers()))
{
sendInfo($this->lng->txt('no_users_applied'));
return false;
}
$this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.usr_applied_users.html");
$this->lng->loadLanguageModule('crs');
$counter = 0;
foreach($app_users as $usr_id)
{
$tmp_user =& ilObjectFactory::getInstanceByObjId($usr_id);
$f_result[$counter][] = ilUtil::formCheckbox(0,"users[]",$usr_id);
$f_result[$counter][] = $tmp_user->getLogin();
$f_result[$counter][] = $tmp_user->getFirstname();
$f_result[$counter][] = $tmp_user->getLastname();
if($tmp_user->getTimeLimitUnlimited())
{
$f_result[$counter][] = "<b>".$this->lng->txt('crs_unlimited')."</b>";
}
else
{
$limit = "<b>".$this->lng->txt('crs_from').'</b> '.strftime("%Y-%m-%d %R",$tmp_user->getTimeLimitFrom()).'<br />';
$limit .= "<b>".$this->lng->txt('crs_to').'</b> '.strftime("%Y-%m-%d %R",$tmp_user->getTimeLimitUntil());
$f_result[$counter][] = $limit;
}
++$counter;
}
$this->__showAppliedUsersTable($f_result);
return true;
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilObjUserFolderGUI::confirmedDeleteObject | ( | ) |
confirmObject
public
Reimplemented from ilObjectGUI.
Definition at line 403 of file class.ilObjUserFolderGUI.php.
References $_GET, $_SESSION, $id, $obj, $rbacsystem, ilUtil::redirect(), and sendInfo().
{
global $rbacsystem;
// FOR NON_REF_OBJECTS WE CHECK ACCESS ONLY OF PARENT OBJECT ONCE
if (!$rbacsystem->checkAccess('delete',$this->object->getRefId()))
{
$this->ilias->raiseError($this->lng->txt("msg_no_perm_delete"),$this->ilias->error_obj->WARNING);
}
if (in_array($_SESSION["AccountId"],$_SESSION["saved_post"]))
{
$this->ilias->raiseError($this->lng->txt("msg_no_delete_yourself"),$this->ilias->error_obj->WARNING);
}
// FOR ALL SELECTED OBJECTS
foreach ($_SESSION["saved_post"] as $id)
{
// instatiate correct object class (usr)
$obj =& $this->ilias->obj_factory->getInstanceByObjId($id);
$obj->delete();
}
// Feedback
sendInfo($this->lng->txt("user_deleted"),true);
ilUtil::redirect("adm_object.php?ref_id=".$_GET["ref_id"]);
}
Here is the call graph for this function:| ilObjUserFolderGUI::deleteObject | ( | ) |
display deletion confirmation screen
Definition at line 435 of file class.ilObjUserFolderGUI.php.
References $_GET, $_POST, $_SESSION, $counter, $id, ilUtil::getImageTagByType(), ilObjectGUI::getTemplateFile(), sendInfo(), and ilUtil::switchColor().
{
if(!isset($_POST["id"]))
{
$this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE);
}
// SAVE POST VALUES
$_SESSION["saved_post"] = $_POST["id"];
unset($this->data);
$this->data["cols"] = array("type", "title", "description", "last_change");
foreach($_POST["id"] as $id)
{
$obj_data =& $this->ilias->obj_factory->getInstanceByObjId($id);
$this->data["data"]["$id"] = array(
"type" => $obj_data->getType(),
"title" => $obj_data->getTitle(),
"desc" => $obj_data->getDescription(),
"last_update" => $obj_data->getLastUpdateDate());
}
$this->data["buttons"] = array( "cancelDelete" => $this->lng->txt("cancel"),
"confirmedDelete" => $this->lng->txt("confirm"));
$this->getTemplateFile("confirm");
sendInfo($this->lng->txt("info_delete_sure"));
$this->tpl->setVariable("FORMACTION", "adm_object.php?ref_id=".$_GET["ref_id"]."&cmd=gateway");
// BEGIN TABLE HEADER
foreach ($this->data["cols"] as $key)
{
$this->tpl->setCurrentBlock("table_header");
$this->tpl->setVariable("TEXT",$this->lng->txt($key));
$this->tpl->parseCurrentBlock();
}
// END TABLE HEADER
// BEGIN TABLE DATA
$counter = 0;
foreach($this->data["data"] as $key => $value)
{
// BEGIN TABLE CELL
foreach($value as $key => $cell_data)
{
$this->tpl->setCurrentBlock("table_cell");
// CREATE TEXT STRING
if($key == "type")
{
$this->tpl->setVariable("TEXT_CONTENT",ilUtil::getImageTagByType($cell_data,$this->tpl->tplPath));
}
else
{
$this->tpl->setVariable("TEXT_CONTENT",$cell_data);
}
$this->tpl->parseCurrentBlock();
}
$this->tpl->setCurrentBlock("table_row");
$this->tpl->setVariable("CSS_ROW",ilUtil::switchColor(++$counter,"tblrow1","tblrow2"));
$this->tpl->parseCurrentBlock();
// END TABLE CELL
}
// END TABLE DATA
// BEGIN OPERATION_BTN
foreach($this->data["buttons"] as $name => $value)
{
$this->tpl->setCurrentBlock("operation_btn");
$this->tpl->setVariable("BTN_NAME",$name);
$this->tpl->setVariable("BTN_VALUE",$value);
$this->tpl->parseCurrentBlock();
}
}
Here is the call graph for this function:| ilObjUserFolderGUI::displayList | ( | ) |
display object list
public
Reimplemented from ilObjectGUI.
Definition at line 167 of file class.ilObjUserFolderGUI.php.
References $_GET, $ctrl, ilObjectGUI::$data, $num, $tbl, showActions(), and ilUtil::switchColor().
Referenced by viewObject().
{
include_once "./classes/class.ilTableGUI.php";
// load template for table
$this->tpl->addBlockfile("ADM_CONTENT", "adm_content", "tpl.table.html");
// load template for table content data
$this->tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.obj_tbl_rows.html");
$num = 0;
$obj_str = ($this->call_by_reference) ? "" : "&obj_id=".$this->obj_id;
$this->tpl->setVariable("FORMACTION", "adm_object.php?ref_id=".$this->ref_id."$obj_str&cmd=gateway");
// create table
$tbl = new ilTableGUI();
// title & header columns
$tbl->setTitle($this->object->getTitle(),"icon_".$this->object->getType()."_b.gif",
$this->lng->txt("obj_".$this->object->getType()));
//$tbl->setHelp("tbl_help.php","icon_help.gif",$this->lng->txt("help"));
foreach ($this->data["cols"] as $val)
{
$header_names[] = $this->lng->txt($val);
}
$tbl->setHeaderNames($header_names);
$header_params = array("ref_id" => $this->ref_id);
$tbl->setHeaderVars($this->data["cols"],$header_params);
$tbl->setColumnWidth(array("","25%","25$%","25%","25%"));
// control
//$tbl->enable("hits");
$tbl->setOrderColumn($_GET["sort_by"]);
$tbl->setOrderDirection($_GET["sort_order"]);
$tbl->setLimit($_GET["limit"]);
$tbl->setOffset($_GET["offset"]);
$tbl->setMaxCount($this->maxcount);
// footer
$tbl->setFooter("tblfooter",$this->lng->txt("previous"),$this->lng->txt("next"));
#$tbl->disable("footer");
// render table
$tbl->render();
if (is_array($this->data["data"][0]))
{
//table cell
for ($i=0; $i < count($this->data["data"]); $i++)
{
$data = $this->data["data"][$i];
$ctrl = $this->data["ctrl"][$i];
// color changing
$css_row = ilUtil::switchColor($i+1,"tblrow1","tblrow2");
$this->tpl->setCurrentBlock("checkbox");
$this->tpl->setVariable("CHECKBOX_ID", $ctrl["obj_id"]);
//$this->tpl->setVariable("CHECKED", $checked);
$this->tpl->setVariable("CSS_ROW", $css_row);
$this->tpl->parseCurrentBlock();
$this->tpl->setCurrentBlock("table_cell");
$this->tpl->setVariable("CELLSTYLE", "tblrow1");
$this->tpl->parseCurrentBlock();
foreach ($data as $key => $val)
{
//build link
$link = "adm_object.php?ref_id=7&obj_id=".$ctrl["obj_id"];
// dirty workaround to have ids for function showActions (checkbox toggle option)
$this->ids[] = $ctrl["obj_id"];
if ($key == "login")
{
$this->tpl->setCurrentBlock("begin_link");
$this->tpl->setVariable("LINK_TARGET", $link);
$this->tpl->parseCurrentBlock();
$this->tpl->touchBlock("end_link");
}
$this->tpl->setCurrentBlock("text");
$this->tpl->setVariable("TEXT_CONTENT", $val);
$this->tpl->parseCurrentBlock();
$this->tpl->setCurrentBlock("table_cell");
$this->tpl->parseCurrentBlock();
} //foreach
$this->tpl->setCurrentBlock("tbl_content");
$this->tpl->setVariable("CSS_ROW", $css_row);
$this->tpl->parseCurrentBlock();
} //for
}
if (AUTH_CURRENT != AUTH_LOCAL)
{
$this->showActions(false);
}
else
{
$this->showActions(true);
}
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilObjUserFolderGUI::editAppliedUsersObject | ( | ) |
Definition at line 1285 of file class.ilObjUserFolderGUI.php.
References $_POST, $_SESSION, $counter, $rbacsystem, $tmp_user, __getDateSelect(), __toUnix(), appliedUsersObject(), ilUtil::formCheckbox(), ilUtil::getImagePath(), ilObjectFactory::getInstanceByObjId(), and sendInfo().
Referenced by updateAppliedUsersObject().
{
global $rbacsystem;
if(!$rbacsystem->checkAccess("write", $this->ref_id))
{
$this->ilias->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilias->error_obj->MESSAGE);
}
$this->lng->loadLanguageModule('crs');
$_POST['users'] = $_SESSION['applied_users'] = ($_SESSION['applied_users'] ? $_SESSION['applied_users'] : $_POST['users']);
if(!isset($_SESSION['error_post_vars']))
{
sendInfo($this->lng->txt('time_limit_add_time_limit_for_selected'));
}
if(!count($_POST["users"]))
{
sendInfo($this->lng->txt("time_limit_no_users_selected"));
$this->appliedUsersObject();
return false;
}
$counter = 0;
foreach($_POST['users'] as $usr_id)
{
if($counter)
{
$title .= ', ';
}
$tmp_user =& ilObjectFactory::getInstanceByObjId($usr_id);
$title .= $tmp_user->getLogin();
++$counter;
}
if(strlen($title) > 79)
{
$title = substr($title,0,80);
$title .= '...';
}
$this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.usr_edit_applied_users.html");
$this->tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));
// LOAD SAVED DATA IN CASE OF ERROR
$time_limit_unlimited = $_SESSION["error_post_vars"]["au"]["time_limit_unlimited"] ?
1 : 0;
$time_limit_start = $_SESSION["error_post_vars"]["au"]["time_limit_start"] ?
$this->__toUnix($_SESSION["error_post_vars"]["au"]["time_limit_start"]) :
time();
$time_limit_end = $_SESSION["error_post_vars"]["au"]["time_limit_end"] ?
$this->__toUnix($_SESSION["error_post_vars"]["au"]["time_limit_end"]) :
time();
// SET TEXT VARIABLES
$this->tpl->setVariable("ALT_IMG",$this->lng->txt("obj_usr"));
$this->tpl->setVariable("TYPE_IMG",ilUtil::getImagePath("icon_usr_b.gif"));
$this->tpl->setVariable("TITLE",$title);
$this->tpl->setVariable("TXT_TIME_LIMIT",$this->lng->txt("time_limit"));
$this->tpl->setVariable("TXT_TIME_LIMIT_START",$this->lng->txt("crs_start"));
$this->tpl->setVariable("TXT_TIME_LIMIT_END",$this->lng->txt("crs_end"));
$this->tpl->setVariable("CMD_SUBMIT","updateAppliedUsers");
$this->tpl->setVariable("TXT_CANCEL",$this->lng->txt("cancel"));
$this->tpl->setVariable("TXT_SUBMIT",$this->lng->txt("submit"));
$this->tpl->setVariable("SELECT_TIME_LIMIT_START_DAY",$this->__getDateSelect("day","au[time_limit_start][day]",
date("d",$time_limit_start)));
$this->tpl->setVariable("SELECT_TIME_LIMIT_START_MONTH",$this->__getDateSelect("month","au[time_limit_start][month]",
date("m",$time_limit_start)));
$this->tpl->setVariable("SELECT_TIME_LIMIT_START_YEAR",$this->__getDateSelect("year","au[time_limit_start][year]",
date("Y",$time_limit_start)));
$this->tpl->setVariable("SELECT_TIME_LIMIT_START_HOUR",$this->__getDateSelect("hour","au[time_limit_start][hour]",
date("G",$time_limit_start)));
$this->tpl->setVariable("SELECT_TIME_LIMIT_START_MINUTE",$this->__getDateSelect("minute","au[time_limit_start][minute]",
date("i",$time_limit_start)));
$this->tpl->setVariable("SELECT_TIME_LIMIT_END_DAY",$this->__getDateSelect("day","au[time_limit_end][day]",
date("d",$time_limit_end)));
$this->tpl->setVariable("SELECT_TIME_LIMIT_END_MONTH",$this->__getDateSelect("month","au[time_limit_end][month]",
date("m",$time_limit_end)));
$this->tpl->setVariable("SELECT_TIME_LIMIT_END_YEAR",$this->__getDateSelect("year","au[time_limit_end][year]",
date("Y",$time_limit_end)));
$this->tpl->setVariable("SELECT_TIME_LIMIT_END_HOUR",$this->__getDateSelect("hour","au[time_limit_end][hour]",
date("G",$time_limit_end)));
$this->tpl->setVariable("SELECT_TIME_LIMIT_END_MINUTE",$this->__getDateSelect("minute","au[time_limit_end][minute]",
date("i",$time_limit_end)));
if($this->ilias->account->getTimeLimitUnlimited())
{
$this->tpl->setVariable("ROWSPAN",3);
$this->tpl->setCurrentBlock("unlimited");
$this->tpl->setVariable("TXT_TIME_LIMIT_UNLIMITED",$this->lng->txt("crs_unlimited"));
$this->tpl->setVariable("TIME_LIMIT_UNLIMITED",ilUtil::formCheckbox($time_limit_unlimited,"au[time_limit_unlimited]",1));
$this->tpl->parseCurrentBlock();
}
else
{
$this->tpl->setVariable("ROWSPAN",2);
}
}
Here is the call graph for this function:
Here is the caller graph for this function:| & ilObjUserFolderGUI::executeCommand | ( | ) |
execute command
Reimplemented from ilObjectGUI.
Definition at line 58 of file class.ilObjUserFolderGUI.php.
References $cmd, and $rbacsystem.
| ilObjUserFolderGUI::getImportDir | ( | ) |
get user import directory name
Definition at line 823 of file class.ilObjUserFolderGUI.php.
References $ilUser, ilUtil::getDataDir(), and ilUtil::makeDirParents().
Referenced by importCancelledObject(), importUserRoleAssignmentObject(), and importUsersObject().
{
// For each user session a different directory must be used to prevent
// that one user session overwrites the import data that another session
// is currently importing.
global $ilUser;
$importDir = ilUtil::getDataDir().'/user_import/usr_'.$ilUser->getId().'_'.session_id();
ilUtil::makeDirParents($importDir);
return $importDir;
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilObjUserFolderGUI::hitsperpageObject | ( | ) |
Reimplemented from ilObjectGUI.
Definition at line 1565 of file class.ilObjUserFolderGUI.php.
References viewObject().
{
parent::hitsperpageObject();
$this->viewObject();
}
Here is the call graph for this function:| ilObjUserFolderGUI::ilObjUserFolderGUI | ( | $ | a_data, | |
| $ | a_id, | |||
| $ | a_call_by_reference, | |||
| $ | a_prepare_output = true | |||
| ) |
Constructor public.
Definition at line 45 of file class.ilObjUserFolderGUI.php.
References $ilCtrl, and ilObjectGUI::ilObjectGUI().
{
global $ilCtrl;
define('USER_FOLDER_ID',7);
$this->ctrl =& $ilCtrl;
$this->type = "usrf";
$this->ilObjectGUI($a_data,$a_id,$a_call_by_reference,$a_prepare_output);
}
Here is the call graph for this function:| ilObjUserFolderGUI::importCancelledObject | ( | ) |
import cancelled
private
Definition at line 798 of file class.ilObjUserFolderGUI.php.
References $_GET, ilObjectGUI::$return_location, ilUtil::delDir(), getImportDir(), ilUtil::redirect(), and sendInfo().
{
// purge user import directory
$import_dir = $this->getImportDir();
if (@is_dir($import_dir))
{
ilUtil::delDir($import_dir);
}
sendInfo($this->lng->txt("msg_cancel"),true);
if($this->ctrl->getTargetScript() == 'adm_object.php')
{
$return_location = $_GET["cmd_return_location"];
ilUtil::redirect($this->ctrl->getLinkTarget($this,$return_location));
}
else
{
$this->ctrl->redirectByClass('ilobjcategorygui','listUsers');
}
}
Here is the call graph for this function:| ilObjUserFolderGUI::importUserFormObject | ( | ) |
display form for user import
Definition at line 777 of file class.ilObjUserFolderGUI.php.
{
$this->tpl->addBlockfile("ADM_CONTENT", "adm_content", "tpl.usr_import_form.html");
//$this->tpl->setVariable("FORMACTION", "adm_object.php?ref_id=".$this->ref_id."&cmd=gateway");
$this->tpl->setVariable("FORMACTION", $this->ctrl->getFormaction($this));
$this->tpl->setVariable("TXT_IMPORT_USERS", $this->lng->txt("import_users"));
$this->tpl->setVariable("TXT_IMPORT_FILE", $this->lng->txt("import_file"));
$this->tpl->setVariable("TXT_IMPORT_ROOT_USER", $this->lng->txt("import_root_user"));
$this->tpl->setVariable("BTN_IMPORT", $this->lng->txt("upload"));
$this->tpl->setVariable("BTN_CANCEL", $this->lng->txt("cancel"));
}
| ilObjUserFolderGUI::importUserRoleAssignmentObject | ( | ) |
display form for user import
Definition at line 837 of file class.ilObjUserFolderGUI.php.
References $_SESSION, $file_name, ilObjectGUI::$lng, $path, $rbacreview, $rbacsystem, $role_id, $roles, ilObjectGUI::$tree, ilObjRole::_getAssignUsersStatus(), ilUtil::delDir(), ilUtil::formSelect(), formSelect(), ilUtil::getDir(), getImportDir(), ilUtil::makeDir(), ilUtil::moveUploadedFile(), and ilUtil::unzip().
{
include_once './classes/class.ilObjRole.php';
include_once './classes/class.ilUserImportParser.php';
global $rbacreview, $rbacsystem, $tree, $lng;
$this->tpl->addBlockfile("ADM_CONTENT", "adm_content", "tpl.usr_import_roles.html");
$import_dir = $this->getImportDir();
// recreate user import directory
if (@is_dir($import_dir))
{
ilUtil::delDir($import_dir);
}
ilUtil::makeDir($import_dir);
// move uploaded file to user import directory
$file_name = $_FILES["importFile"]["name"];
$parts = pathinfo($file_name);
$full_path = $import_dir."/".$file_name;
// check if import file exists
if (!is_file($_FILES["importFile"]["tmp_name"]))
{
ilUtil::delDir($import_dir);
$this->ilias->raiseError($this->lng->txt("no_import_file_found")
, $this->ilias->error_obj->MESSAGE);
}
ilUtil::moveUploadedFile($_FILES["importFile"]["tmp_name"],
$_FILES["importFile"]["name"], $full_path);
// handle zip file
if (strtolower($parts["extension"]) == "zip")
{
// unzip file
ilUtil::unzip($full_path);
$xml_file = null;
$file_list = ilUtil::getDir($import_dir);
foreach ($file_list as $a_file)
{
if (substr($a_file['entry'],-4) == '.xml')
{
$xml_file = $import_dir."/".$a_file['entry'];
break;
}
}
if (is_null($xml_file))
{
$subdir = basename($parts["basename"],".".$parts["extension"]);
$xml_file = $import_dir."/".$subdir."/".$subdir.".xml";
}
}
// handle xml file
else
{
$xml_file = $full_path;
}
// check xml file
if (!is_file($xml_file))
{
ilUtil::delDir($import_dir);
$this->ilias->raiseError($this->lng->txt("no_xml_file_found_in_zip")
." ".$subdir."/".$subdir.".xml", $this->ilias->error_obj->MESSAGE);
}
require_once("classes/class.ilUserImportParser.php");
// Verify the data
// ---------------
$importParser = new ilUserImportParser($xml_file, IL_VERIFY);
$importParser->startParsing();
switch ($importParser->getErrorLevel())
{
case IL_IMPORT_SUCCESS :
break;
case IL_IMPORT_WARNING :
$this->tpl->setVariable("IMPORT_LOG", $importParser->getProtocolAsHTML($lng->txt("verification_warning_log")));
break;
case IL_IMPORT_FAILURE :
ilUtil::delDir($import_dir);
$this->ilias->raiseError(
$lng->txt("verification_failed").$importParser->getProtocolAsHTML($lng->txt("verification_failure_log")),
$this->ilias->error_obj->MESSAGE
);
return;
}
// Create the role selection form
// ------------------------------
$this->tpl->setCurrentBlock("role_selection_form");
$this->tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));
$this->tpl->setVariable("TXT_IMPORT_USERS", $this->lng->txt("import_users"));
$this->tpl->setVariable("TXT_IMPORT_FILE", $this->lng->txt("import_file"));
$this->tpl->setVariable("IMPORT_FILE", $file_name);
$this->tpl->setVariable("TXT_USER_ELEMENT_COUNT", $this->lng->txt("num_users"));
$this->tpl->setVariable("USER_ELEMENT_COUNT", $importParser->getUserCount());
$this->tpl->setVariable("TXT_ROLE_ASSIGNMENT", $this->lng->txt("role_assignment"));
$this->tpl->setVariable("BTN_IMPORT", $this->lng->txt("import"));
$this->tpl->setVariable("BTN_CANCEL", $this->lng->txt("cancel"));
$this->tpl->setVariable("XML_FILE_NAME", $xml_file);
// Extract the roles
$importParser = new ilUserImportParser($xml_file, IL_EXTRACT_ROLES);
$importParser->startParsing();
$roles = $importParser->getCollectedRoles();
// get global roles
$all_gl_roles = $rbacreview->getRoleListByObject(ROLE_FOLDER_ID);
$gl_roles = array();
foreach ($all_gl_roles as $obj_data)
{
// check assignment permission if called from local admin
if($this->object->getRefId() != USER_FOLDER_ID)
{
if(!ilObjRole::_getAssignUsersStatus($obj_data['obj_id']))
{
continue;
}
}
// exclude anonymous role from list
if ($obj_data["obj_id"] != ANONYMOUS_ROLE_ID)
{
// do not allow to assign users to administrator role if current user does not has SYSTEM_ROLE_ID
if ($obj_data["obj_id"] != SYSTEM_ROLE_ID or in_array(SYSTEM_ROLE_ID,$_SESSION["RoleId"]))
{
$gl_roles[$obj_data["obj_id"]] = $obj_data["title"];
}
}
}
// global roles
$got_globals = false;
foreach($roles as $role_id => $role)
{
if ($role["type"] == "Global")
{
if (! $got_globals)
{
$got_globals = true;
$this->tpl->setCurrentBlock("global_role_section");
$this->tpl->setVariable("TXT_GLOBAL_ROLES_IMPORT", $this->lng->txt("roles_of_import_global"));
$this->tpl->setVariable("TXT_GLOBAL_ROLES", $this->lng->txt("assign_global_role"));
}
// pre selection for role
$pre_select = array_search($role[name], $gl_roles);
if (! $pre_select)
{
switch($role["name"])
{
case "Administrator": // ILIAS 2/3 Administrator
$pre_select = array_search("Administrator", $gl_roles);
break;
case "Autor": // ILIAS 2 Author
$pre_select = array_search("User", $gl_roles);
break;
case "Lerner": // ILIAS 2 Learner
$pre_select = array_search("User", $gl_roles);
break;
case "Gast": // ILIAS 2 Guest
$pre_select = array_search("Guest", $gl_roles);
break;
default:
$pre_select = array_search("User", $gl_roles);
break;
}
}
$this->tpl->setCurrentBlock("global_role");
$role_select = ilUtil::formSelect($pre_select, "role_assign[".$role_id."]", $gl_roles, false, true);
$this->tpl->setVariable("TXT_IMPORT_GLOBAL_ROLE", $role["name"]." [".$role_id."]");
$this->tpl->setVariable("SELECT_GLOBAL_ROLE", $role_select);
$this->tpl->parseCurrentBlock();
}
}
// Check if local roles need to be assigned
$got_locals = false;
foreach($roles as $role_id => $role)
{
if ($role["type"] == "Local")
{
$got_locals = true;
break;
}
}
if ($got_locals)
{
$this->tpl->setCurrentBlock("local_role_section");
$this->tpl->setVariable("TXT_LOCAL_ROLES_IMPORT", $this->lng->txt("roles_of_import_local"));
$this->tpl->setVariable("TXT_LOCAL_ROLES", $this->lng->txt("assign_local_role"));
// get local roles
$loc_roles = $rbacreview->getAssignableRoles();
$l_roles = array();
$l_roles_searcharray = array();
foreach ($loc_roles as $key => $loc_role)
{
// fetch context path of role
$rolf = $rbacreview->getFoldersAssignedToRole($loc_role["obj_id"],true);
// only process role folders that are not set to status "deleted"
// and for which the user has write permissions.
// We also don't show the roles which are in the ROLE_FOLDER_ID folder.
// (The ROLE_FOLDER_ID folder contains the global roles).
if (!$rbacreview->isDeleted($rolf[0])
&& $rbacsystem->checkAccess('write',$tree->getParentId($rolf[0]))
&& $rolf[0] != ROLE_FOLDER_ID
)
{
// A local role is only displayed, if it is contained in the subtree of
// the localy administrated category. If the import function has been
// invoked from the user folder object, we show all local roles, because
// the user folder object is considered the parent of all local roles.
// Thus, if we start from the user folder object, we initialize the
// isInSubtree variable with true. In all other cases it is initialized
// with false, and only set to true if we find the object id of the
// locally administrated category in the tree path to the local role.
$isInSubtree = $this->object->getRefId() == USER_FOLDER_ID;
$path = "";
if ($this->tree->isInTree($rolf[0]))
{
// Create path. Paths which have more than 4 segments
// are truncated in the middle.
$tmpPath = $this->tree->getPathFull($rolf[0]);
for ($i = 1, $n = count($tmpPath) - 1; $i < $n; $i++)
{
if ($i > 1)
{
$path = $path.' > ';
}
if ($i < 3 || $i > $n - 3)
{
$path = $path.$tmpPath[$i]['title'];
}
else if ($i == 3 || $i == $n - 3)
{
$path = $path.'...';
}
$isInSubtree |= $tmpPath[$i]['obj_id'] == $this->object->getId();
}
}
else
{
$path = "<b>Rolefolder ".$rolf[0]." not found in tree! (Role ".$loc_role["obj_id"].")</b>";
}
if ($loc_role["role_type"] != "Global" && $isInSubtree)
{
$l_roles[$loc_role['obj_id']] = $loc_role["title"]." ($path)";
$l_roles_searcharray[$loc_role['obj_id']] = $loc_role["title"];
}
}
} //foreach role
$l_roles[""] = "";
natsort($l_roles);
$l_roles[""] = $this->lng->txt("usrimport_ignore_role");
foreach($roles as $role_id => $role)
{
if ($role["type"] == "Local")
{
$this->tpl->setCurrentBlock("local_role");
$this->tpl->setVariable("TXT_IMPORT_LOCAL_ROLE", $role["name"]." [".$role_id."]");
$pre_select = array_search($role_id, $l_roles_searcharray);
if (!($pre_select !== false))
{
$pre_select = array_search($role['name'], $l_roles_searcharray);
}
$role_select = ilUtil::formSelect($pre_select, "role_assign[".$role_id."]", $l_roles, false, true);
$this->tpl->setVariable("SELECT_LOCAL_ROLE", $role_select);
$this->tpl->parseCurrentBlock();
}
}
}
//
$this->tpl->setVariable("TXT_CONFLICT_HANDLING", $lng->txt("conflict_handling"));
$handlers = array(
IL_IGNORE_ON_CONFLICT => "ignore_on_conflict",
IL_UPDATE_ON_CONFLICT => "update_on_conflict"
);
$this->tpl->setVariable("TXT_CONFLICT_HANDLING_INFO", str_replace('\n','<br>',$this->lng->txt("usrimport_conflict_handling_info")));
$this->tpl->setVariable("TXT_CONFLICT_CHOICE", $lng->txt("conflict_handling"));
$this->tpl->setVariable("SELECT_CONFLICT", ilUtil::formSelect(IL_IGNORE_ON_CONFLICT, "conflict_handling_choice", $handlers, false, false));
}
Here is the call graph for this function:| ilObjUserFolderGUI::importUsersObject | ( | ) |
import users
Definition at line 1142 of file class.ilObjUserFolderGUI.php.
References $_POST, $_SESSION, $global_roles, ilObjectGUI::$lng, $rbacreview, $rbacsystem, $role_id, ilObjectGUI::$tree, ilObjRole::_getAssignUsersStatus(), ilUtil::delDir(), getImportDir(), ilUtil::redirect(), and sendInfo().
{
include_once './classes/class.ilObjRole.php';
include_once './classes/class.ilUserImportParser.php';
global $rbacreview, $rbacsystem, $tree, $lng;
switch ($_POST["conflict_handling_choice"])
{
case "update_on_conflict" :
$rule = IL_UPDATE_ON_CONFLICT;
break;
case "ignore_on_conflict" :
default :
$rule = IL_IGNORE_ON_CONFLICT;
break;
}
$importParser = new ilUserImportParser($_POST["xml_file"], IL_USER_IMPORT, $rule);
$importParser->setFolderId($this->object->getRefId());
$import_dir = $this->getImportDir();
// Catch hack attempts
// We check here again, if the role folders are in the tree, and if the
// user has permission on the roles.
if ($_POST["role_assign"])
{
$global_roles = $rbacreview->getGlobalRoles();
foreach ($_POST["role_assign"] as $role_id)
{
if ($role_id != "")
{
if (in_array($role_id, $global_roles))
{
if ($role_id == SYSTEM_ROLE_ID && ! in_array(SYSTEM_ROLE_ID,$_SESSION["RoleId"])
|| ($this->object->getRefId() != USER_FOLDER_ID
&& ! ilObjRole::_getAssignUsersStatus($role_id))
)
{
ilUtil::delDir($import_dir);
$this->ilias->raiseError($this->lng->txt("usrimport_with_specified_role_not_permitted"),
$this->ilias->error_obj->MESSAGE);
}
}
else
{
$rolf = $rbacreview->getFoldersAssignedToRole($role_id,true);
if ($rbacreview->isDeleted($rolf[0])
|| ! $rbacsystem->checkAccess('write',$tree->getParentId($rolf[0])))
{
ilUtil::delDir($import_dir);
$this->ilias->raiseError($this->lng->txt("usrimport_with_specified_role_not_permitted"),
$this->ilias->error_obj->MESSAGE);
return;
}
}
}
}
}
$importParser->setRoleAssignment($_POST["role_assign"]);
$importParser->startParsing();
// purge user import directory
ilUtil::delDir($import_dir);
switch ($importParser->getErrorLevel())
{
case IL_IMPORT_SUCCESS :
sendInfo($this->lng->txt("user_imported"), true);
break;
case IL_IMPORT_WARNING :
sendInfo($this->lng->txt("user_imported_with_warnings").$importParser->getProtocolAsHTML($lng->txt("import_warning_log")), true);
break;
case IL_IMPORT_FAILURE :
$this->ilias->raiseError(
$this->lng->txt("user_import_failed")
.$importParser->getProtocolAsHTML($lng->txt("import_failure_log")),
$this->ilias->error_obj->MESSAGE
);
break;
}
if($this->ctrl->getTargetScript() == 'adm_object.php')
{
ilUtil::redirect($this->ctrl->getLinkTarget($this));
}
else
{
$this->ctrl->redirectByClass('ilobjcategorygui','listUsers');
}
}
Here is the call graph for this function:| ilObjUserFolderGUI::saveGlobalUserSettingsObject | ( | ) |
Definition at line 1631 of file class.ilObjUserFolderGUI.php.
References $_POST, ilObjectGUI::$ilias, $profile_fields, sendInfo(), and settingsObject().
{
global $ilias;
$profile_fields = array(
"gender",
"password",
"firstname",
"lastname",
"title",
"upload",
"institution",
"department",
"street",
"city",
"zipcode",
"country",
"phone_office",
"phone_home",
"phone_mobile",
"fax",
"email",
"hobby",
"matriculation",
"referral_comment",
"language",
"skin_style"
);
foreach ($profile_fields as $field)
{
$ilias->deleteSetting("usr_settings_disable_" . $field);
$ilias->deleteSetting("usr_settings_hide_" . $field);
if ($_POST["chb"]["hide_" . $field])
{
$ilias->setSetting("usr_settings_hide_" . $field, "1");
}
if ($_POST["chb"]["disable_" . $field])
{
$ilias->setSetting("usr_settings_disable_" . $field, "1");
}
}
sendInfo($this->lng->txt("usr_settings_saved"));
$this->settingsObject();
}
Here is the call graph for this function:| ilObjUserFolderGUI::searchCancelledObject | ( | ) |
Definition at line 544 of file class.ilObjUserFolderGUI.php.
References $_GET, exit, and sendInfo().
{
sendInfo($this->lng->txt("action_aborted"),true);
header("Location: adm_object.php?ref_id=".$_GET["ref_id"]."&cmd=gateway");
exit();
}
Here is the call graph for this function:| ilObjUserFolderGUI::searchUserFormObject | ( | ) |
displays user search form
Definition at line 520 of file class.ilObjUserFolderGUI.php.
{
$this->tpl->addBlockfile("ADM_CONTENT", "adm_content", "tpl.usr_search_form.html");
$this->tpl->setVariable("FORMACTION", "adm_object.php?ref_id=".$this->ref_id."&cmd=gateway");
$this->tpl->setVariable("USERNAME_CHECKED", " checked=\"checked\"");
$this->tpl->setVariable("FIRSTNAME_CHECKED", " checked=\"checked\"");
$this->tpl->setVariable("LASTNAME_CHECKED", " checked=\"checked\"");
$this->tpl->setVariable("EMAIL_CHECKED", " checked=\"checked\"");
$this->tpl->setVariable("ACTIVE_CHECKED", " checked=\"checked\"");
$this->tpl->setVariable("INACTIVE_CHECKED", " checked=\"checked\"");
$this->tpl->setVariable("TXT_SEARCH_USER",$this->lng->txt("search_user"));
$this->tpl->setVariable("TXT_SEARCH_IN",$this->lng->txt("search_in"));
$this->tpl->setVariable("TXT_SEARCH_USERNAME",$this->lng->txt("username"));
$this->tpl->setVariable("TXT_SEARCH_FIRSTNAME",$this->lng->txt("firstname"));
$this->tpl->setVariable("TXT_SEARCH_LASTNAME",$this->lng->txt("lastname"));
$this->tpl->setVariable("TXT_SEARCH_EMAIL",$this->lng->txt("email"));
$this->tpl->setVariable("TXT_SEARCH_ACTIVE",$this->lng->txt("search_active"));
$this->tpl->setVariable("TXT_SEARCH_INACTIVE",$this->lng->txt("search_inactive"));
$this->tpl->setVariable("BUTTON_SEARCH",$this->lng->txt("search"));
$this->tpl->setVariable("BUTTON_CANCEL",$this->lng->txt("cancel"));
$this->tpl->setVariable("TXT_SEARCH_NOTE",$this->lng->txt("search_note"));
}
| ilObjUserFolderGUI::searchUserObject | ( | ) |
Definition at line 552 of file class.ilObjUserFolderGUI.php.
References $_GET, $_POST, $_SESSION, $ctrl, ilObjectGUI::$data, $num, $rbacreview, $search_result, $tbl, exit, ilObjUser::searchUsers(), sendInfo(), showActions(), ilUtil::sortArray(), and ilUtil::switchColor().
{
global $rbacreview;
$obj_str = "&obj_id=".$this->obj_id;
$_POST["search_string"] = $_POST["search_string"] ? $_POST["search_string"] : urldecode($_GET["search_string"]);
$_POST["search_fields"] = $_POST["search_fields"] ? $_POST["search_fields"] : explode(",",urldecode($_GET["search_fields"]));
if (empty($_POST["search_string"]))
{
$_POST["search_string"] = "%";
}
if (empty($_POST["search_fields"]))
{
$_POST["search_fields"] = array();
}
if (count($search_result = ilObjUser::searchUsers($_POST["search_string"])) == 0)
{
sendInfo($this->lng->txt("msg_no_search_result")." ".$this->lng->txt("with")." '".htmlspecialchars($_POST["search_string"])."'",true);
header("Location: adm_object.php?ref_id=".$_GET["ref_id"]."&cmd=searchUserForm");
exit();
}
//add template for buttons
$this->tpl->addBlockfile("BUTTONS", "buttons", "tpl.buttons.html");
// display button
$this->tpl->setCurrentBlock("btn_cell");
$this->tpl->setVariable("BTN_LINK","adm_object.php?ref_id=".$this->ref_id."&cmd=searchUserForm");
$this->tpl->setVariable("BTN_TXT",$this->lng->txt("search_new"));
$this->tpl->parseCurrentBlock();
$this->data["cols"] = array("", "login", "firstname", "lastname", "email", "active");
if (in_array("active", $_POST["search_fields"]))
{
$searchActive = true;
}
if (in_array("inactive", $_POST["search_fields"]))
{
$searchInactive = true;
}
foreach ($search_result as $key => $val)
{
$val["active_text"] = $this->lng->txt("inactive");
if ($val["active"])
{
$val["active_text"] = $this->lng->txt("active");
}
// check if the fields are set
$searchStringToLower = strtolower($_POST["search_string"]);
$displaySearchResult = false;
if (in_array("username", $_POST["search_fields"]))
if (strpos(strtolower($val["login"]), strtolower($_POST["search_string"])) !== false)
$displaySearchResult = true;
if (in_array("firstname", $_POST["search_fields"]))
if (strpos(strtolower($val["firstname"]), strtolower($_POST["search_string"])) !== false)
$displaySearchResult = true;
if (in_array("lastname", $_POST["search_fields"]))
if (strpos(strtolower($val["lastname"]), strtolower($_POST["search_string"])) !== false)
$displaySearchResult = true;
if (in_array("email", $_POST["search_fields"]))
if (strpos(strtolower($val["email"]), strtolower($_POST["search_string"])) !== false)
$displaySearchResult = true;
if (($val["active"] == 1) && ($searchActive == true) ||
($val["active"] == 0) && ($searchInactive == true))
{
if ((strcmp($_POST["search_string"], "%") == 0) || $displaySearchResult)
{
//visible data part
$this->data["data"][] = array(
"login" => $val["login"],
"firstname" => $val["firstname"],
"lastname" => $val["lastname"],
"email" => $val["email"],
"active" => $val["active_text"],
"obj_id" => $val["usr_id"]
);
}
}
}
if (count($this->data["data"]) == 0)
{
sendInfo($this->lng->txt("msg_no_search_result")." ".$this->lng->txt("with")." '".htmlspecialchars($_POST["search_string"])."'",true);
header("Location: adm_object.php?ref_id=".$_GET["ref_id"]."&cmd=searchUserForm");
exit();
}
$this->maxcount = count($this->data["data"]);
// TODO: correct this in objectGUI
if ($_GET["sort_by"] == "name")
{
$_GET["sort_by"] = "login";
}
// sorting array
$this->data["data"] = ilUtil::sortArray($this->data["data"],$_GET["sort_by"],$_GET["sort_order"]);
$this->data["data"] = array_slice($this->data["data"],$_GET["offset"],$_GET["limit"]);
// now compute control information
foreach ($this->data["data"] as $key => $val)
{
$this->data["ctrl"][$key] = array(
"ref_id" => $this->id,
"obj_id" => $val["obj_id"]
);
$tmp[] = $val["obj_id"];
unset($this->data["data"][$key]["obj_id"]);
}
// remember filtered users
$_SESSION["user_list"] = $tmp;
// load template for table
$this->tpl->addBlockfile("ADM_CONTENT", "adm_content", "tpl.table.html");
// load template for table content data
$this->tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.obj_tbl_rows.html");
$num = 0;
$this->tpl->setVariable("FORMACTION", "adm_object.php?ref_id=".$this->ref_id."&cmd=gateway&sort_by=name&sort_order=".$_GET["sort_order"]."&offset=".$_GET["offset"]);
// create table
include_once "./classes/class.ilTableGUI.php";
$tbl = new ilTableGUI();
// title & header columns
$tbl->setTitle($this->lng->txt("search_result"),"icon_".$this->object->getType()."_b.gif",$this->lng->txt("obj_".$this->object->getType()));
$tbl->setHelp("tbl_help.php","icon_help.gif",$this->lng->txt("help"));
foreach ($this->data["cols"] as $val)
{
$header_names[] = $this->lng->txt($val);
}
$tbl->setHeaderNames($header_names);
$header_params = array(
"ref_id" => $this->ref_id,
"cmd" => "searchUser",
"search_string" => urlencode($_POST["search_string"]),
"search_fields" => urlencode(implode(",",$_POST["search_fields"]))
);
$tbl->setHeaderVars($this->data["cols"],$header_params);
$tbl->setColumnWidth(array("","25%","25$%","25%","25%"));
// control
$tbl->enable("hits");
$tbl->setOrderColumn($_GET["sort_by"]);
$tbl->setOrderDirection($_GET["sort_order"]);
$tbl->setLimit($_GET["limit"]);
$tbl->setOffset($_GET["offset"]);
$tbl->setMaxCount($this->maxcount);
$this->tpl->setVariable("COLUMN_COUNTS",count($this->data["cols"]));
// footer
$tbl->setFooter("tblfooter",$this->lng->txt("previous"),$this->lng->txt("next"));
// render table
$tbl->render();
if (is_array($this->data["data"][0]))
{
//table cell
for ($i=0; $i < count($this->data["data"]); $i++)
{
$data = $this->data["data"][$i];
$ctrl = $this->data["ctrl"][$i];
// dirty workaround to have ids for function showActions (checkbox toggle option)
$this->ids[] = $ctrl["obj_id"];
// color changing
$css_row = ilUtil::switchColor($i+1,"tblrow1","tblrow2");
$this->tpl->setCurrentBlock("checkbox");
$this->tpl->setVariable("CHECKBOX_ID", $ctrl["obj_id"]);
//$this->tpl->setVariable("CHECKED", $checked);
$this->tpl->setVariable("CSS_ROW", $css_row);
$this->tpl->parseCurrentBlock();
$this->tpl->setCurrentBlock("table_cell");
$this->tpl->setVariable("CELLSTYLE", "tblrow1");
$this->tpl->parseCurrentBlock();
foreach ($data as $key => $val)
{
//build link
$link = "adm_object.php?ref_id=7&obj_id=".$ctrl["obj_id"];
if ($key == "login")
{
$this->tpl->setCurrentBlock("begin_link");
$this->tpl->setVariable("LINK_TARGET", $link);
$this->tpl->parseCurrentBlock();
$this->tpl->touchBlock("end_link");
}
$this->tpl->setCurrentBlock("text");
$this->tpl->setVariable("TEXT_CONTENT", $val);
$this->tpl->parseCurrentBlock();
$this->tpl->setCurrentBlock("table_cell");
$this->tpl->parseCurrentBlock();
} //foreach
$this->tpl->setCurrentBlock("tbl_content");
$this->tpl->setVariable("CSS_ROW", $css_row);
$this->tpl->parseCurrentBlock();
} //for
$this->showActions(true);
}
}
Here is the call graph for this function:| ilObjUserFolderGUI::settingsObject | ( | ) |
Global user settings.
Allows to define global settings for user accounts
Definition at line 1576 of file class.ilObjUserFolderGUI.php.
References $_GET, ilObjectGUI::$ilias, $profile_fields, and ilObjectGUI::getTemplateFile().
Referenced by saveGlobalUserSettingsObject().
{
global $ilias;
$this->getTemplateFile("settings","usr");
$profile_fields = array(
"gender",
"password",
"firstname",
"lastname",
"title",
"upload",
"institution",
"department",
"street",
"city",
"zipcode",
"country",
"phone_office",
"phone_home",
"phone_mobile",
"fax",
"email",
"hobby",
"matriculation",
"referral_comment",
"language",
"skin_style"
);
foreach ($profile_fields as $field)
{
$this->tpl->setCurrentBlock("profile_settings");
$this->tpl->setVariable("TXT_PROFILE_DATA", $this->lng->txt($field));
$this->tpl->setVariable("PROFILE_OPTION_DISABLE", "disable_" . $field);
$this->tpl->setVariable("PROFILE_OPTION_HIDE", "hide_" . $field);
if ($ilias->getSetting("usr_settings_disable_" . $field) == 1)
{
$this->tpl->setVariable("CHECKED_DISABLE", " checked=\"checked\"");
}
if ($ilias->getSetting("usr_settings_hide_" . $field) == 1)
{
$this->tpl->setVariable("CHECKED_HIDE", " checked=\"checked\"");
}
$this->tpl->parseCurrentBlock();
}
$this->tpl->setVariable("FORMACTION", "adm_object.php?ref_id=".$_GET["ref_id"]."&cmd=gateway");
$this->tpl->setVariable("TXT_HEADER_PROFILE", $this->lng->txt("usr_settings_header_profile"));
$this->tpl->setVariable("TXT_EXPLANATION_PROFILE", $this->lng->txt("usr_settings_explanation_profile"));
$this->tpl->setVariable("HEADER_PROFILE_DATA", $this->lng->txt("usr_settings_header_profile_profile"));
$this->tpl->setVariable("HEADER_DISABLE", $this->lng->txt("disable"));
$this->tpl->setVariable("HEADER_HIDE", $this->lng->txt("hide"));
$this->tpl->setVariable("TXT_SAVE", $this->lng->txt("save"));
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilObjUserFolderGUI::showActions | ( | $ | with_subobjects = false |
) |
show possible action (form buttons)
| boolean | public |
Reimplemented from ilObjectGUI.
Definition at line 282 of file class.ilObjUserFolderGUI.php.
References $_GET, $d, $rbacsystem, $row, ilUtil::array_php2js(), ilUtil::getImagePath(), and showPossibleSubObjects().
Referenced by displayList(), and searchUserObject().
{
global $rbacsystem;
$operations = array();
if ($this->actions == "")
{
$d = $this->objDefinition->getActions($_GET["type"]);
}
else
{
$d = $this->actions;
}
foreach ($d as $row)
{
if ($rbacsystem->checkAccess($row["name"],$this->object->getRefId()))
{
$operations[] = $row;
}
}
if (count($operations) > 0)
{
foreach ($operations as $val)
{
$this->tpl->setCurrentBlock("tbl_action_btn");
$this->tpl->setVariable("IMG_ARROW", ilUtil::getImagePath("arrow_downright.gif"));
$this->tpl->setVariable("BTN_NAME", $val["name"]);
$this->tpl->setVariable("BTN_VALUE", $this->lng->txt($val["lng"]));
$this->tpl->parseCurrentBlock();
}
}
if ($with_subobjects === true)
{
$subobjs = $this->showPossibleSubObjects();
}
if ((count($operations) > 0) or $subobjs === true)
{
if (!empty($this->ids))
{
// set checkbox toggles
$this->tpl->setCurrentBlock("tbl_action_toggle_checkboxes");
$this->tpl->setVariable("JS_VARNAME","id");
$this->tpl->setVariable("JS_ONCLICK",ilUtil::array_php2js($this->ids));
$this->tpl->setVariable("TXT_CHECKALL", $this->lng->txt("check_all"));
$this->tpl->setVariable("TXT_UNCHECKALL", $this->lng->txt("uncheck_all"));
$this->tpl->parseCurrentBlock();
}
$this->tpl->setCurrentBlock("tbl_action_row");
$this->tpl->setVariable("COLUMN_COUNTS",count($this->data["cols"]));
$this->tpl->parseCurrentBlock();
}
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilObjUserFolderGUI::showPossibleSubObjects | ( | ) |
show possible subobjects (pulldown menu) overwritten to prevent displaying of role templates in local role folders
public
Reimplemented from ilObjectGUI.
Definition at line 348 of file class.ilObjUserFolderGUI.php.
References $count, $d, $rbacsystem, $row, and formSelect().
Referenced by showActions().
{
global $rbacsystem;
$d = $this->objDefinition->getCreatableSubObjects($this->object->getType());
if (!$rbacsystem->checkAccess('create_user',$this->object->getRefId()))
{
unset($d["usr"]);
}
if (count($d) > 0)
{
foreach ($d as $row)
{
$count = 0;
if ($row["max"] > 0)
{
//how many elements are present?
for ($i=0; $i<count($this->data["ctrl"]); $i++)
{
if ($this->data["ctrl"][$i]["type"] == $row["name"])
{
$count++;
}
}
}
if ($row["max"] == "" || $count < $row["max"])
{
$subobj[] = $row["name"];
}
}
}
if (is_array($subobj))
{
//build form
$opts = ilUtil::formSelect(12,"new_type",$subobj);
$this->tpl->setCurrentBlock("add_object");
$this->tpl->setVariable("SELECT_OBJTYPE", $opts);
$this->tpl->setVariable("BTN_NAME", "create");
$this->tpl->setVariable("TXT_ADD", $this->lng->txt("add"));
$this->tpl->parseCurrentBlock();
return true;
}
return false;
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilObjUserFolderGUI::updateAppliedUsersObject | ( | ) |
Definition at line 1391 of file class.ilObjUserFolderGUI.php.
References $_POST, $_SESSION, $rbacsystem, $start, $tmp_user, __toUnix(), appliedUsersObject(), editAppliedUsersObject(), ilObjectFactory::getInstanceByObjId(), and sendInfo().
{
global $rbacsystem;
if(!$rbacsystem->checkAccess("write", $this->ref_id))
{
$this->ilias->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilias->error_obj->MESSAGE);
}
$start = $this->__toUnix($_POST['au']['time_limit_start']);
$end = $this->__toUnix($_POST['au']['time_limit_end']);
if(!$_POST['au']['time_limit_unlimited'])
{
if($start > $end)
{
$_SESSION['error_post_vars'] = $_POST;
sendInfo($this->lng->txt('time_limit_not_valid'));
$this->editAppliedUsersObject();
return false;
}
}
#if(!$this->ilias->account->getTimeLimitUnlimited())
#{
# if($start < $this->ilias->account->getTimeLimitFrom() or
# $end > $this->ilias->account->getTimeLimitUntil())
# {
# $_SESSION['error_post_vars'] = $_POST;
# sendInfo($this->lng->txt('time_limit_not_within_owners'));
# $this->editAppliedUsersObject();
# return false;
# }
#}
foreach($_SESSION['applied_users'] as $usr_id)
{
$tmp_user =& ilObjectFactory::getInstanceByObjId($usr_id);
$tmp_user->setTimeLimitUnlimited((int) $_POST['au']['time_limit_unlimited']);
$tmp_user->setTimeLimitFrom($start);
$tmp_user->setTimeLimitUntil($end);
$tmp_user->setTimeLimitMessage(0);
$tmp_user->update();
unset($tmp_user);
}
unset($_SESSION['applied_users']);
sendInfo($this->lng->txt('time_limit_users_updated'));
$this->appliedUsersObject();
return true;
}
Here is the call graph for this function:| ilObjUserFolderGUI::viewObject | ( | ) |
list users
public
Reimplemented from ilObjectGUI.
Definition at line 84 of file class.ilObjUserFolderGUI.php.
References $_GET, $rbacsystem, ilObjUser::_getAllUserData(), displayList(), and ilUtil::sortArray().
Referenced by hitsperpageObject().
{
global $rbacsystem;
if (!$rbacsystem->checkAccess("visible,read",$this->object->getRefId()))
{
$this->ilias->raiseError($this->lng->txt("permission_denied"),$this->ilias->error_obj->MESSAGE);
}
//prepare objectlist
$this->data = array();
$this->data["data"] = array();
$this->data["ctrl"] = array();
$this->data["cols"] = array("", "login", "firstname", "lastname", "email");
$usr_data = ilObjUser::_getAllUserData(array("login","firstname","lastname","email"));
foreach ($usr_data as $val)
{
if ($val["usr_id"] == ANONYMOUS_USER_ID)
{
continue;
}
//visible data part
$this->data["data"][] = array(
"login" => $val["login"],
"firstname" => $val["firstname"],
"lastname" => $val["lastname"],
"email" => $val["email"],
"obj_id" => $val["usr_id"]
);
}
$this->maxcount = count($this->data["data"]);
// TODO: correct this in objectGUI
if ($_GET["sort_by"] == "name")
{
$_GET["sort_by"] = "login";
}
// sorting array
$this->data["data"] = ilUtil::sortArray($this->data["data"],$_GET["sort_by"],$_GET["sort_order"]);
$this->data["data"] = array_slice($this->data["data"],$_GET["offset"],$_GET["limit"]);
// now compute control information
foreach ($this->data["data"] as $key => $val)
{
$this->data["ctrl"][$key] = array(
"ref_id" => $this->id,
"obj_id" => $val["obj_id"]
);
$tmp[] = $val["obj_id"];
unset($this->data["data"][$key]["obj_id"]);
}
//add template for buttons
$this->tpl->addBlockfile("BUTTONS", "buttons", "tpl.buttons.html");
// display button
$this->tpl->setCurrentBlock("btn_cell");
$this->tpl->setVariable("BTN_LINK","adm_object.php?ref_id=".$this->ref_id.$obj_str."&cmd=searchUserForm");
$this->tpl->setVariable("BTN_TXT",$this->lng->txt("search_user"));
$this->tpl->parseCurrentBlock();
if (AUTH_CURRENT == AUTH_LOCAL)
{
$this->tpl->setCurrentBlock("btn_cell");
$this->tpl->setVariable("BTN_LINK", "adm_object.php?ref_id=".$this->ref_id.$obj_str."&cmd=importUserForm");
$this->tpl->setVariable("BTN_TXT", $this->lng->txt("import_users"));
$this->tpl->parseCurrentBlock();
}
$this->displayList();
} //function
Here is the call graph for this function:
Here is the caller graph for this function:| ilObjUserFolderGUI::$ctrl |
Definition at line 39 of file class.ilObjUserFolderGUI.php.
Referenced by displayList(), and searchUserObject().
1.7.1