00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00036 include_once "./classes/class.ilObjectGUI.php";
00037
00038 class ilObjLinkResourceGUI extends ilObjectGUI
00039 {
00044 function ilObjLinkResourceGUI($a_data,$a_id,$a_call_by_reference,$a_prepare_output = true)
00045 {
00046 global $ilCtrl;
00047
00048 $this->type = "webr";
00049 $this->ilObjectGUI($a_data,$a_id,$a_call_by_reference,$a_prepare_output);
00050
00051
00052 $this->ctrl =& $ilCtrl;
00053 $this->ctrl->saveParameter($this,array("ref_id","cmdClass"));
00054
00055 $this->lng->loadLanguageModule('webr');
00056 }
00057
00058 function &executeCommand()
00059 {
00060 global $rbacsystem;
00061
00062 if($this->ctrl->getTargetScript() == 'link_resources.php')
00063 {
00064 $this->__prepareOutput();
00065 }
00066
00067 $next_class = $this->ctrl->getNextClass($this);
00068
00069 $cmd = $this->ctrl->getCmd();
00070 switch($next_class)
00071 {
00072 case 'ilmdeditorgui':
00073
00074 include_once 'Services/MetaData/classes/class.ilMDEditorGUI.php';
00075
00076 $md_gui =& new ilMDEditorGUI($this->object->getId(), 0, $this->object->getType());
00077 $md_gui->addObserver($this->object,'MDUpdateListener','General');
00078
00079 $this->ctrl->forwardCommand($md_gui);
00080 break;
00081
00082 default:
00083 if(!$cmd)
00084 {
00085 $cmd = "view";
00086 }
00087 $cmd .= "Object";
00088 $this->$cmd();
00089
00090 break;
00091 }
00092 return true;
00093 }
00094
00095 function viewObject()
00096 {
00097 if($this->ctrl->getTargetScript() == 'adm_object.php')
00098 {
00099 parent::viewObject();
00100
00101 return true;
00102 }
00103 else
00104 {
00105 $this->listItemsObject();
00106
00107 return true;
00108 }
00109 }
00110
00111 function listItemsObject()
00112 {
00113 global $rbacsystem;
00114
00115 include_once './classes/class.ilTableGUI.php';
00116
00117
00118 if(!$rbacsystem->checkAccess("read", $this->object->getRefId()))
00119 {
00120 $this->ilias->raiseError($this->lng->txt("msg_no_perm_read"),$this->ilias->error_obj->MESSAGE);
00121 }
00122
00123 $this->object->initLinkResourceItemsObject();
00124 if(!count($items = $this->object->items_obj->getActivatedItems()))
00125 {
00126 sendInfo($this->lng->txt('webr_no_items_created'));
00127
00128 return true;
00129 }
00130
00131 $this->tpl->addBlockFile("ADM_CONTENT","adm_content","tpl.lnkr_view_items.html","link");
00132
00133 $tpl =& new ilTemplate("tpl.table.html", true, true);
00134 #$items_sliced = array_slice($items, $_GET["offset"], $_GET["limit"]);
00135
00136 $tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.lnkr_view_items_row.html",'link');
00137
00138 $items = ilUtil::sortArray($items,
00139 'title',
00140 $_GET['sort_order'] ? $_GET['sort_order'] : 'asc');
00141 $counter = 0;
00142 foreach($items as $item_id => $item)
00143 {
00144 if(strlen($item['description']))
00145 {
00146 $tpl->setCurrentBlock("description");
00147 $tpl->setVariable("DESCRIPTION",$item['description']);
00148 $tpl->parseCurrentBlock();
00149 }
00150 $tpl->setCurrentBlock("row");
00151 $tpl->setVariable("ROW_CSS",ilUtil::switchColor(++$counter,'tblrow1','tblrow2'));
00152 $tpl->setVariable("TITLE",$item['title']);
00153 $tpl->setVariable("TARGET",$item['target']);
00154 $tpl->parseCurrentBlock();
00155 }
00156
00157
00158 $tbl = new ilTableGUI();
00159
00160
00161 $tbl->setTitle($this->lng->txt("web_resources"),"icon_webr_b.gif",$this->lng->txt("web_resources"));
00162 $tbl->setHeaderNames(array($this->lng->txt("title")));
00163 $tbl->setHeaderVars(array("title"),array("ref_id" => $this->object->getRefId(),
00164 "cmd" => 'listItems'));
00165 $tbl->setColumnWidth(array("100%"));
00166 $tbl->disable('linkbar');
00167 $tbl->disable('numinfo');
00168
00169 $tbl->setOrderColumn('title');
00170 $tbl->setOrderDirection($_GET['sort_order']);
00171 $tbl->setLimit($_GET["limit"]);
00172 $tbl->setOffset($_GET["offset"]);
00173 $tbl->setMaxCount(count($items));
00174
00175
00176 $tbl->setTemplate($tpl);
00177 $tbl->render();
00178
00179 $this->tpl->setVariable("ITEM_TABLE", $tpl->get());
00180
00181 return true;
00182 }
00183
00184 function editItemsObject()
00185 {
00186 global $rbacsystem;
00187
00188 include_once './classes/class.ilTableGUI.php';
00189
00190
00191 if(!$rbacsystem->checkAccess("write", $this->object->getRefId()))
00192 {
00193 $this->ilias->raiseError($this->lng->txt("msg_no_perm_read"),$this->ilias->error_obj->MESSAGE);
00194 }
00195
00196 $this->tpl->addBlockFile("ADM_CONTENT","adm_content","tpl.lnkr_edit_items.html","link");
00197 $this->__showButton('showAddItem',$this->lng->txt('webr_add_item'));
00198
00199 $this->object->initLinkResourceItemsObject();
00200 if(!count($items = $this->object->items_obj->getAllItems()))
00201 {
00202 sendInfo($this->lng->txt('webr_no_items_created'));
00203
00204 return true;
00205 }
00206
00207 $tpl =& new ilTemplate("tpl.table.html", true, true);
00208 #$items_sliced = array_slice($items, $_GET["offset"], $_GET["limit"]);
00209
00210 $tpl->setCurrentBlock("tbl_form_header");
00211 $tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));
00212 $tpl->parseCurrentBlock();
00213
00214 $tpl->setCurrentBlock("tbl_action_btn");
00215 $tpl->setVariable("BTN_NAME",'askDeleteItems');
00216 $tpl->setVariable("BTN_VALUE",$this->lng->txt('delete'));
00217 $tpl->parseCurrentBlock();
00218
00219 $tpl->setCurrentBlock("plain_buttons");
00220 $tpl->setVariable("PBTN_NAME",'updateItems');
00221 $tpl->setVariable("PBTN_VALUE",$this->lng->txt('save'));
00222 $tpl->parseCurrentBlock();
00223
00224 $tpl->setCurrentBlock("tbl_action_row");
00225 $tpl->setVariable("IMG_ARROW",ilUtil::getImagePath('arrow_downright.gif'));
00226 $tpl->setVariable("COLUMN_COUNTS",7);
00227 $tpl->parseCurrentBlock();
00228
00229
00230
00231 $tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.lnkr_edit_items_row.html",'link');
00232
00233 $items = ilUtil::sortArray($items,
00234 $_GET['sort_by'] ? $_GET['sort_by'] : 'title',
00235 $_GET['sort_order'] ? $_GET['sort_order'] : 'asc');
00236
00237 $counter = 0;
00238 foreach($items as $item_id => $item)
00239 {
00240 if(strlen($item['description']))
00241 {
00242 $tpl->setCurrentBlock("description");
00243 $tpl->setVariable("DESCRIPTION",$item['description']);
00244 $tpl->parseCurrentBlock();
00245 }
00246
00247 $tpl->setCurrentBlock("row");
00248 $tpl->setVariable("ROW_CSS",ilUtil::switchColor(++$counter,'tblrow1','tblrow2'));
00249
00250 $tpl->setVariable("CHECK_ITEM",ilUtil::formCheckbox(0,'item_id[]',$item['link_id']));
00251 $tpl->setVariable("TITLE",$item['title']);
00252
00253 if($item['last_check'])
00254 {
00255 $last_check = date('Y-m-d H:i:s',$item['last_check']);
00256 }
00257 else
00258 {
00259 $last_check = $this->lng->txt('webr_never_checked');
00260 }
00261 $tpl->setVariable("TXT_LAST_CHECK",$this->lng->txt('webr_last_check_table'));
00262 $tpl->setVariable("LAST_CHECK",$last_check);
00263
00264 $target = substr($item['target'],0,70);
00265 if(strlen($item['target']) > 70)
00266 {
00267 $target = substr($item['target'],0,70).'...';
00268 }
00269 else
00270 {
00271 $target = $item['target'];
00272 }
00273
00274
00275
00276 $tpl->setVariable("TARGET",$target);
00277 $tpl->setVariable("VALID",ilUtil::formCheckbox($item['valid'] ? 1 : 0,'valid['.$item['link_id'].']',1));
00278 $tpl->setVariable("ACTIVE",ilUtil::formCheckbox($item['active'] ? 1 : 0,'active['.$item['link_id'].']',1));
00279 $tpl->setVariable("DISABLE_CHECK",ilUtil::formCheckbox($item['disable_check'] ? 1 : 0,'disable['.$item['link_id'].']',1));
00280 $tpl->setVariable("EDIT_IMG",ilUtil::getImagePath('icon_pencil.gif'));
00281 $tpl->setVariable("EDIT_ALT",$this->lng->txt('edit'));
00282
00283 $this->ctrl->setParameter($this,'item_id',$item['link_id']);
00284 $tpl->setVariable("EDIT_LINK",$this->ctrl->getLinkTarget($this,'editItem'));
00285
00286 $tpl->parseCurrentBlock();
00287 }
00288
00289
00290 $tbl = new ilTableGUI();
00291
00292
00293 $tbl->setTitle($this->lng->txt("web_resources"),"icon_webr_b.gif",$this->lng->txt("web_resources"));
00294 $tbl->setHeaderNames(array('',
00295 $this->lng->txt("title"),
00296 $this->lng->txt("target"),
00297 $this->lng->txt('valid'),
00298 $this->lng->txt('active'),
00299 $this->lng->txt('disable_check'),
00300 $this->lng->txt('details')));
00301 $tbl->setHeaderVars(array("",
00302 "title",
00303 "target",
00304 "valid",
00305 "active",
00306 "disable_check",
00307 ""),array("ref_id" => $this->object->getRefId(),
00308 "cmd" => 'editItems'));
00309 $tbl->setColumnWidth(array("",
00310 "50%",
00311 "30%",
00312 "5%",
00313 "5%",
00314 "5%",
00315 "5%"));
00316 $tbl->disable('linkbar');
00317 $tbl->disable('numinfo');
00318 $tbl->enable('sort');
00319
00320 $tbl->setOrderColumn($_GET['sort_by']);
00321 $tbl->setOrderDirection($_GET['sort_order']);
00322 $tbl->setLimit($_GET["limit"]);
00323 $tbl->setOffset($_GET["offset"]);
00324 $tbl->setMaxCount(count($items));
00325
00326
00327 $tbl->setTemplate($tpl);
00328 $tbl->render();
00329
00330 $this->tpl->setVariable("ITEM_TABLE", $tpl->get());
00331
00332 return true;
00333 }
00334
00335 function askDeleteItemsObject()
00336 {
00337 global $rbacsystem;
00338
00339
00340 if(!$rbacsystem->checkAccess("write", $this->object->getRefId()))
00341 {
00342 $this->ilias->raiseError($this->lng->txt("msg_no_perm_read"),$this->ilias->error_obj->MESSAGE);
00343 }
00344 if(!count($_POST['item_id']))
00345 {
00346 sendInfo($this->lng->txt('webr_select_one'));
00347 $this->editItemsObject();
00348
00349 return true;
00350 }
00351
00352 sendInfo($this->lng->txt('webr_sure_delete_items'));
00353 $this->tpl->addBlockfile('ADM_CONTENT','adm_content','tpl.lnkr_ask_delete.html','link');
00354
00355 $this->tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));
00356 $this->tpl->setVariable("TBL_TITLE_IMG",ilUtil::getImagePath('icon_webr.gif'));
00357 $this->tpl->setVariable("TBL_TITLE_IMG_ALT",$this->lng->txt('obj_webr'));
00358 $this->tpl->setVariable("TBL_TITLE",$this->lng->txt('webr_delete_items'));
00359 $this->tpl->setVariable("HEADER_DESC",$this->lng->txt('title'));
00360 $this->tpl->setVariable("BTN_CANCEL",$this->lng->txt('cancel'));
00361 $this->tpl->setVariable("BTN_DELETE",$this->lng->txt('delete'));
00362
00363 $this->object->initLinkResourceItemsObject();
00364
00365 $counter = 0;
00366 foreach($_POST['item_id'] as $id)
00367 {
00368 $this->object->items_obj->readItem($id);
00369 $this->tpl->setCurrentBlock("item_row");
00370 $this->tpl->setVariable("ITEM_TITLE",$this->object->items_obj->getTitle());
00371 $this->tpl->setVariable("TXT_TARGET",$this->lng->txt('target'));
00372 $this->tpl->setVariable("TARGET",$this->object->items_obj->getTarget());
00373 $this->tpl->setVariable("ROW_CLASS",ilUtil::switchColor(++$counter,'tblrow1','tblrow2'));
00374 $this->tpl->parseCurrentBlock();
00375 }
00376 $_SESSION['webr_item_ids'] = $_POST['item_id'];
00377
00378 return true;
00379 }
00380
00381 function deleteItemsObject()
00382 {
00383 global $rbacsystem;
00384
00385
00386 if(!$rbacsystem->checkAccess("write", $this->object->getRefId()))
00387 {
00388 $this->ilias->raiseError($this->lng->txt("msg_no_perm_read"),$this->ilias->error_obj->MESSAGE);
00389 }
00390 if(!count($_SESSION['webr_item_ids']))
00391 {
00392 sendInfo($this->lng->txt('webr_select_one'));
00393 $this->editItemsObject();
00394
00395 return true;
00396 }
00397
00398 $this->object->initLinkResourceItemsObject();
00399 foreach($_SESSION['webr_item_ids'] as $id)
00400 {
00401 $this->object->items_obj->delete($id);
00402 }
00403 sendInfo($this->lng->txt('webr_deleted_items'));
00404
00405 $this->editItemsObject();
00406 return true;
00407 }
00408
00409
00410 function updateItemsObject()
00411 {
00412 global $rbacsystem;
00413
00414
00415 if(!$rbacsystem->checkAccess("write", $this->object->getRefId()))
00416 {
00417 $this->ilias->raiseError($this->lng->txt("msg_no_perm_read"),$this->ilias->error_obj->MESSAGE);
00418 }
00419 $this->object->initLinkResourceItemsObject();
00420 foreach($this->object->items_obj->getAllItems() as $item)
00421 {
00422 $update = false;
00423
00424 $valid = (int) $_POST['valid'][$item['link_id']];
00425 $active = (int) $_POST['active'][$item['link_id']];
00426 $disable = (int) $_POST['disable'][$item['link_id']];
00427
00428 if($valid != $item['valid'] or
00429 $active != $item['active'] or
00430 $disable != $item['disable_check'])
00431 {
00432 $this->object->items_obj->readItem($item['link_id']);
00433 $this->object->items_obj->setValidStatus($valid);
00434 $this->object->items_obj->setActiveStatus($active);
00435 $this->object->items_obj->setDisableCheckStatus($disable);
00436 $this->object->items_obj->update();
00437 }
00438 }
00439
00440 sendInfo($this->lng->txt('webr_modified_items'));
00441 $this->editItemsObject();
00442
00443 return true;
00444 }
00445
00446 function editItemObject()
00447 {
00448 global $rbacsystem;
00449
00450
00451 if(!$rbacsystem->checkAccess("write", $this->object->getRefId()))
00452 {
00453 $this->ilias->raiseError($this->lng->txt("msg_no_perm_read"),$this->ilias->error_obj->MESSAGE);
00454 }
00455
00456 $this->object->initLinkResourceItemsObject();
00457 $item = $this->object->items_obj->getItem($_GET['item_id'] ? $_GET['item_id'] : $_SESSION['webr_item_id']);
00458
00459
00460 $this->tpl->addBlockfile('ADM_CONTENT','adm_content','tpl.lnkr_edit_item.html','link');
00461
00462 $this->tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));
00463 $this->tpl->setVariable("TBL_TITLE_IMG",ilUtil::getImagePath('icon_webr.gif'));
00464 $this->tpl->setVariable("TBL_TITLE_IMG_ALT",$this->lng->txt('obj_webr'));
00465 $this->tpl->setVariable("TBL_TITLE",$this->lng->txt('webr_edit_item'));
00466 $this->tpl->setVariable("TXT_TITLE",$this->lng->txt('title'));
00467 $this->tpl->setVariable("TXT_DESCRIPTION",$this->lng->txt('description'));
00468 $this->tpl->setVariable("TITLE",ilUtil::prepareFormOutput($item['title']));
00469 $this->tpl->setVariable("DESCRIPTION",ilUtil::prepareFormOutput($item['description']));
00470 $this->tpl->setVariable("TXT_TARGET",$this->lng->txt('target'));
00471 $this->tpl->setVariable("TARGET",ilUtil::prepareFormOutput($item['target']));
00472 $this->tpl->setVariable("TXT_ACTIVE",$this->lng->txt('webr_active'));
00473 $this->tpl->setVariable("ACTIVE_CHECK",ilUtil::formCheckbox($item['active'] ? 1 : 0,'active',1));
00474 $this->tpl->setVariable("TXT_VALID",$this->lng->txt('valid'));
00475 $this->tpl->setVariable("VALID_CHECK",ilUtil::formCheckbox($item['valid'] ? 1 : 0,'valid',1));
00476 $this->tpl->setVariable("TXT_DISABLE",$this->lng->txt('disable_check'));
00477 $this->tpl->setVariable("DISABLE_CHECK",ilUtil::formCheckbox($item['disable_check'] ? 1 : 0,'disable',1));
00478 $this->tpl->setVariable("TXT_CREATED",$this->lng->txt('created'));
00479 $this->tpl->setVariable("CREATED",date('Y-m-d H:i:s',$item['create_date']));
00480 $this->tpl->setVariable("TXT_MODIFIED",$this->lng->txt('last_change'));
00481 $this->tpl->setVariable("MODIFIED",date('Y-m-d H:i:s',$item['last_update']));
00482 $this->tpl->setVariable("TXT_LAST_CHECK",$this->lng->txt('webr_last_check'));
00483
00484 if($item['last_check'])
00485 {
00486 $last_check = date('Y-m-d H:i:s',$item['last_check']);
00487 }
00488 else
00489 {
00490 $last_check = $this->lng->txt('webr_never_checked');
00491 }
00492
00493 $this->tpl->setVariable("LAST_CHECK",$last_check);
00494 $this->tpl->setVariable("BTN_CANCEL",$this->lng->txt('cancel'));
00495 $this->tpl->setVariable("BTN_UPDATE",$this->lng->txt('save'));
00496
00497 $_SESSION['webr_item_id'] = $_GET['item_id'] ? $_GET['item_id'] : $_SESSION['webr_item_id'];
00498
00499 return true;
00500 }
00501
00502 function updateItemObject()
00503 {
00504 global $rbacsystem;
00505
00506
00507 if(!$rbacsystem->checkAccess("write", $this->object->getRefId()))
00508 {
00509 $this->ilias->raiseError($this->lng->txt("msg_no_perm_read"),$this->ilias->error_obj->MESSAGE);
00510 }
00511 if(!$_POST['title'] or $_POST['target'] == 'http://')
00512 {
00513 sendInfo($this->lng->txt('webr_fillout_all'));
00514
00515 $this->editItemObject();
00516 return false;
00517 }
00518
00519 $this->object->initLinkResourceItemsObject();
00520
00521 $this->object->items_obj->readItem($_SESSION['webr_item_id']);
00522 $this->object->items_obj->setLinkId($_SESSION['webr_item_id']);
00523 $this->object->items_obj->setTitle(ilUtil::stripSlashes($_POST['title']));
00524 $this->object->items_obj->setDescription(ilUtil::stripSlashes($_POST['description']));
00525 $this->object->items_obj->setTarget(ilUtil::stripSlashes($_POST['target']));
00526 $this->object->items_obj->setActiveStatus($_POST['active']);
00527 $this->object->items_obj->setValidStatus($_POST['valid']);
00528 $this->object->items_obj->setDisableCheckStatus($_POST['disable']);
00529 $this->object->items_obj->update();
00530
00531 unset($_SESSION['webr_item_id']);
00532 sendInfo($this->lng->txt('webr_item_updated'));
00533 $this->editItemsObject();
00534
00535 return true;
00536 }
00537
00538
00539
00540 function showAddItemObject()
00541 {
00542 global $rbacsystem;
00543
00544
00545 if(!$rbacsystem->checkAccess("write", $this->object->getRefId()))
00546 {
00547 $this->ilias->raiseError($this->lng->txt("msg_no_perm_read"),$this->ilias->error_obj->MESSAGE);
00548 }
00549
00550 $title = $_POST['title'] ? ilUtil::prepareFormOutput($_POST['title'],true) : '';
00551 $target = $_POST['target'] ? ilUtil::prepareFormOutput($_POST['target'],true) : 'http://';
00552
00553
00554 $this->tpl->addBlockFile("ADM_CONTENT","adm_content","tpl.lnkr_add_item.html","link");
00555
00556 $this->tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));
00557 $this->tpl->setVariable("TXT_HEADER",$this->lng->txt('webr_add_item'));
00558 $this->tpl->setVariable("TXT_TITLE",$this->lng->txt('title'));
00559 $this->tpl->setVariable("TXT_DESC",$this->lng->txt('description'));
00560 $this->tpl->setVariable("TXT_TARGET",$this->lng->txt('target'));
00561 $this->tpl->setVariable("TARGET",$target);
00562 $this->tpl->setVariable("TXT_ACTIVE",$this->lng->txt('active'));
00563 $this->tpl->setVariable("TXT_CHECK",$this->lng->txt('webr_disable_check'));
00564 $this->tpl->setVariable("TXT_REQUIRED_FLD",$this->lng->txt('required'));
00565 $this->tpl->setVariable("TXT_CANCEL",$this->lng->txt('cancel'));
00566 $this->tpl->setVariable("TXT_SUBMIT",$this->lng->txt('add'));
00567 $this->tpl->setVariable("CMD_SUBMIT",'addItem');
00568 $this->tpl->setVariable("CMD_CANCEL",'editItems');
00569
00570 $this->tpl->setVariable("ACTIVE_CHECK",ilUtil::formCheckBox(1,'active',1));
00571 $this->tpl->setVariable("CHECK_CHECK",ilUtil::formCheckBox(0,'disable_check',1));
00572
00573 }
00574
00575 function addItemObject()
00576 {
00577 global $rbacsystem;
00578
00579
00580 if(!$rbacsystem->checkAccess("write", $this->object->getRefId()))
00581 {
00582 $this->ilias->raiseError($this->lng->txt("msg_no_perm_read"),$this->ilias->error_obj->MESSAGE);
00583 }
00584
00585 $this->object->initLinkResourceItemsObject();
00586
00587 if(!$_POST['title'] or $_POST['target'] == 'http://')
00588 {
00589 sendInfo($this->lng->txt('webr_fillout_all'));
00590
00591 $this->showAddItemObject();
00592 return false;
00593 }
00594 $this->object->items_obj->setTitle(ilUtil::stripSlashes($_POST['title']));
00595 $this->object->items_obj->setDescription(ilUtil::stripSlashes($_POST['description']));
00596 $this->object->items_obj->setTarget(ilUtil::stripSlashes($_POST['target']));
00597 $this->object->items_obj->setActiveStatus($_POST['active']);
00598 $this->object->items_obj->setDisableCheckStatus($_POST['disable_check']);
00599 $this->object->items_obj->add();
00600
00601 $this->editItemsObject();
00602 }
00603
00604 function historyObject()
00605 {
00606 global $rbacsystem;
00607
00608 if (!$rbacsystem->checkAccess("write", $_GET["ref_id"]))
00609 {
00610 $this->ilErr->raiseError($this->lng->txt("permission_denied"),$this->ilErr->MESSAGE);
00611 }
00612
00613 include_once("classes/class.ilHistoryGUI.php");
00614
00615 $hist_gui =& new ilHistoryGUI($this->object->getId());
00616
00617 $hist_html = $hist_gui->getHistoryTable(array("ref_id" => $_GET["ref_id"],
00618 "cmd" => "history",
00619 "cmdClass" =>$_GET["cmdClass"],
00620 "cmdNode" =>$_GET["cmdNode"]));
00621
00622 $this->tpl->setVariable("ADM_CONTENT", $hist_html);
00623 }
00624
00629 function saveObject()
00630 {
00631 global $rbacadmin;
00632
00633
00634 $newObj = parent::saveObject();
00635
00636
00637
00638
00639
00640
00641
00642
00643
00644
00645 sendInfo($this->lng->txt("object_added"),true);
00646
00647 ilUtil::redirect($this->getReturnLocation("save",'adm_object.php?ref_id='.$newObj->getRefId()));
00648 }
00649 function linkCheckerObject()
00650 {
00651 global $ilias,$ilUser;
00652
00653 $this->__initLinkChecker();
00654 $this->object->initLinkResourceItemsObject();
00655
00656 $invalid_links = $this->link_checker_obj->getInvalidLinksFromDB();
00657
00658
00659 $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.link_check.html",'link');
00660
00661 if($last_access = $this->link_checker_obj->getLastCheckTimestamp())
00662 {
00663 $this->tpl->setCurrentBlock("LAST_MODIFIED");
00664 $this->tpl->setVariable("AS_OF",$this->lng->txt('last_change').": ");
00665 $this->tpl->setVariable("LAST_CHECK",date('Y-m-d H:i:s',$last_access));
00666 $this->tpl->parseCurrentBlock();
00667 }
00668
00669
00670 $this->tpl->setVariable("F_ACTION",$this->ctrl->getFormAction($this));
00671
00672 $this->tpl->setVariable("TYPE_IMG",ilUtil::getImagePath('icon_webr.gif'));
00673 $this->tpl->setVariable("ALT_IMG",$this->lng->txt('obj_webr'));
00674 $this->tpl->setVariable("TITLE",$this->object->getTitle().' ('.$this->lng->txt('link_check').')');
00675 $this->tpl->setVariable("PAGE_TITLE",$this->lng->txt('title'));
00676 $this->tpl->setVariable("URL",$this->lng->txt('url'));
00677 $this->tpl->setVariable("OPTIONS",$this->lng->txt('edit'));
00678
00679 if(!count($invalid_links))
00680 {
00681 $this->tpl->setCurrentBlock("no_invalid");
00682 $this->tpl->setVariable("TXT_NO_INVALID",$this->lng->txt('no_invalid_links'));
00683 $this->tpl->parseCurrentBlock();
00684 }
00685 else
00686 {
00687 $counter = 0;
00688 foreach($invalid_links as $invalid)
00689 {
00690 $this->object->items_obj->readItem($invalid['page_id']);
00691
00692 $this->tpl->setCurrentBlock("invalid_row");
00693 $this->tpl->setVariable("ROW_COLOR",ilUtil::switchColor(++$counter,'tblrow1','tblrow2'));
00694 $this->tpl->setVariable("ROW_PAGE_TITLE",$this->object->items_obj->getTitle());
00695 $this->tpl->setVariable("ROW_URL",$invalid['url']);
00696
00697
00698
00699 $this->ctrl->setParameter($this,'item_id',$invalid['page_id']);
00700 $this->tpl->setVariable("ROW_EDIT_LINK",$this->ctrl->getLinkTarget($this,'editItem'));
00701 $this->tpl->setVariable("ROW_IMG",ilUtil::getImagePath('icon_pencil.gif'));
00702 $this->tpl->setVariable("ROW_ALT_IMG",$this->lng->txt('edit'));
00703 $this->tpl->parseCurrentBlock();
00704 }
00705 }
00706 if((bool) $ilias->getSetting('cron_web_resource_check'))
00707 {
00708 include_once './classes/class.ilLinkCheckNotify.php';
00709
00710
00711 $this->tpl->setCurrentBlock("MESSAGE_BLOCK");
00712 $this->tpl->setVariable("INFO_MESSAGE",$this->lng->txt('link_check_message_a'));
00713 $this->tpl->setVariable("CHECK_MESSAGE",ilUtil::formCheckbox(
00714 ilLinkCheckNotify::_getNotifyStatus($ilUser->getId(),$this->object->getId()),
00715 'link_check_message',
00716 1));
00717 $this->tpl->setVariable("INFO_MESSAGE_LONG",$this->lng->txt('link_check_message_b'));
00718 $this->tpl->parseCurrentBlock();
00719
00720
00721 $this->tpl->setCurrentBlock("CRON_ENABLED");
00722 $this->tpl->setVariable("DOWNRIGHT_IMG",ilUtil::getImagePath('arrow_downright.gif'));
00723 $this->tpl->setVariable("BTN_SUBMIT_LINK_CHECK",$this->lng->txt('save'));
00724 $this->tpl->parseCurrentBlock();
00725 }
00726 $this->tpl->setVariable("BTN_REFRESH",$this->lng->txt('refresh'));
00727
00728 return true;
00729
00730 }
00731 function saveLinkCheckObject()
00732 {
00733 global $ilDB,$ilUser;
00734
00735 include_once './classes/class.ilLinkCheckNotify.php';
00736
00737 $link_check_notify =& new ilLinkCheckNotify($ilDB);
00738 $link_check_notify->setUserId($ilUser->getId());
00739 $link_check_notify->setObjId($this->object->getId());
00740
00741 if($_POST['link_check_message'])
00742 {
00743 sendInfo($this->lng->txt('link_check_message_enabled'));
00744 $link_check_notify->addNotifier();
00745 }
00746 else
00747 {
00748 sendInfo($this->lng->txt('link_check_message_disabled'));
00749 $link_check_notify->deleteNotifier();
00750 }
00751 $this->linkCheckerObject();
00752
00753 return true;
00754 }
00755
00756
00757
00758 function refreshLinkCheckObject()
00759 {
00760 $this->__initLinkChecker();
00761
00762 if(!$this->link_checker_obj->checkPear())
00763 {
00764 sendInfo($this->lng->txt('missing_pear_library'));
00765 $this->linkCheckerObject();
00766
00767 return false;
00768 }
00769
00770
00771 $this->object->initLinkResourceItemsObject();
00772
00773
00774 $this->object->items_obj->updateValidByCheck();
00775
00776 foreach($this->link_checker_obj->checkWebResourceLinks() as $invalid)
00777 {
00778 $this->object->items_obj->readItem($invalid['page_id']);
00779 $this->object->items_obj->setActiveStatus(false);
00780 $this->object->items_obj->setValidStatus(false);
00781 $this->object->items_obj->update(false);
00782 }
00783
00784 $this->object->items_obj->updateLastCheck();
00785 sendInfo($this->lng->txt('link_checker_refreshed'));
00786
00787 $this->linkCheckerObject();
00788
00789 return true;
00790 }
00791
00792 function __initLinkChecker()
00793 {
00794 global $ilDB;
00795
00796 include_once './classes/class.ilLinkChecker.php';
00797
00798 $this->link_checker_obj =& new ilLinkChecker($ilDB,false);
00799 $this->link_checker_obj->setObjId($this->object->getId());
00800
00801 return true;
00802 }
00808 function getTabs(&$tabs_gui)
00809 {
00810 global $rbacsystem,$rbacreview;
00811
00812 $this->ctrl->setParameter($this,"ref_id",$this->object->getRefId());
00813
00814 if($rbacsystem->checkAccess('read',$this->object->getRefId()))
00815 {
00816 $tabs_gui->addTarget("view_content",
00817 $this->ctrl->getLinkTarget($this, "view"), "view", get_class($this));
00818 }
00819 if($rbacsystem->checkAccess('write',$this->object->getRefId()))
00820 {
00821 $tabs_gui->addTarget("edit_content",
00822 $this->ctrl->getLinkTarget($this, "editItems"), "editItems", get_class($this));
00823 }
00824 if($rbacsystem->checkAccess('write',$this->object->getRefId()))
00825 {
00826 $tabs_gui->addTarget("meta_data",
00827 $this->ctrl->getLinkTargetByClass('ilmdeditorgui',''),
00828 "meta_data", get_class($this));
00829 }
00830 if($rbacsystem->checkAccess('write',$this->object->getRefId()))
00831 {
00832 $tabs_gui->addTarget("history",
00833 $this->ctrl->getLinkTarget($this, "history"), "history", get_class($this));
00834 }
00835 if($rbacsystem->checkAccess('write',$this->object->getRefId()))
00836 {
00837 $tabs_gui->addTarget("link_check",
00838 $this->ctrl->getLinkTarget($this, "linkChecker"), "linkChecker", get_class($this));
00839 }
00840 if($rbacsystem->checkAccess('edit_permission',$this->object->getRefId()))
00841 {
00842 $tabs_gui->addTarget("perm_settings",
00843 $this->ctrl->getLinkTarget($this, "perm"), "perm", get_class($this));
00844 }
00845 }
00846
00847
00848 function __prepareOutput()
00849 {
00850
00851 $this->tpl->addBlockFile("CONTENT", "content", "tpl.link_resource.html",'link');
00852 $this->tpl->addBlockFile("STATUSLINE", "statusline", "tpl.statusline.html");
00853
00854
00855 $this->__setLocator();
00856
00857
00858 if ($this->message)
00859 {
00860 sendInfo($this->message);
00861 }
00862
00863
00864 infoPanel();
00865
00866
00867 $this->__setHeader();
00868 }
00869
00870 function __setHeader()
00871 {
00872 include_once './classes/class.ilTabsGUI.php';
00873
00874 $this->tpl->setVariable("HEADER",$this->object->getTitle());
00875 $this->tpl->setVariable("H_DESCRIPTION",$this->object->getDescription());
00876
00877 $tabs_gui =& new ilTabsGUI();
00878 $this->getTabs($tabs_gui);
00879
00880
00881 $this->tpl->setVariable("TABS", $tabs_gui->getHTML());
00882 }
00883
00884 function __setLocator()
00885 {
00886 global $tree;
00887 global $ilias_locator;
00888
00889 $this->tpl->addBlockFile("LOCATOR", "locator", "tpl.locator.html");
00890
00891 $counter = 0;
00892 foreach ($tree->getPathFull($this->object->getRefId()) as $key => $row)
00893 {
00894 if($counter++)
00895 {
00896 $this->tpl->touchBlock('locator_separator_prefix');
00897 }
00898
00899 $this->tpl->setCurrentBlock("locator_item");
00900
00901 if($row["type"] == 'webr')
00902 {
00903 $this->tpl->setVariable("ITEM",$this->object->getTitle());
00904 $this->tpl->setVariable("LINK_ITEM",$this->ctrl->getLinkTarget($this));
00905 }
00906 elseif ($row["child"] != $tree->getRootId())
00907 {
00908 $this->tpl->setVariable("ITEM", $row["title"]);
00909 $this->tpl->setVariable("LINK_ITEM","../repository.php?ref_id=".$row["child"]);
00910 }
00911 else
00912 {
00913 $this->tpl->setVariable("ITEM", $this->lng->txt("repository"));
00914 $this->tpl->setVariable("LINK_ITEM","../repository.php?ref_id=".$row["child"]);
00915 }
00916
00917 $this->tpl->parseCurrentBlock();
00918 }
00919
00920 $this->tpl->setVariable("TXT_LOCATOR",$this->lng->txt("locator"));
00921 $this->tpl->parseCurrentBlock();
00922 }
00923
00924
00925 }
00926 ?>