• Main Page
  • Related Pages
  • Namespaces
  • Data Structures
  • Files
  • File List
  • Globals

link/classes/class.ilObjLinkResourceGUI.php

Go to the documentation of this file.
00001 <?php
00002 /*
00003         +-----------------------------------------------------------------------------+
00004         | ILIAS open source                                                           |
00005         +-----------------------------------------------------------------------------+
00006         | Copyright (c) 1998-2001 ILIAS open source, University of Cologne            |
00007         |                                                                             |
00008         | This program is free software; you can redistribute it and/or               |
00009         | modify it under the terms of the GNU General Public License                 |
00010         | as published by the Free Software Foundation; either version 2              |
00011         | of the License, or (at your option) any later version.                      |
00012         |                                                                             |
00013         | This program is distributed in the hope that it will be useful,             |
00014         | but WITHOUT ANY WARRANTY; without even the implied warranty of              |
00015         | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               |
00016         | GNU General Public License for more details.                                |
00017         |                                                                             |
00018         | You should have received a copy of the GNU General Public License           |
00019         | along with this program; if not, write to the Free Software                 |
00020         | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. |
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                 // CONTROL OPTIONS
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                 // MINIMUM ACCESS LEVEL = 'read'
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                 // create table
00140                 $tbl = new ilTableGUI();
00141 
00142                 // title & header columns
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                 // render table
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                 // MINIMUM ACCESS LEVEL = 'read'
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                 // create table
00265                 $tbl = new ilTableGUI();
00266 
00267                 // title & header columns
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                 // render table
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                 // MINIMUM ACCESS LEVEL = 'write'
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                 // MINIMUM ACCESS LEVEL = 'write'
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                 // MINIMUM ACCESS LEVEL = 'write'
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                 // MINIMUM ACCESS LEVEL = 'write'
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                 // MINIMUM ACCESS LEVEL = 'write'
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                 // MINIMUM ACCESS LEVEL = 'read'
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                 // MINIMUM ACCESS LEVEL = 'read'
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                 // create and insert forum in objecttree
00604                 $newObj = parent::saveObject();
00605 
00606                 // setup rolefolder & default local roles
00607                 //$roles = $newObj->initDefaultRoles();
00608 
00609                 // ...finally assign role to creator of object
00610                 //$rbacadmin->assignUser($roles[0], $newObj->getOwner(), "y");
00611 
00612                 // put here object specific stuff
00613                         
00614                 // always send a message
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                                 // EDIT IMAGE
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                         // Show message block
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                         // Show save button
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                 // Set all link to valid. After check invalid links will be set to invalid
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         // PRIVATE
00817         function __prepareOutput()
00818         {
00819                 // output objects
00820                 $this->tpl->addBlockFile("CONTENT", "content", "tpl.link_resource.html",'link');
00821                 $this->tpl->addBlockFile("STATUSLINE", "statusline", "tpl.statusline.html");
00822 
00823                 // output locator
00824                 $this->__setLocator();
00825 
00826                 // output message
00827                 if ($this->message)
00828                 {
00829                         sendInfo($this->message);
00830                 }
00831 
00832                 // display infopanel if something happened
00833                 infoPanel();
00834 
00835                 // set header
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                 // output tabs
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 } // END class.ilObjLinkResource
00895 ?>

Generated on Fri Dec 13 2013 09:06:36 for ILIAS Release_3_4_x_branch .rev 46804 by  doxygen 1.7.1