• 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 
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                 // CONTROL OPTIONS
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                 // MINIMUM ACCESS LEVEL = 'read'
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                 // create table
00158                 $tbl = new ilTableGUI();
00159 
00160                 // title & header columns
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                 // render table
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                 // MINIMUM ACCESS LEVEL = 'read'
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                 // create table
00290                 $tbl = new ilTableGUI();
00291 
00292                 // title & header columns
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                 // render table
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                 // MINIMUM ACCESS LEVEL = 'write'
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                 // MINIMUM ACCESS LEVEL = 'write'
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                 // MINIMUM ACCESS LEVEL = 'write'
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                 // MINIMUM ACCESS LEVEL = 'write'
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                 // MINIMUM ACCESS LEVEL = 'write'
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                 // MINIMUM ACCESS LEVEL = 'read'
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                 // MINIMUM ACCESS LEVEL = 'read'
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                 // create and insert forum in objecttree
00634                 $newObj = parent::saveObject();
00635 
00636                 // setup rolefolder & default local roles
00637                 //$roles = $newObj->initDefaultRoles();
00638 
00639                 // ...finally assign role to creator of object
00640                 //$rbacadmin->assignUser($roles[0], $newObj->getOwner(), "y");
00641 
00642                 // put here object specific stuff
00643 
00644                 // always send a message
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                                 // EDIT IMAGE
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                         // Show message block
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                         // Show save button
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                 // Set all link to valid. After check invalid links will be set to invalid
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         // PRIVATE
00848         function __prepareOutput()
00849         {
00850                 // output objects
00851                 $this->tpl->addBlockFile("CONTENT", "content", "tpl.link_resource.html",'link');
00852                 $this->tpl->addBlockFile("STATUSLINE", "statusline", "tpl.statusline.html");
00853 
00854                 // output locator
00855                 $this->__setLocator();
00856 
00857                 // output message
00858                 if ($this->message)
00859                 {
00860                         sendInfo($this->message);
00861                 }
00862 
00863                 // display infopanel if something happened
00864                 infoPanel();
00865 
00866                 // set header
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                 // output tabs
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 } // END class.ilObjLinkResource
00926 ?>

Generated on Fri Dec 13 2013 10:18:30 for ILIAS Release_3_5_x_branch .rev 46805 by  doxygen 1.7.1