00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00035 require_once "class.ilObjectGUI.php";
00036
00037 class ilObjUserFolderGUI extends ilObjectGUI
00038 {
00039 var $ctrl;
00040
00045 function ilObjUserFolderGUI($a_data,$a_id,$a_call_by_reference, $a_prepare_output = true)
00046 {
00047 global $ilCtrl;
00048
00049 define('USER_FOLDER_ID',7);
00050
00051 $this->ctrl =& $ilCtrl;
00052
00053 $this->type = "usrf";
00054
00055 $this->ilObjectGUI($a_data,$a_id,$a_call_by_reference,$a_prepare_output);
00056 }
00057
00058 function &executeCommand()
00059 {
00060 global $rbacsystem;
00061
00062 $next_class = $this->ctrl->getNextClass($this);
00063 $cmd = $this->ctrl->getCmd();
00064 switch($next_class)
00065 {
00066 default:
00067 if(!$cmd)
00068 {
00069 $cmd = "view";
00070 }
00071 $cmd .= "Object";
00072 $this->$cmd();
00073
00074 break;
00075 }
00076 return true;
00077 }
00078
00084 function viewObject()
00085 {
00086 global $rbacsystem;
00087
00088 if (!$rbacsystem->checkAccess("visible,read",$this->object->getRefId()))
00089 {
00090 $this->ilias->raiseError($this->lng->txt("permission_denied"),$this->ilias->error_obj->MESSAGE);
00091 }
00092
00093
00094 $this->data = array();
00095 $this->data["data"] = array();
00096 $this->data["ctrl"] = array();
00097
00098 $this->data["cols"] = array("", "login", "firstname", "lastname", "email");
00099
00100 $usr_data = ilObjUser::_getAllUserData(array("login","firstname","lastname","email"));
00101
00102 foreach ($usr_data as $val)
00103 {
00104 if ($val["usr_id"] == ANONYMOUS_USER_ID)
00105 {
00106 continue;
00107 }
00108
00109
00110 $this->data["data"][] = array(
00111 "login" => $val["login"],
00112 "firstname" => $val["firstname"],
00113 "lastname" => $val["lastname"],
00114 "email" => $val["email"],
00115 "obj_id" => $val["usr_id"]
00116 );
00117 }
00118
00119 $this->maxcount = count($this->data["data"]);
00120
00121 if ($_GET["sort_by"] == "name")
00122 {
00123 $_GET["sort_by"] = "login";
00124 }
00125
00126
00127 $this->data["data"] = ilUtil::sortArray($this->data["data"],$_GET["sort_by"],$_GET["sort_order"]);
00128 $this->data["data"] = array_slice($this->data["data"],$_GET["offset"],$_GET["limit"]);
00129
00130
00131 foreach ($this->data["data"] as $key => $val)
00132 {
00133 $this->data["ctrl"][$key] = array(
00134 "ref_id" => $this->id,
00135 "obj_id" => $val["obj_id"]
00136 );
00137 $tmp[] = $val["obj_id"];
00138 unset($this->data["data"][$key]["obj_id"]);
00139 }
00140
00141
00142 $this->tpl->addBlockfile("BUTTONS", "buttons", "tpl.buttons.html");
00143
00144
00145 $this->tpl->setCurrentBlock("btn_cell");
00146 $this->tpl->setVariable("BTN_LINK","adm_object.php?ref_id=".$this->ref_id.$obj_str."&cmd=searchUserForm");
00147 $this->tpl->setVariable("BTN_TXT",$this->lng->txt("search_user"));
00148 $this->tpl->parseCurrentBlock();
00149
00150 if (AUTH_CURRENT == AUTH_LOCAL)
00151 {
00152 $this->tpl->setCurrentBlock("btn_cell");
00153 $this->tpl->setVariable("BTN_LINK", "adm_object.php?ref_id=".$this->ref_id.$obj_str."&cmd=importUserForm");
00154 $this->tpl->setVariable("BTN_TXT", $this->lng->txt("import_users"));
00155 $this->tpl->parseCurrentBlock();
00156 }
00157
00158 $this->displayList();
00159 }
00160
00161
00167 function displayList()
00168 {
00169 include_once "./classes/class.ilTableGUI.php";
00170
00171
00172 $this->tpl->addBlockfile("ADM_CONTENT", "adm_content", "tpl.table.html");
00173
00174 $this->tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.obj_tbl_rows.html");
00175
00176 $num = 0;
00177
00178 $obj_str = ($this->call_by_reference) ? "" : "&obj_id=".$this->obj_id;
00179 $this->tpl->setVariable("FORMACTION", "adm_object.php?ref_id=".$this->ref_id."$obj_str&cmd=gateway");
00180
00181
00182 $tbl = new ilTableGUI();
00183
00184
00185 $tbl->setTitle($this->object->getTitle(),"icon_".$this->object->getType()."_b.gif",
00186 $this->lng->txt("obj_".$this->object->getType()));
00187
00188
00189 foreach ($this->data["cols"] as $val)
00190 {
00191 $header_names[] = $this->lng->txt($val);
00192 }
00193
00194 $tbl->setHeaderNames($header_names);
00195
00196 $header_params = array("ref_id" => $this->ref_id);
00197 $tbl->setHeaderVars($this->data["cols"],$header_params);
00198 $tbl->setColumnWidth(array("","25%","25$%","25%","25%"));
00199
00200
00201
00202
00203 $tbl->setOrderColumn($_GET["sort_by"]);
00204 $tbl->setOrderDirection($_GET["sort_order"]);
00205 $tbl->setLimit($_GET["limit"]);
00206 $tbl->setOffset($_GET["offset"]);
00207 $tbl->setMaxCount($this->maxcount);
00208
00209 if (AUTH_CURRENT != AUTH_LOCAL)
00210 {
00211 $this->showActions(false);
00212 }
00213 else
00214 {
00215 $this->showActions(true);
00216 }
00217
00218
00219 $tbl->setFooter("tblfooter",$this->lng->txt("previous"),$this->lng->txt("next"));
00220 #$tbl->disable("footer");
00221
00222
00223 $tbl->render();
00224
00225 if (is_array($this->data["data"][0]))
00226 {
00227
00228 for ($i=0; $i < count($this->data["data"]); $i++)
00229 {
00230 $data = $this->data["data"][$i];
00231 $ctrl = $this->data["ctrl"][$i];
00232
00233
00234 $css_row = ilUtil::switchColor($i+1,"tblrow1","tblrow2");
00235
00236 $this->tpl->setCurrentBlock("checkbox");
00237 $this->tpl->setVariable("CHECKBOX_ID", $ctrl["obj_id"]);
00238
00239 $this->tpl->setVariable("CSS_ROW", $css_row);
00240 $this->tpl->parseCurrentBlock();
00241
00242 $this->tpl->setCurrentBlock("table_cell");
00243 $this->tpl->setVariable("CELLSTYLE", "tblrow1");
00244 $this->tpl->parseCurrentBlock();
00245
00246 foreach ($data as $key => $val)
00247 {
00248
00249 $link = "adm_object.php?ref_id=7&obj_id=".$ctrl["obj_id"];
00250
00251 if ($key == "login")
00252 {
00253 $this->tpl->setCurrentBlock("begin_link");
00254 $this->tpl->setVariable("LINK_TARGET", $link);
00255 $this->tpl->parseCurrentBlock();
00256 $this->tpl->touchBlock("end_link");
00257 }
00258
00259 $this->tpl->setCurrentBlock("text");
00260 $this->tpl->setVariable("TEXT_CONTENT", $val);
00261 $this->tpl->parseCurrentBlock();
00262 $this->tpl->setCurrentBlock("table_cell");
00263 $this->tpl->parseCurrentBlock();
00264 }
00265
00266 $this->tpl->setCurrentBlock("tbl_content");
00267 $this->tpl->setVariable("CSS_ROW", $css_row);
00268 $this->tpl->parseCurrentBlock();
00269 }
00270 }
00271
00272
00273
00274 }
00275
00282 function showActions($with_subobjects = false)
00283 {
00284 global $rbacsystem;
00285
00286 $operations = array();
00287
00288 if ($this->actions == "")
00289 {
00290 $d = $this->objDefinition->getActions($_GET["type"]);
00291 }
00292 else
00293 {
00294 $d = $this->actions;
00295 }
00296
00297 foreach ($d as $row)
00298 {
00299 if ($rbacsystem->checkAccess($row["name"],$this->object->getRefId()))
00300 {
00301 $operations[] = $row;
00302 }
00303 }
00304
00305 if (count($operations) > 0)
00306 {
00307 foreach ($operations as $val)
00308 {
00309 $this->tpl->setCurrentBlock("tbl_action_btn");
00310 $this->tpl->setVariable("IMG_ARROW", ilUtil::getImagePath("arrow_downright.gif"));
00311 $this->tpl->setVariable("BTN_NAME", $val["name"]);
00312 $this->tpl->setVariable("BTN_VALUE", $this->lng->txt($val["lng"]));
00313 $this->tpl->parseCurrentBlock();
00314 }
00315 }
00316
00317 if ($with_subobjects === true)
00318 {
00319 $subobjs = $this->showPossibleSubObjects();
00320 }
00321
00322 if ((count($operations) > 0) or $subobjs === true)
00323 {
00324 $this->tpl->setCurrentBlock("tbl_action_row");
00325 $this->tpl->setVariable("COLUMN_COUNTS",count($this->data["cols"]));
00326 $this->tpl->parseCurrentBlock();
00327 }
00328 }
00329
00336 function showPossibleSubObjects()
00337 {
00338 global $rbacsystem;
00339
00340 $d = $this->objDefinition->getCreatableSubObjects($this->object->getType());
00341
00342 if (!$rbacsystem->checkAccess('create_user',$this->object->getRefId()))
00343 {
00344 unset($d["usr"]);
00345 }
00346
00347 if (count($d) > 0)
00348 {
00349 foreach ($d as $row)
00350 {
00351 $count = 0;
00352 if ($row["max"] > 0)
00353 {
00354
00355 for ($i=0; $i<count($this->data["ctrl"]); $i++)
00356 {
00357 if ($this->data["ctrl"][$i]["type"] == $row["name"])
00358 {
00359 $count++;
00360 }
00361 }
00362 }
00363 if ($row["max"] == "" || $count < $row["max"])
00364 {
00365 $subobj[] = $row["name"];
00366 }
00367 }
00368 }
00369
00370 if (is_array($subobj))
00371 {
00372
00373 $opts = ilUtil::formSelect(12,"new_type",$subobj);
00374 $this->tpl->setCurrentBlock("add_object");
00375 $this->tpl->setVariable("SELECT_OBJTYPE", $opts);
00376 $this->tpl->setVariable("BTN_NAME", "create");
00377 $this->tpl->setVariable("TXT_ADD", $this->lng->txt("add"));
00378 $this->tpl->parseCurrentBlock();
00379
00380 return true;
00381 }
00382
00383 return false;
00384 }
00385
00391 function confirmedDeleteObject()
00392 {
00393 global $rbacsystem;
00394
00395
00396 if (!$rbacsystem->checkAccess('delete',$this->object->getRefId()))
00397 {
00398 $this->ilias->raiseError($this->lng->txt("msg_no_perm_delete"),$this->ilias->error_obj->WARNING);
00399 }
00400
00401 if (in_array($_SESSION["AccountId"],$_SESSION["saved_post"]))
00402 {
00403 $this->ilias->raiseError($this->lng->txt("msg_no_delete_yourself"),$this->ilias->error_obj->WARNING);
00404 }
00405
00406
00407 foreach ($_SESSION["saved_post"] as $id)
00408 {
00409
00410 $obj =& $this->ilias->obj_factory->getInstanceByObjId($id);
00411 $obj->delete();
00412 }
00413
00414
00415 sendInfo($this->lng->txt("user_deleted"),true);
00416
00417 ilUtil::redirect("adm_object.php?ref_id=".$_GET["ref_id"]);
00418 }
00419
00423 function deleteObject()
00424 {
00425 if(!isset($_POST["id"]))
00426 {
00427 $this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE);
00428 }
00429
00430 $_SESSION["saved_post"] = $_POST["id"];
00431
00432 unset($this->data);
00433 $this->data["cols"] = array("type", "title", "description", "last_change");
00434
00435 foreach($_POST["id"] as $id)
00436 {
00437 $obj_data =& $this->ilias->obj_factory->getInstanceByObjId($id);
00438
00439 $this->data["data"]["$id"] = array(
00440 "type" => $obj_data->getType(),
00441 "title" => $obj_data->getTitle(),
00442 "desc" => $obj_data->getDescription(),
00443 "last_update" => $obj_data->getLastUpdateDate());
00444 }
00445
00446 $this->data["buttons"] = array( "cancelDelete" => $this->lng->txt("cancel"),
00447 "confirmedDelete" => $this->lng->txt("confirm"));
00448
00449 $this->getTemplateFile("confirm");
00450
00451 sendInfo($this->lng->txt("info_delete_sure"));
00452
00453 $this->tpl->setVariable("FORMACTION", "adm_object.php?ref_id=".$_GET["ref_id"]."&cmd=gateway");
00454
00455
00456 foreach ($this->data["cols"] as $key)
00457 {
00458 $this->tpl->setCurrentBlock("table_header");
00459 $this->tpl->setVariable("TEXT",$this->lng->txt($key));
00460 $this->tpl->parseCurrentBlock();
00461 }
00462
00463
00464
00465 $counter = 0;
00466
00467 foreach($this->data["data"] as $key => $value)
00468 {
00469
00470 foreach($value as $key => $cell_data)
00471 {
00472 $this->tpl->setCurrentBlock("table_cell");
00473
00474
00475 if($key == "type")
00476 {
00477 $this->tpl->setVariable("TEXT_CONTENT",ilUtil::getImageTagByType($cell_data,$this->tpl->tplPath));
00478 }
00479 else
00480 {
00481 $this->tpl->setVariable("TEXT_CONTENT",$cell_data);
00482 }
00483 $this->tpl->parseCurrentBlock();
00484 }
00485
00486 $this->tpl->setCurrentBlock("table_row");
00487 $this->tpl->setVariable("CSS_ROW",ilUtil::switchColor(++$counter,"tblrow1","tblrow2"));
00488 $this->tpl->parseCurrentBlock();
00489
00490 }
00491
00492
00493
00494 foreach($this->data["buttons"] as $name => $value)
00495 {
00496 $this->tpl->setCurrentBlock("operation_btn");
00497 $this->tpl->setVariable("BTN_NAME",$name);
00498 $this->tpl->setVariable("BTN_VALUE",$value);
00499 $this->tpl->parseCurrentBlock();
00500 }
00501 }
00502
00508 function searchUserFormObject ()
00509 {
00510 $this->tpl->addBlockfile("ADM_CONTENT", "adm_content", "tpl.usr_search_form.html");
00511
00512 $this->tpl->setVariable("FORMACTION", "adm_object.php?ref_id=".$this->ref_id."&cmd=gateway");
00513 $this->tpl->setVariable("USERNAME_CHECKED", " checked=\"checked\"");
00514 $this->tpl->setVariable("FIRSTNAME_CHECKED", " checked=\"checked\"");
00515 $this->tpl->setVariable("LASTNAME_CHECKED", " checked=\"checked\"");
00516 $this->tpl->setVariable("EMAIL_CHECKED", " checked=\"checked\"");
00517 $this->tpl->setVariable("ACTIVE_CHECKED", " checked=\"checked\"");
00518 $this->tpl->setVariable("INACTIVE_CHECKED", " checked=\"checked\"");
00519 $this->tpl->setVariable("TXT_SEARCH_USER",$this->lng->txt("search_user"));
00520 $this->tpl->setVariable("TXT_SEARCH_IN",$this->lng->txt("search_in"));
00521 $this->tpl->setVariable("TXT_SEARCH_USERNAME",$this->lng->txt("username"));
00522 $this->tpl->setVariable("TXT_SEARCH_FIRSTNAME",$this->lng->txt("firstname"));
00523 $this->tpl->setVariable("TXT_SEARCH_LASTNAME",$this->lng->txt("lastname"));
00524 $this->tpl->setVariable("TXT_SEARCH_EMAIL",$this->lng->txt("email"));
00525 $this->tpl->setVariable("TXT_SEARCH_ACTIVE",$this->lng->txt("search_active"));
00526 $this->tpl->setVariable("TXT_SEARCH_INACTIVE",$this->lng->txt("search_inactive"));
00527 $this->tpl->setVariable("BUTTON_SEARCH",$this->lng->txt("search"));
00528 $this->tpl->setVariable("BUTTON_CANCEL",$this->lng->txt("cancel"));
00529 $this->tpl->setVariable("TXT_SEARCH_NOTE",$this->lng->txt("search_note"));
00530 }
00531
00532 function searchCancelledObject()
00533 {
00534 sendInfo($this->lng->txt("action_aborted"),true);
00535
00536 header("Location: adm_object.php?ref_id=".$_GET["ref_id"]."&cmd=gateway");
00537 exit();
00538 }
00539
00540 function searchUserObject()
00541 {
00542 global $rbacreview;
00543
00544 $obj_str = "&obj_id=".$this->obj_id;
00545
00546 $_POST["search_string"] = $_POST["search_string"] ? $_POST["search_string"] : urldecode($_GET["search_string"]);
00547 $_POST["search_fields"] = $_POST["search_fields"] ? $_POST["search_fields"] : urldecode($_GET["search_fields"]);
00548
00549 if (empty($_POST["search_string"]))
00550 {
00551 $_POST["search_string"] = "%";
00552 }
00553
00554 if (count($search_result = ilObjUser::searchUsers($_POST["search_string"])) == 0)
00555 {
00556 sendInfo($this->lng->txt("msg_no_search_result")." ".$this->lng->txt("with")." '".htmlspecialchars($_POST["search_string"])."'",true);
00557
00558 header("Location: adm_object.php?ref_id=".$_GET["ref_id"]."&cmd=searchUserForm");
00559 exit();
00560 }
00561
00562 $this->tpl->addBlockfile("BUTTONS", "buttons", "tpl.buttons.html");
00563
00564
00565 $this->tpl->setCurrentBlock("btn_cell");
00566 $this->tpl->setVariable("BTN_LINK","adm_object.php?ref_id=".$this->ref_id."&cmd=searchUserForm");
00567 $this->tpl->setVariable("BTN_TXT",$this->lng->txt("search_new"));
00568 $this->tpl->parseCurrentBlock();
00569
00570 $this->data["cols"] = array("", "login", "firstname", "lastname", "email", "active");
00571
00572 if (in_array("active", $_POST["search_fields"]))
00573 {
00574 $searchActive = true;
00575 }
00576 if (in_array("inactive", $_POST["search_fields"]))
00577 {
00578 $searchInactive = true;
00579 }
00580
00581 foreach ($search_result as $key => $val)
00582 {
00583 $val["active_text"] = $this->lng->txt("inactive");
00584 if ($val["active"])
00585 {
00586 $val["active_text"] = $this->lng->txt("active");
00587 }
00588
00589
00590 $searchStringToLower = strtolower($_POST["search_string"]);
00591 $displaySearchResult = false;
00592 if (in_array("username", $_POST["search_fields"]))
00593 if (strpos(strtolower($val["login"]), strtolower($_POST["search_string"])) !== false)
00594 $displaySearchResult = true;
00595 if (in_array("firstname", $_POST["search_fields"]))
00596 if (strpos(strtolower($val["firstname"]), strtolower($_POST["search_string"])) !== false)
00597 $displaySearchResult = true;
00598 if (in_array("lastname", $_POST["search_fields"]))
00599 if (strpos(strtolower($val["lastname"]), strtolower($_POST["search_string"])) !== false)
00600 $displaySearchResult = true;
00601 if (in_array("email", $_POST["search_fields"]))
00602 if (strpos(strtolower($val["email"]), strtolower($_POST["search_string"])) !== false)
00603 $displaySearchResult = true;
00604 if (($val["active"] == 1) && ($searchActive == true) ||
00605 ($val["active"] == 0) && ($searchInactive == true))
00606 {
00607 if ((strcmp($_POST["search_string"], "%") == 0) || $displaySearchResult)
00608 {
00609
00610 $this->data["data"][] = array(
00611 "login" => $val["login"],
00612 "firstname" => $val["firstname"],
00613 "lastname" => $val["lastname"],
00614 "email" => $val["email"],
00615 "active" => $val["active_text"],
00616 "obj_id" => $val["usr_id"]
00617 );
00618 }
00619 }
00620 }
00621 if (count($this->data["data"]) == 0)
00622 {
00623 sendInfo($this->lng->txt("msg_no_search_result")." ".$this->lng->txt("with")." '".htmlspecialchars($_POST["search_string"])."'",true);
00624
00625 header("Location: adm_object.php?ref_id=".$_GET["ref_id"]."&cmd=searchUserForm");
00626 exit();
00627 }
00628
00629 $this->maxcount = count($this->data["data"]);
00630
00631
00632 if ($_GET["sort_by"] == "name")
00633 {
00634 $_GET["sort_by"] = "login";
00635 }
00636
00637
00638 $this->data["data"] = ilUtil::sortArray($this->data["data"],$_GET["sort_by"],$_GET["sort_order"]);
00639 $this->data["data"] = array_slice($this->data["data"],$_GET["offset"],$_GET["limit"]);
00640
00641
00642 foreach ($this->data["data"] as $key => $val)
00643 {
00644 $this->data["ctrl"][$key] = array(
00645 "ref_id" => $this->id,
00646 "obj_id" => $val["obj_id"]
00647 );
00648 $tmp[] = $val["obj_id"];
00649 unset($this->data["data"][$key]["obj_id"]);
00650 }
00651
00652
00653 $_SESSION["user_list"] = $tmp;
00654
00655
00656 $this->tpl->addBlockfile("ADM_CONTENT", "adm_content", "tpl.table.html");
00657
00658 $this->tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.obj_tbl_rows.html");
00659
00660 $num = 0;
00661
00662 $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"]);
00663
00664
00665 include_once "./classes/class.ilTableGUI.php";
00666 $tbl = new ilTableGUI();
00667
00668
00669 $tbl->setTitle($this->lng->txt("search_result"),"icon_".$this->object->getType()."_b.gif",$this->lng->txt("obj_".$this->object->getType()));
00670 $tbl->setHelp("tbl_help.php","icon_help.gif",$this->lng->txt("help"));
00671
00672 foreach ($this->data["cols"] as $val)
00673 {
00674 $header_names[] = $this->lng->txt($val);
00675 }
00676
00677 $tbl->setHeaderNames($header_names);
00678
00679 $header_params = array(
00680 "ref_id" => $this->ref_id,
00681 "cmd" => "searchUser",
00682 "search_string" => urlencode($_POST["search_string"])
00683 );
00684
00685 $tbl->setHeaderVars($this->data["cols"],$header_params);
00686 $tbl->setColumnWidth(array("","25%","25$%","25%","25%"));
00687
00688
00689 $tbl->enable("hits");
00690 $tbl->setOrderColumn($_GET["sort_by"]);
00691 $tbl->setOrderDirection($_GET["sort_order"]);
00692 $tbl->setLimit($_GET["limit"]);
00693 $tbl->setOffset($_GET["offset"]);
00694 $tbl->setMaxCount($this->maxcount);
00695
00696 $this->tpl->setVariable("COLUMN_COUNTS",count($this->data["cols"]));
00697
00698 $this->showActions(true);
00699
00700
00701 $tbl->setFooter("tblfooter",$this->lng->txt("previous"),$this->lng->txt("next"));
00702
00703
00704 $tbl->render();
00705
00706 if (is_array($this->data["data"][0]))
00707 {
00708
00709 for ($i=0; $i < count($this->data["data"]); $i++)
00710 {
00711 $data = $this->data["data"][$i];
00712 $ctrl = $this->data["ctrl"][$i];
00713
00714
00715 $css_row = ilUtil::switchColor($i+1,"tblrow1","tblrow2");
00716
00717 $this->tpl->setCurrentBlock("checkbox");
00718 $this->tpl->setVariable("CHECKBOX_ID", $ctrl["obj_id"]);
00719
00720 $this->tpl->setVariable("CSS_ROW", $css_row);
00721 $this->tpl->parseCurrentBlock();
00722
00723 $this->tpl->setCurrentBlock("table_cell");
00724 $this->tpl->setVariable("CELLSTYLE", "tblrow1");
00725 $this->tpl->parseCurrentBlock();
00726
00727 foreach ($data as $key => $val)
00728 {
00729
00730 $link = "adm_object.php?ref_id=7&obj_id=".$ctrl["obj_id"];
00731
00732 if ($key == "login")
00733 {
00734 $this->tpl->setCurrentBlock("begin_link");
00735 $this->tpl->setVariable("LINK_TARGET", $link);
00736 $this->tpl->parseCurrentBlock();
00737 $this->tpl->touchBlock("end_link");
00738 }
00739
00740 $this->tpl->setCurrentBlock("text");
00741 $this->tpl->setVariable("TEXT_CONTENT", $val);
00742 $this->tpl->parseCurrentBlock();
00743 $this->tpl->setCurrentBlock("table_cell");
00744 $this->tpl->parseCurrentBlock();
00745 }
00746
00747 $this->tpl->setCurrentBlock("tbl_content");
00748 $this->tpl->setVariable("CSS_ROW", $css_row);
00749 $this->tpl->parseCurrentBlock();
00750 }
00751 }
00752 }
00753
00757 function importUserFormObject ()
00758 {
00759 $this->tpl->addBlockfile("ADM_CONTENT", "adm_content", "tpl.usr_import_form.html");
00760
00761
00762 $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormaction($this));
00763
00764 $this->tpl->setVariable("TXT_IMPORT_USERS", $this->lng->txt("import_users"));
00765 $this->tpl->setVariable("TXT_IMPORT_FILE", $this->lng->txt("import_file"));
00766 $this->tpl->setVariable("TXT_IMPORT_ROOT_USER", $this->lng->txt("import_root_user"));
00767
00768 $this->tpl->setVariable("BTN_IMPORT", $this->lng->txt("import"));
00769 $this->tpl->setVariable("BTN_CANCEL", $this->lng->txt("cancel"));
00770 }
00771
00772
00778 function importCancelledObject()
00779 {
00780
00781 sendInfo($this->lng->txt("msg_cancel"),true);
00782
00783 if($this->ctrl->getTargetScript() == 'adm_object.php')
00784 {
00785 $return_location = $_GET["cmd_return_location"];
00786 ilUtil::redirect($this->ctrl->getLinkTarget($this,$return_location));
00787 }
00788 else
00789 {
00790 $this->ctrl->redirectByClass('ilobjcategorygui','listUsers');
00791 }
00792 }
00793
00797 function getImportDir()
00798 {
00799 return ilUtil::getDataDir()."/user_import";
00800 }
00801
00805 function importUserRoleAssignmentObject ()
00806 {
00807 include_once './classes/class.ilObjRole.php';
00808
00809 global $rbacreview;
00810
00811
00812 $this->tpl->addBlockfile("ADM_CONTENT", "adm_content", "tpl.usr_import_roles.html");
00813
00814 $this->tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));
00815 #$this->tpl->setVariable("FORMACTION", "adm_object.php?ref_id=".$this->ref_id."&cmd=gateway");
00816 $this->tpl->setVariable("TXT_ROLES_IMPORT", $this->lng->txt("roles_of_import_global"));
00817 $this->tpl->setVariable("TXT_ROLES", $this->lng->txt("assign_global_role"));
00818 $this->tpl->setVariable("TXT_ROLE_ASSIGNMENT", $this->lng->txt("role_assignment"));
00819 $this->tpl->setVariable("BTN_IMPORT", $this->lng->txt("import"));
00820 $this->tpl->setVariable("BTN_CANCEL", $this->lng->txt("cancel"));
00821
00822 $import_dir = $this->getImportDir();
00823
00824
00825 if (!@is_dir($import_dir))
00826 {
00827 ilUtil::createDirectory($import_dir);
00828 }
00829
00830
00831 $file_name = $_FILES["importFile"]["name"];
00832 $parts = pathinfo($file_name);
00833 $full_path = $import_dir."/".$file_name;
00834
00835
00836 if (!is_file($_FILES["importFile"]["tmp_name"]) ||
00837 strtolower($parts["extension"]) != "zip")
00838 {
00839 $this->ilias->raiseError($this->lng->txt("no_zip_file"),$this->ilias->error_obj->MESSAGE);
00840 }
00841
00842 ilUtil::moveUploadedFile($_FILES["importFile"]["tmp_name"],
00843 $_FILES["importFile"]["name"], $full_path);
00844
00845
00846 ilUtil::unzip($full_path);
00847
00848 $subdir = basename($parts["basename"],".".$parts["extension"]);
00849 $xml_file = $import_dir."/".$subdir."/".$subdir.".xml";
00850
00851
00852 if (!is_file($xml_file))
00853 {
00854 $this->ilias->raiseError($this->lng->txt("no_xml_file_found_in_zip")
00855 ." ".$subdir."/".$subdir.".xml", $this->ilias->error_obj->MESSAGE);
00856 }
00857
00858 $this->tpl->setVariable("XML_FILE_NAME", $xml_file);
00859
00860 require_once("classes/class.ilUserImportParser.php");
00861 $importParser = new ilUserImportParser($xml_file, IL_EXTRACT_ROLES);
00862 $importParser->startParsing();
00863 $roles = $importParser->getCollectedRoles();
00864
00865
00866 $all_gl_roles = $rbacreview->getRoleListByObject(ROLE_FOLDER_ID);
00867 $gl_roles = array();
00868 foreach ($all_gl_roles as $obj_data)
00869 {
00870
00871 if($this->object->getRefId() != USER_FOLDER_ID and !in_array(SYSTEM_ROLE_ID,$_SESSION["RoleId"]))
00872 {
00873 if(!ilObjRole::_getAssignUsersStatus($obj_data['obj_id']))
00874 {
00875 continue;
00876 }
00877 }
00878
00879 if ($obj_data["obj_id"] != ANONYMOUS_ROLE_ID)
00880 {
00881
00882 if ($obj_data["obj_id"] != SYSTEM_ROLE_ID or in_array(SYSTEM_ROLE_ID,$_SESSION["RoleId"]))
00883 {
00884 $gl_roles[$obj_data["obj_id"]] = $obj_data["title"];
00885 }
00886 }
00887 }
00888
00889
00890 foreach($roles as $role_id => $role)
00891 {
00892 if ($role["type"] == "Local")
00893 {
00894 continue;
00895 }
00896
00897
00898 switch($role["name"])
00899 {
00900 case "Administrator":
00901 $pre_select = array_search("Administrator", $gl_roles);
00902 break;
00903
00904 case "Autor":
00905 $pre_select = array_search("User", $gl_roles);
00906 break;
00907
00908 case "Lerner":
00909 $pre_select = array_search("User", $gl_roles);
00910 break;
00911
00912 case "Gast":
00913 $pre_select = array_search("Guest", $gl_roles);
00914 break;
00915
00916 default:
00917 $pre_select = array_search("User", $gl_roles);
00918 break;
00919 }
00920 $role_select = ilUtil::formSelect($pre_select, "role_assign[".$role_id."]", $gl_roles, false, true);
00921 $this->tpl->setCurrentBlock("role");
00922 $this->tpl->setVariable("TXT_IMPORT_ROLE", $role["name"]." [".$role_id."]");
00923 $this->tpl->setVariable("SELECT_ROLE", $role_select);
00924 $this->tpl->parseCurrentBlock();
00925 }
00926 $this->tpl->setCurrentBlock("role_section");
00927 $this->tpl->parseCurrentBlock();
00928
00929
00930
00931 $loc_roles = $rbacreview->getAssignableRoles();
00932 $l_roles = array();
00933 foreach ($loc_roles as $key => $loc_role)
00934 {
00935 if (substr($loc_role["title"],0,3) != "il_")
00936 {
00937
00938 $rolf = $rbacreview->getFoldersAssignedToRole($loc_role["obj_id"],true);
00939
00940
00941 if (!$rbacreview->isDeleted($rolf[0]))
00942 {
00943 $path = "";
00944 if ($this->tree->isInTree($rolf[0]))
00945 {
00946 $tmpPath = $this->tree->getPathFull($rolf[0]);
00947
00948 for ($i = 1; $i < (count($tmpPath)-1); $i++)
00949 {
00950 if ($path != "")
00951 {
00952 $path .= " > ";
00953 }
00954
00955 $path .= $tmpPath[$i]["title"];
00956 }
00957 }
00958 else
00959 {
00960 $path = "<b>Rolefolder ".$rolf[0]." not found in tree! (Role ".$loc_role["obj_id"].")</b>";
00961 }
00962
00963
00964
00965
00966
00967
00968
00969
00970 if ($loc_role["role_type"] != "global")
00971 {
00972 $l_roles[$loc_role["obj_id"]] = $loc_role["title"];
00973 }
00974 }
00975 }
00976 }
00977
00978
00979 $got_locals = false;
00980 foreach($roles as $role_id => $role)
00981 {
00982 if ($role["type"] == "Global")
00983 {
00984 continue;
00985 }
00986 $got_locals = true;
00987
00988 $role_select = ilUtil::formSelect($pre_select, "role_assign[".$role_id."]", $l_roles, false, true);
00989 $this->tpl->setCurrentBlock("role");
00990 $this->tpl->setVariable("TXT_IMPORT_ROLE", $role["name"]." [".$role_id."]");
00991 $this->tpl->setVariable("SELECT_ROLE", $role_select);
00992 $this->tpl->parseCurrentBlock();
00993 }
00994 if ($got_locals)
00995 {
00996 $this->tpl->setCurrentBlock("role_section");
00997 $this->tpl->setVariable("TXT_ROLES_IMPORT", $this->lng->txt("roles_of_import_local"));
00998 $this->tpl->setVariable("TXT_ROLES", $this->lng->txt("assign_local_role"));
00999 $this->tpl->parseCurrentBlock();
01000 }
01001 }
01002
01006 function importUsersObject()
01007 {
01008 require_once("classes/class.ilUserImportParser.php");
01009 $importParser = new ilUserImportParser($_POST["xml_file"]);
01010 $importParser->setFolderId($this->object->getRefId());
01011 $importParser->setRoleAssignment($_POST["role_assign"]);
01012 $importParser->startParsing();
01013
01014 sendInfo($this->lng->txt("user_imported"), true);
01015
01016 if($this->ctrl->getTargetScript() == 'adm_object.php')
01017 {
01018 ilUtil::redirect($this->ctrl->getLinkTarget($this));
01019 }
01020 else
01021 {
01022 $this->ctrl->redirectByClass('ilobjcategorygui','listUsers');
01023 }
01024 }
01025
01026
01027 function appliedUsersObject()
01028 {
01029 global $rbacsystem,$ilias;
01030
01031 unset($_SESSION['applied_users']);
01032
01033 if (!$rbacsystem->checkAccess("visible,read",$this->object->getRefId()))
01034 {
01035 $this->ilias->raiseError($this->lng->txt("permission_denied"),$this->ilias->error_obj->MESSAGE);
01036 }
01037
01038 if(!count($app_users =& $ilias->account->getAppliedUsers()))
01039 {
01040 sendInfo($this->lng->txt('no_users_applied'));
01041
01042 return false;
01043 }
01044
01045 $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.usr_applied_users.html");
01046 $this->lng->loadLanguageModule('crs');
01047
01048 $counter = 0;
01049 foreach($app_users as $usr_id)
01050 {
01051 $tmp_user =& ilObjectFactory::getInstanceByObjId($usr_id);
01052
01053 $f_result[$counter][] = ilUtil::formCheckbox(0,"users[]",$usr_id);
01054 $f_result[$counter][] = $tmp_user->getLogin();
01055 $f_result[$counter][] = $tmp_user->getFirstname();
01056 $f_result[$counter][] = $tmp_user->getLastname();
01057
01058 if($tmp_user->getTimeLimitUnlimited())
01059 {
01060 $f_result[$counter][] = "<b>".$this->lng->txt('crs_unlimited')."</b>";
01061 }
01062 else
01063 {
01064 $limit = "<b>".$this->lng->txt('crs_from').'</b> '.strftime("%Y-%m-%d %R",$tmp_user->getTimeLimitFrom()).'<br />';
01065 $limit .= "<b>".$this->lng->txt('crs_to').'</b> '.strftime("%Y-%m-%d %R",$tmp_user->getTimeLimitUntil());
01066
01067 $f_result[$counter][] = $limit;
01068 }
01069 ++$counter;
01070 }
01071
01072 $this->__showAppliedUsersTable($f_result);
01073
01074 return true;
01075 }
01076
01077 function editAppliedUsersObject()
01078 {
01079 global $rbacsystem;
01080
01081 if(!$rbacsystem->checkAccess("write", $this->ref_id))
01082 {
01083 $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilias->error_obj->MESSAGE);
01084 }
01085
01086 $this->lng->loadLanguageModule('crs');
01087
01088 $_POST['users'] = $_SESSION['applied_users'] = ($_SESSION['applied_users'] ? $_SESSION['applied_users'] : $_POST['users']);
01089
01090 if(!isset($_SESSION['error_post_vars']))
01091 {
01092 sendInfo($this->lng->txt('time_limit_add_time_limit_for_selected'));
01093 }
01094
01095 if(!count($_POST["users"]))
01096 {
01097 sendInfo($this->lng->txt("time_limit_no_users_selected"));
01098 $this->appliedUsersObject();
01099
01100 return false;
01101 }
01102
01103 $counter = 0;
01104 foreach($_POST['users'] as $usr_id)
01105 {
01106 if($counter)
01107 {
01108 $title .= ', ';
01109 }
01110 $tmp_user =& ilObjectFactory::getInstanceByObjId($usr_id);
01111 $title .= $tmp_user->getLogin();
01112 ++$counter;
01113 }
01114 if(strlen($title) > 79)
01115 {
01116 $title = substr($title,0,80);
01117 $title .= '...';
01118 }
01119
01120
01121 $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.usr_edit_applied_users.html");
01122 $this->tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));
01123
01124
01125 $time_limit_unlimited = $_SESSION["error_post_vars"]["au"]["time_limit_unlimited"] ?
01126 1 : 0;
01127
01128 $time_limit_start = $_SESSION["error_post_vars"]["au"]["time_limit_start"] ?
01129 $this->__toUnix($_SESSION["error_post_vars"]["au"]["time_limit_start"]) :
01130 time();
01131 $time_limit_end = $_SESSION["error_post_vars"]["au"]["time_limit_end"] ?
01132 $this->__toUnix($_SESSION["error_post_vars"]["au"]["time_limit_end"]) :
01133 time();
01134
01135
01136
01137 $this->tpl->setVariable("ALT_IMG",$this->lng->txt("obj_usr"));
01138 $this->tpl->setVariable("TYPE_IMG",ilUtil::getImagePath("icon_usr_b.gif"));
01139 $this->tpl->setVariable("TITLE",$title);
01140 $this->tpl->setVariable("TXT_TIME_LIMIT",$this->lng->txt("time_limit"));
01141 $this->tpl->setVariable("TXT_TIME_LIMIT_START",$this->lng->txt("crs_start"));
01142 $this->tpl->setVariable("TXT_TIME_LIMIT_END",$this->lng->txt("crs_end"));
01143 $this->tpl->setVariable("CMD_SUBMIT","updateAppliedUsers");
01144 $this->tpl->setVariable("TXT_CANCEL",$this->lng->txt("cancel"));
01145 $this->tpl->setVariable("TXT_SUBMIT",$this->lng->txt("submit"));
01146
01147
01148
01149 $this->tpl->setVariable("SELECT_TIME_LIMIT_START_DAY",$this->__getDateSelect("day","au[time_limit_start][day]",
01150 date("d",$time_limit_start)));
01151 $this->tpl->setVariable("SELECT_TIME_LIMIT_START_MONTH",$this->__getDateSelect("month","au[time_limit_start][month]",
01152 date("m",$time_limit_start)));
01153 $this->tpl->setVariable("SELECT_TIME_LIMIT_START_YEAR",$this->__getDateSelect("year","au[time_limit_start][year]",
01154 date("Y",$time_limit_start)));
01155 $this->tpl->setVariable("SELECT_TIME_LIMIT_START_HOUR",$this->__getDateSelect("hour","au[time_limit_start][hour]",
01156 date("G",$time_limit_start)));
01157 $this->tpl->setVariable("SELECT_TIME_LIMIT_START_MINUTE",$this->__getDateSelect("minute","au[time_limit_start][minute]",
01158 date("i",$time_limit_start)));
01159 $this->tpl->setVariable("SELECT_TIME_LIMIT_END_DAY",$this->__getDateSelect("day","au[time_limit_end][day]",
01160 date("d",$time_limit_end)));
01161 $this->tpl->setVariable("SELECT_TIME_LIMIT_END_MONTH",$this->__getDateSelect("month","au[time_limit_end][month]",
01162 date("m",$time_limit_end)));
01163 $this->tpl->setVariable("SELECT_TIME_LIMIT_END_YEAR",$this->__getDateSelect("year","au[time_limit_end][year]",
01164 date("Y",$time_limit_end)));
01165 $this->tpl->setVariable("SELECT_TIME_LIMIT_END_HOUR",$this->__getDateSelect("hour","au[time_limit_end][hour]",
01166 date("G",$time_limit_end)));
01167 $this->tpl->setVariable("SELECT_TIME_LIMIT_END_MINUTE",$this->__getDateSelect("minute","au[time_limit_end][minute]",
01168 date("i",$time_limit_end)));
01169 if($this->ilias->account->getTimeLimitUnlimited())
01170 {
01171 $this->tpl->setVariable("ROWSPAN",3);
01172 $this->tpl->setCurrentBlock("unlimited");
01173 $this->tpl->setVariable("TXT_TIME_LIMIT_UNLIMITED",$this->lng->txt("crs_unlimited"));
01174 $this->tpl->setVariable("TIME_LIMIT_UNLIMITED",ilUtil::formCheckbox($time_limit_unlimited,"au[time_limit_unlimited]",1));
01175 $this->tpl->parseCurrentBlock();
01176 }
01177 else
01178 {
01179 $this->tpl->setVariable("ROWSPAN",2);
01180 }
01181 }
01182
01183 function updateAppliedUsersObject()
01184 {
01185 global $rbacsystem;
01186
01187 if(!$rbacsystem->checkAccess("write", $this->ref_id))
01188 {
01189 $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilias->error_obj->MESSAGE);
01190 }
01191
01192 $start = $this->__toUnix($_POST['au']['time_limit_start']);
01193 $end = $this->__toUnix($_POST['au']['time_limit_end']);
01194
01195 if(!$_POST['au']['time_limit_unlimited'])
01196 {
01197 if($start > $end)
01198 {
01199 $_SESSION['error_post_vars'] = $_POST;
01200 sendInfo($this->lng->txt('time_limit_not_valid'));
01201 $this->editAppliedUsersObject();
01202
01203 return false;
01204 }
01205 }
01206 #if(!$this->ilias->account->getTimeLimitUnlimited())
01207 #{
01208 # if($start < $this->ilias->account->getTimeLimitFrom() or
01209 # $end > $this->ilias->account->getTimeLimitUntil())
01210 # {
01211 # $_SESSION['error_post_vars'] = $_POST;
01212 # sendInfo($this->lng->txt('time_limit_not_within_owners'));
01213 # $this->editAppliedUsersObject();
01214
01215 # return false;
01216 # }
01217 #}
01218
01219 foreach($_SESSION['applied_users'] as $usr_id)
01220 {
01221 $tmp_user =& ilObjectFactory::getInstanceByObjId($usr_id);
01222
01223 $tmp_user->setTimeLimitUnlimited((int) $_POST['au']['time_limit_unlimited']);
01224 $tmp_user->setTimeLimitFrom($start);
01225 $tmp_user->setTimeLimitUntil($end);
01226 $tmp_user->setTimeLimitMessage(0);
01227 $tmp_user->update();
01228
01229 unset($tmp_user);
01230 }
01231
01232 unset($_SESSION['applied_users']);
01233 sendInfo($this->lng->txt('time_limit_users_updated'));
01234 $this->appliedUsersObject();
01235
01236 return true;
01237 }
01238
01239 function __showAppliedUsersTable($a_result_set)
01240 {
01241 $tbl =& $this->__initTableGUI();
01242 $tpl =& $tbl->getTemplateObject();
01243
01244
01245 $tpl->setCurrentBlock("tbl_form_header");
01246
01247 $tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));
01248 $tpl->parseCurrentBlock();
01249
01250 $tpl->setCurrentBlock("tbl_action_btn");
01251 $tpl->setVariable("BTN_NAME",'editAppliedUsers');
01252 $tpl->setVariable("BTN_VALUE",$this->lng->txt('edit'));
01253 $tpl->parseCurrentBlock();
01254
01255 $tpl->setCurrentBlock("tbl_action_row");
01256 $tpl->setVariable("COLUMN_COUNTS",5);
01257 $tpl->setVariable("IMG_ARROW", ilUtil::getImagePath("arrow_downright.gif"));
01258 $tpl->parseCurrentBlock();
01259
01260
01261
01262 $tbl->setTitle($this->lng->txt("time_limit_applied_users"),"icon_usr_b.gif",$this->lng->txt("users"));
01263 $tbl->setHeaderNames(array('',
01264 $this->lng->txt("login"),
01265 $this->lng->txt("firstname"),
01266 $this->lng->txt("lastname"),
01267 $this->lng->txt("time_limits")));
01268 $tbl->setHeaderVars(array("",
01269 "login",
01270 "firstname",
01271 "lastname",
01272 "time_limit"),
01273 array("ref_id" => $this->object->getRefId(),
01274 "cmd" => "appliedUsers"));
01275 $tbl->setColumnWidth(array("3%","19%","19%","19%","40%"));
01276
01277
01278 $this->__setTableGUIBasicData($tbl,$a_result_set);
01279 $tbl->render();
01280
01281 $this->tpl->setVariable("APPLIED_USERS",$tbl->tpl->get());
01282
01283 return true;
01284 }
01285
01286 function &__initTableGUI()
01287 {
01288 include_once "./classes/class.ilTableGUI.php";
01289
01290 return new ilTableGUI(0,false);
01291 }
01292 function __setTableGUIBasicData(&$tbl,&$result_set,$from = "")
01293 {
01294 $offset = $_GET["offset"];
01295 $order = $_GET["sort_by"];
01296 $direction = $_GET["sort_order"];
01297
01298
01299 $tbl->setOrderColumn($order);
01300 $tbl->setOrderDirection($direction);
01301 $tbl->setOffset($offset);
01302 $tbl->setLimit($_GET["limit"]);
01303 $tbl->setMaxCount(count($result_set));
01304 $tbl->setFooter("tblfooter",$this->lng->txt("previous"),$this->lng->txt("next"));
01305 $tbl->setData($result_set);
01306 }
01307 function __getDateSelect($a_type,$a_varname,$a_selected)
01308 {
01309 switch($a_type)
01310 {
01311 case "minute":
01312 for($i=0;$i<=60;$i++)
01313 {
01314 $days[$i] = $i < 10 ? "0".$i : $i;
01315 }
01316 return ilUtil::formSelect($a_selected,$a_varname,$days,false,true);
01317
01318 case "hour":
01319 for($i=0;$i<24;$i++)
01320 {
01321 $days[$i] = $i < 10 ? "0".$i : $i;
01322 }
01323 return ilUtil::formSelect($a_selected,$a_varname,$days,false,true);
01324
01325 case "day":
01326 for($i=1;$i<32;$i++)
01327 {
01328 $days[$i] = $i < 10 ? "0".$i : $i;
01329 }
01330 return ilUtil::formSelect($a_selected,$a_varname,$days,false,true);
01331
01332 case "month":
01333 for($i=1;$i<13;$i++)
01334 {
01335 $month[$i] = $i < 10 ? "0".$i : $i;
01336 }
01337 return ilUtil::formSelect($a_selected,$a_varname,$month,false,true);
01338
01339 case "year":
01340 for($i = date("Y",time());$i < date("Y",time()) + 3;++$i)
01341 {
01342 $year[$i] = $i;
01343 }
01344 return ilUtil::formSelect($a_selected,$a_varname,$year,false,true);
01345 }
01346 }
01347 function __toUnix($a_time_arr)
01348 {
01349 return mktime($a_time_arr["hour"],
01350 $a_time_arr["minute"],
01351 $a_time_arr["second"],
01352 $a_time_arr["month"],
01353 $a_time_arr["day"],
01354 $a_time_arr["year"]);
01355 }
01356
01357 function hitsperpageObject()
01358 {
01359 parent::hitsperpageObject();
01360 $this->viewObject();
01361 }
01362
01368 function settingsObject()
01369 {
01370 global $ilias;
01371
01372 $this->getTemplateFile("settings","usr");
01373
01374 $profile_fields = array(
01375 "gender",
01376 "password",
01377 "firstname",
01378 "lastname",
01379 "title",
01380 "upload",
01381 "institution",
01382 "department",
01383 "street",
01384 "city",
01385 "zipcode",
01386 "country",
01387 "phone_office",
01388 "phone_home",
01389 "phone_mobile",
01390 "fax",
01391 "email",
01392 "hobby",
01393 "matriculation",
01394 "referral_comment",
01395 "language",
01396 "skin_style"
01397 );
01398 foreach ($profile_fields as $field)
01399 {
01400 $this->tpl->setCurrentBlock("profile_settings");
01401 $this->tpl->setVariable("TXT_PROFILE_DATA", $this->lng->txt($field));
01402 $this->tpl->setVariable("PROFILE_OPTION_DISABLE", "disable_" . $field);
01403 $this->tpl->setVariable("PROFILE_OPTION_HIDE", "hide_" . $field);
01404 if ($ilias->getSetting("usr_settings_disable_" . $field) == 1)
01405 {
01406 $this->tpl->setVariable("CHECKED_DISABLE", " checked=\"checked\"");
01407 }
01408 if ($ilias->getSetting("usr_settings_hide_" . $field) == 1)
01409 {
01410 $this->tpl->setVariable("CHECKED_HIDE", " checked=\"checked\"");
01411 }
01412 $this->tpl->parseCurrentBlock();
01413 }
01414 $this->tpl->setVariable("FORMACTION", "adm_object.php?ref_id=".$_GET["ref_id"]."&cmd=gateway");
01415 $this->tpl->setVariable("TXT_HEADER_PROFILE", $this->lng->txt("usr_settings_header_profile"));
01416 $this->tpl->setVariable("TXT_EXPLANATION_PROFILE", $this->lng->txt("usr_settings_explanation_profile"));
01417 $this->tpl->setVariable("HEADER_PROFILE_DATA", $this->lng->txt("usr_settings_header_profile_profile"));
01418 $this->tpl->setVariable("HEADER_DISABLE", $this->lng->txt("disable"));
01419 $this->tpl->setVariable("HEADER_HIDE", $this->lng->txt("hide"));
01420 $this->tpl->setVariable("TXT_SAVE", $this->lng->txt("save"));
01421 }
01422
01423 function saveGlobalUserSettingsObject()
01424 {
01425 global $ilias;
01426
01427 $profile_fields = array(
01428 "gender",
01429 "password",
01430 "firstname",
01431 "lastname",
01432 "title",
01433 "upload",
01434 "institution",
01435 "department",
01436 "street",
01437 "city",
01438 "zipcode",
01439 "country",
01440 "phone_office",
01441 "phone_home",
01442 "phone_mobile",
01443 "fax",
01444 "email",
01445 "hobby",
01446 "matriculation",
01447 "referral_comment",
01448 "language",
01449 "skin_style"
01450 );
01451 foreach ($profile_fields as $field)
01452 {
01453 $ilias->deleteSetting("usr_settings_disable_" . $field);
01454 $ilias->deleteSetting("usr_settings_hide_" . $field);
01455 if ($_POST["chb"]["hide_" . $field])
01456 {
01457 $ilias->setSetting("usr_settings_hide_" . $field, "1");
01458 }
01459 if ($_POST["chb"]["disable_" . $field])
01460 {
01461 $ilias->setSetting("usr_settings_disable_" . $field, "1");
01462 }
01463 }
01464 sendInfo($this->lng->txt("usr_settings_saved"));
01465 $this->settingsObject();
01466 }
01467 }
01468 ?>