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