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

classes/class.ilObjectListGUI.php

Go to the documentation of this file.
00001 <?php
00002 /*
00003         +-----------------------------------------------------------------------------+
00004         | ILIAS open source                                                           |
00005         +-----------------------------------------------------------------------------+
00006         | Copyright (c) 1998-2005 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 
00024 
00025 define ("IL_LIST_AS_TRIGGER", "trigger");
00026 define ("IL_LIST_FULL", "full");
00027 
00028 
00044 class ilObjectListGUI
00045 {
00046         var $ctrl;
00047         var $description_enabled = true;
00048         var $preconditions_enabled = true;
00049         var $properties_enabled = true;
00050         var $commands_enabled = true;
00051         var $cust_prop = array();
00052         var $cust_commands = array();
00053         var $info_screen_enabled = false;
00054         var $condition_depth = 0;
00055 
00056 
00061         function ilObjectListGUI()
00062         {
00063                 global $rbacsystem, $ilCtrl, $lng, $ilias;
00064 
00065                 $this->rbacsystem = $rbacsystem;
00066                 $this->ilias = $ilias;
00067                 $this->ctrl = $ilCtrl;
00068                 $this->lng = $lng;
00069                 $this->mode = IL_LIST_FULL;
00070                 $this->path_enabled = false;
00071 //echo "list";
00072                 $this->init();
00073         }
00074 
00075 
00082         function setContainerObject(&$container_obj)
00083         {
00084                 $this->container_obj =& $container_obj;
00085         }
00086 
00087 
00093         function init()
00094         {
00095                 $this->delete_enabled = true;
00096                 $this->cut_enabled = true;
00097                 $this->subscribe_enabled = true;
00098                 $this->link_enabled = false;
00099                 $this->payment_enabled = false;
00100                 $this->info_screen_enabled = false;
00101                 $this->type = "";                                       // "cat", "course", ...
00102                 $this->gui_class_name = "";                     // "ilobjcategorygui", "ilobjcoursegui", ...
00103 
00104                 // general commands array, e.g.
00105                 include_once('class.ilObjectAccess.php');
00106                 $this->commands = ilObjectAccess::_getCommands();
00107         }
00108 
00109         // Single get set methods
00116         function enableProperties($a_status)
00117         {
00118                 $this->properties_enabled = $a_status;
00119 
00120                 return;
00121         }
00128         function getPropertiesStatus()
00129         {
00130                 return $this->properties_enabled;
00131         }
00138         function enablePreconditions($a_status)
00139         {
00140                 $this->preconditions_enabled = $a_status;
00141 
00142                 return;
00143         }
00150         function getPreconditionsStatus()
00151         {
00152                 return $this->preconditions_enabled;
00153         }
00160         function enableDescription($a_status)
00161         {
00162                 $this->description_enabled = $a_status;
00163 
00164                 return;
00165         }
00172         function getDescriptionStatus()
00173         {
00174                 return $this->description_enabled;
00175         }
00182         function enableDelete($a_status)
00183         {
00184                 $this->delete_enabled = $a_status;
00185 
00186                 return;
00187         }
00194         function getDeleteStatus()
00195         {
00196                 return $this->delete_enabled;
00197         }
00204         function enableCut($a_status)
00205         {
00206                 $this->cut_enabled = $a_status;
00207 
00208                 return;
00209         }
00215         function getCutStatus()
00216         {
00217                 return $this->cut_enabled;
00218         }
00225         function enableSubscribe($a_status)
00226         {
00227                 $this->subscribe_enabled = $a_status;
00228 
00229                 return;
00230         }
00236         function getSubscribeStatus()
00237         {
00238                 return $this->subscribe_enabled;
00239         }
00246         function enablePayment($a_status)
00247         {
00248                 $this->payment_enabled = $a_status;
00249 
00250                 return;
00251         }
00257         function getPaymentStatus()
00258         {
00259                 return $this->payment_enabled;
00260         }
00267         function enableLink($a_status)
00268         {
00269                 $this->link_enabled = $a_status;
00270 
00271                 return;
00272         }
00278         function getLinkStatus()
00279         {
00280                 return $this->link_enabled;
00281         }
00282 
00289         function enablePath($a_path)
00290         {
00291                 $this->path_enabled = $a_path;
00292         }
00293 
00299         function getPathStatus()
00300         {
00301                 return $this->path_enabled;
00302         }
00303         
00310         function enableCommands($a_status)
00311         {
00312                 $this->commands_enabled = $a_status;
00313 
00314                 return;
00315         }
00321         function getCommandsStatus()
00322         {
00323                 return $this->commands_enabled;
00324         }
00325 
00332         function enableInfoScreen($a_info_screen)
00333         {
00334                 $this->info_screen_enabled = $a_info_screen;
00335         }
00336 
00342         function getInfoScreenStatus()
00343         {
00344                 return $this->info_screen_enabled;
00345         }
00346 
00351         function setTitle($a_title)
00352         {
00353                 $this->title = $a_title;
00354         }
00355 
00361         function getTitle()
00362         {
00363                 return $this->title;
00364         }
00365 
00370         function setDescription($a_description)
00371         {
00372                 $this->description = $a_description;
00373         }
00374 
00380         function getDescription()
00381         {
00382                 return $this->description;
00383         }
00384 
00393         function initItem($a_ref_id, $a_obj_id, $a_title = "", $a_description = "")
00394         {
00395                 $this->ref_id = $a_ref_id;
00396                 $this->obj_id = $a_obj_id;
00397                 $this->setTitle($a_title);
00398                 $this->setDescription($a_description);
00399                 #$this->description = $a_description;
00400                                 
00401                 // checks, whether any admin commands are included in the output
00402                 $this->adm_commands_included = false;
00403         }
00404 
00405 
00418         function getCommandLink($a_cmd)
00419         {
00420                 // don't use ctrl here in the moment
00421                 return 'repository.php?ref_id='.$this->ref_id.'&cmd='.$a_cmd;
00422 
00423                 // separate method for this line
00424                 $cmd_link = $this->ctrl->getLinkTargetByClass($this->gui_class_name,
00425                         $a_cmd);
00426                 return $cmd_link;
00427         }
00428 
00429 
00439         function getCommandFrame($a_cmd)
00440         {
00441                 return "";
00442         }
00443 
00444 
00456         function getProperties($a_item = '')
00457         {
00458                 $props = array();
00459                 // please list alert properties first
00460                 // example (use $lng->txt instead of "Status"/"Offline" strings):
00461                 // $props[] = array("alert" => true, "property" => "Status", "value" => "Offline");
00462                 // $props[] = array("alert" => false, "property" => ..., "value" => ...);
00463                 // ...
00464 
00465                 return $props;
00466         }
00467         
00471         function addCustomProperty($a_property = "", $a_value = "",
00472                 $a_alert = false, $a_newline = false)
00473         {
00474                 $this->cust_prop[] = array("property" => $a_property, "value" => $a_value,
00475                         "alert" => $a_alert, "newline" => $a_newline);
00476         }
00477         
00481         function getCustomProperties($a_prop)
00482         {
00483                 if (is_array($this->cust_prop))
00484                 {
00485                         foreach($this->cust_prop as $prop)
00486                         {
00487                                 $a_prop[] = $prop;
00488                         }
00489                 }
00490                 return $a_prop;
00491         }
00492         
00496         function addCustomCommand($a_link, $a_lang_var, $a_frame = "")
00497         {
00498                 $this->cust_commands[] =
00499                         array("link" => $a_link, "lang_var" => $a_lang_var,
00500                         "frame" => $a_frame);
00501         }
00502 
00503 
00527         function getCommands()
00528         {
00529                 global $ilAccess, $ilBench;
00530 
00531                 $ref_commands = array();
00532                 foreach($this->commands as $command)
00533                 {
00534                         $permission = $command["permission"];
00535                         $cmd = $command["cmd"];
00536                         $lang_var = $command["lang_var"];
00537 
00538                         // all access checking should be made within $ilAccess and
00539                         // the checkAccess of the ilObj...Access classes
00540                         $ilBench->start("ilObjectListGUI", "4110_get_commands_check_access");
00541                         $access = $ilAccess->checkAccess($permission, $cmd, $this->ref_id, $this->type);
00542                         $ilBench->stop("ilObjectListGUI", "4110_get_commands_check_access");
00543 
00544                         if ($access)
00545                         {
00546                                 $cmd_link = $this->getCommandLink($command["cmd"]);
00547                                 $cmd_frame = $this->getCommandFrame($command["cmd"]);
00548                                 $access_granted = true;
00549                         }
00550                         else
00551                         {
00552                                 $access_granted = false;
00553                                 $info_object = $ilAccess->getInfo();
00554                         }
00555 
00556                         $ref_commands[] = array(
00557                                 "permission" => $permission,
00558                                 "cmd" => $cmd,
00559                                 "link" => $cmd_link,
00560                                 "frame" => $cmd_frame,
00561                                 "lang_var" => $lang_var,
00562                                 "granted" => $access_granted,
00563                                 "access_info" => $info_object,
00564                                 "default" => $command["default"]
00565                         );
00566                 }
00567 
00568                 return $ref_commands;
00569         }
00570 
00571 
00579         function insertTitle()
00580         {
00581                 if (!$this->default_command || !$this->getCommandsStatus())
00582                 {
00583                         $this->tpl->setCurrentBlock("item_title");
00584                         $this->tpl->setVariable("TXT_TITLE", $this->getTitle());
00585                         $this->tpl->parseCurrentBlock();
00586                 }
00587                 else
00588                 {
00589                         if ($this->default_command["frame"] != "")
00590                         {
00591                                 $this->tpl->setCurrentBlock("title_linked_frame");
00592                                 $this->tpl->setVariable("TARGET_TITLE_LINKED", $this->default_command["frame"]);
00593                                 $this->tpl->parseCurrentBlock();
00594                         }
00595                         
00596                         // workaround for repository frameset
00597                         $this->default_command["link"] = 
00598                                 $this->appendRepositoryFrameParameter($this->default_command["link"]);
00599 
00600                         // the default command is linked with the title
00601                         $this->tpl->setCurrentBlock("item_title_linked");
00602                         $this->tpl->setVariable("TXT_TITLE_LINKED", $this->getTitle());
00603                         $this->tpl->setVariable("HREF_TITLE_LINKED", $this->default_command["link"]);
00604                         $this->tpl->parseCurrentBlock();
00605                 }
00606         }
00607 
00608 
00616         function insertDescription()
00617         {
00618                 $this->tpl->setCurrentBlock("item_description");
00619                 $this->tpl->setVariable("TXT_DESC", $this->getDescription());
00620                 $this->tpl->parseCurrentBlock();
00621         }
00622 
00628         function setMode($a_mode)
00629         {
00630                 $this->mode = $a_mode;
00631         }
00632 
00638         function getMode()
00639         {
00640                 return $this->mode;
00641         }
00642         
00646         function setConditionDepth($a_depth)
00647         {
00648                 $this->condition_depth = $a_depth;
00649         }
00650 
00658         function isMode($a_mode)
00659         {
00660                 if ($a_mode == $this->mode)
00661                 {
00662                         return true;
00663                 }
00664                 else
00665                 {
00666                         return false;
00667                 }
00668         }
00669 
00675         function insertProperties($a_item = '')
00676         {
00677                 global $ilAccess, $lng;
00678 
00679                 $props = $this->getProperties($a_item);
00680                 $props = $this->getCustomProperties($props);
00681 
00682                 // add no item access note in public section
00683                 // for items that are visible but not readable
00684                 if ($this->ilias->account->getId() == ANONYMOUS_USER_ID)
00685                 {
00686                         if (!$ilAccess->checkAccess("read", "", $this->ref_id, $this->type, $this->obj_id))
00687                         {
00688                                 $props[] = array("alert" => true,
00689                                         "value" => $lng->txt("no_access_item_public"),
00690                                         "newline" => true);
00691                         }
00692                 }
00693 
00694                 $cnt = 1;
00695                 if (is_array($props) && count($props) > 0)
00696                 {
00697                         foreach($props as $prop)
00698                         {
00699                                 if ($prop["alert"] == true)
00700                                 {
00701                                         $this->tpl->touchBlock("alert_prop");
00702                                 }
00703                                 else
00704                                 {
00705                                         $this->tpl->touchBlock("std_prop");
00706                                 }
00707                                 if ($prop["newline"] == true && $cnt > 1)
00708                                 {
00709                                         $this->tpl->touchBlock("newline_prop");
00710                                 }
00711                                 if (isset($prop["property"]))
00712                                 {
00713                                         $this->tpl->setCurrentBlock("prop_name");
00714                                         $this->tpl->setVariable("TXT_PROP", $prop["property"]);
00715                                         $this->tpl->parseCurrentBlock();
00716                                 }
00717                                 $this->tpl->setCurrentBlock("item_property");
00718                                 $this->tpl->setVariable("VAL_PROP", $prop["value"]);
00719                                 $this->tpl->parseCurrentBlock();
00720 
00721                                 $cnt++;
00722                         }
00723                         $this->tpl->setCurrentBlock("item_properties");
00724                         $this->tpl->parseCurrentBlock();
00725                 }
00726         }
00727 
00728 
00734         function insertPayment()
00735         {
00736                 include_once './payment/classes/class.ilPaymentObject.php';
00737 
00738                 if ($this->payment_enabled &&
00739                         ilPaymentObject::_isBuyable($this->ref_id))
00740                 {
00741                         if (ilPaymentObject::_hasAccess($this->ref_id))
00742                         {
00743                                 $this->tpl->setCurrentBlock("payment");
00744                                 $this->tpl->setVariable("PAYMENT_TYPE_IMG", ilUtil::getImagePath('icon_pays_access_b.gif'));
00745                                 $this->tpl->setVariable("PAYMENT_ALT_IMG", $this->lng->txt('payment_system') . ": " . $this->lng->txt('payment_payed_access'));
00746                                 $this->tpl->parseCurrentBlock();
00747                         }
00748                         else if (ilPaymentObject::_isInCart($this->ref_id))
00749                         {
00750                                 $this->tpl->setCurrentBlock("payment");
00751                                 $this->tpl->setVariable("PAYMENT_TYPE_IMG", ilUtil::getImagePath('icon_pays_cart_b.gif'));
00752                                 $this->tpl->setVariable("PAYMENT_ALT_IMG", $this->lng->txt('payment_system') . ": " . $this->lng->txt('payment_in_sc'));
00753                                 $this->tpl->parseCurrentBlock();
00754                         }
00755                         else
00756                         {
00757                                 $this->tpl->setCurrentBlock("payment");
00758                                 $this->tpl->setVariable("PAYMENT_TYPE_IMG", ilUtil::getImagePath('icon_pays_b.gif'));
00759                                 $this->tpl->setVariable("PAYMENT_ALT_IMG", $this->lng->txt('payment_system') . ": " . $this->lng->txt('payment_buyable'));
00760                                 $this->tpl->parseCurrentBlock();
00761                         }
00762                 }
00763         }
00764 
00768         function insertPreconditions()
00769         {
00770                 global $ilAccess, $lng, $objDefinition;
00771 
00772                 include_once("classes/class.ilConditionHandler.php");
00773 
00774                 $missing_cond_exist = false;
00775                 
00776                 // do not show multi level conditions (messes up layout)
00777                 if ($this->condition_depth > 0)
00778                 {
00779                         return;
00780                 }
00781 
00782                 foreach(ilConditionHandler::_getConditionsOfTarget($this->obj_id) as $condition)
00783                 {
00784                         if(ilConditionHandler::_checkCondition($condition['id']))
00785                         {
00786                                 continue;
00787                         }
00788                         $missing_cond_exist = true;
00789 
00790                         $cond_txt = $lng->txt("condition_".$condition["operator"])." ".
00791                                 $condition["value"];
00792 
00793                         // display trigger item
00794                         $class = $objDefinition->getClassName($condition["trigger_type"]);
00795                         $location = $objDefinition->getLocation($condition["trigger_type"]);
00796                         $full_class = "ilObj".$class."ListGUI";
00797                         include_once($location."/class.".$full_class.".php");
00798                         $item_list_gui = new $full_class($this);
00799                         $item_list_gui->setMode(IL_LIST_AS_TRIGGER);
00800                         $item_list_gui->enablePath(true);
00801                         $item_list_gui->setConditionDepth($this->condition_depth + 1);
00802                         $trigger_html = $item_list_gui->getListItemHTML($condition['trigger_ref_id'],
00803                                 $condition['trigger_obj_id'], trim($cond_txt).": ".ilObject::_lookupTitle($condition["trigger_obj_id"]),
00804                                  "");
00805                         $this->tpl->setCurrentBlock("precondition");
00806                         if ($trigger_html == "")
00807                         {
00808                                 $trigger_html = $this->lng->txt("precondition_not_accessible");
00809                         }
00810                         //$this->tpl->setVariable("TXT_CONDITION", trim($cond_txt));
00811                         $this->tpl->setVariable("TRIGGER_ITEM", $trigger_html);
00812                         $this->tpl->parseCurrentBlock();
00813                 }
00814 
00815                 if ($missing_cond_exist)
00816                 {
00817                         $this->tpl->setCurrentBlock("preconditions");
00818                         $this->tpl->setVariable("TXT_PRECONDITIONS", $lng->txt("preconditions"));
00819                         $this->tpl->parseCurrentBlock();
00820                 }
00821         }
00822 
00831         function insertCommand($a_href, $a_text, $a_frame = "")
00832         {
00833                 if ($a_frame != "")
00834                 {
00835                         $this->tpl->setCurrentBlock("item_frame");
00836                         $this->tpl->setVariable("TARGET_COMMAND", $a_frame);
00837                         $this->tpl->parseCurrentBlock();
00838                 }
00839 
00840                 $this->tpl->setCurrentBlock("item_command");
00841                 $this->tpl->setVariable("HREF_COMMAND", $a_href);
00842                 $this->tpl->setVariable("TXT_COMMAND", $a_text);
00843                 $this->tpl->parseCurrentBlock();
00844         }
00845 
00853         function insertDeleteCommand()
00854         {
00855                 if ($this->rbacsystem->checkAccess("delete", $this->ref_id))
00856                 {
00857                         $this->ctrl->setParameter($this->container_obj, "ref_id",
00858                                 $this->container_obj->object->getRefId());
00859                         $this->ctrl->setParameter($this->container_obj, "item_ref_id", $this->ref_id);
00860                         $cmd_link = $this->ctrl->getLinkTarget($this->container_obj, "delete");
00861                         $this->insertCommand($cmd_link, $this->lng->txt("delete"));
00862                         $this->adm_commands_included = true;
00863                 }
00864         }
00865 
00873         function insertLinkCommand()
00874         {
00875                 // if the permission is changed here, it  has
00876                 // also to be changed in ilContainerGUI, admin command check
00877                 if ($this->rbacsystem->checkAccess("delete", $this->ref_id))
00878                 {
00879                         $this->ctrl->setParameter($this->container_obj, "ref_id",
00880                                 $this->container_obj->object->getRefId());
00881                         $this->ctrl->setParameter($this->container_obj, "item_ref_id", $this->ref_id);
00882                         $cmd_link = $this->ctrl->getLinkTarget($this->container_obj, "link");
00883                         $this->insertCommand($cmd_link, $this->lng->txt("link"));
00884                         $this->adm_commands_included = true;
00885                 }
00886         }
00887 
00895         function insertCutCommand()
00896         {
00897                 // if the permission is changed here, it  has
00898                 // also to be changed in ilContainerGUI, admin command check
00899                 if ($this->rbacsystem->checkAccess("delete", $this->ref_id))
00900                 {
00901                         $this->ctrl->setParameter($this->container_obj, "ref_id",
00902                                 $this->container_obj->object->getRefId());
00903                         $this->ctrl->setParameter($this->container_obj, "item_ref_id", $this->ref_id);
00904                         $cmd_link = $this->ctrl->getLinkTarget($this->container_obj, "cut");
00905                         $this->insertCommand($cmd_link, $this->lng->txt("move"));
00906                         $this->adm_commands_included = true;
00907                 }
00908         }
00909 
00917         function insertSubscribeCommand()
00918         {
00919                 if ($this->ilias->account->getId() != ANONYMOUS_USER_ID)
00920                 {
00921                         if (!$this->ilias->account->isDesktopItem($this->ref_id, $this->type))
00922                         {
00923                                 if ($this->rbacsystem->checkAccess("read", $this->ref_id)
00924                                         && is_object($this->container_obj))
00925                                 {
00926                                         $this->ctrl->setParameter($this->container_obj, "ref_id",
00927                                                 $this->container_obj->object->getRefId());
00928                                         $this->ctrl->setParameter($this->container_obj, "type", $this->type);
00929                                         $this->ctrl->setParameter($this->container_obj, "item_ref_id", $this->ref_id);
00930                                         $cmd_link = $this->ctrl->getLinkTarget($this->container_obj, "addToDesk");
00931                                         $this->insertCommand($cmd_link, $this->lng->txt("to_desktop"));
00932                                 }
00933                         }
00934                         else
00935                         {
00936                                 // not so nice, if no container object given, it must
00937                                 // be personal desktop
00938                                 if (is_object($this->container_obj))
00939                                 {
00940                                         $this->ctrl->setParameter($this->container_obj, "ref_id",
00941                                                 $this->container_obj->object->getRefId());
00942                                         $this->ctrl->setParameter($this->container_obj, "type", $this->type);
00943                                         $this->ctrl->setParameter($this->container_obj, "item_ref_id", $this->ref_id);
00944                                         $cmd_link = $this->ctrl->getLinkTarget($this->container_obj, "removeFromDesk");
00945                                         $this->insertCommand($cmd_link, $this->lng->txt("unsubscribe"));
00946                                 }
00947                                 else
00948                                 {
00949                                         $this->ctrl->setParameterByClass("ilpersonaldesktopgui", "type", $this->type);
00950                                         $this->ctrl->setParameterByClass("ilpersonaldesktopgui", "item_ref_id", $this->ref_id);
00951                                         $cmd_link = $this->ctrl->getLinkTargetByClass("ilpersonaldesktopgui",
00952                                                 "dropItem");
00953                                         $this->insertCommand($cmd_link, $this->lng->txt("unsubscribe"));
00954                                 }
00955                         }
00956                 }
00957         }
00958 
00963         function insertInfoScreenCommand()
00964         {
00965                 $cmd_link = $this->getCommandLink("infoScreen");
00966                 $cmd_frame = $this->getCommandFrame("infoScreen");
00967                 $this->insertCommand($cmd_link, $this->lng->txt("info_short"), $cmd_frame);
00968         }
00969 
00977         function insertCommands()
00978         {
00979                 if (!$this->getCommandsStatus())
00980                 {
00981                         return;
00982                 }
00983                 $this->ctrl->setParameterByClass($this->gui_class_name, "ref_id", $this->ref_id);
00984 
00985                 $commands = $this->getCommands($this->ref_id, $this->obj_id);
00986 
00987                 $this->default_command = false;
00988                 
00989                 foreach($commands as $command)
00990                 {
00991                         if ($command["granted"] == true )
00992                         {
00993                                 if (!$command["default"] === true)
00994                                 {
00995                                         // workaround for repository frameset
00996                                         $command["link"] = 
00997                                                 $this->appendRepositoryFrameParameter($command["link"]);
00998                                         
00999                                         $cmd_link = $command["link"];
01000                                         $this->insertCommand($cmd_link, $this->lng->txt($command["lang_var"]),
01001                                                 $command["frame"]);
01002                                 }
01003                                 else
01004                                 {
01005                                         // this is view/show most times and will be linked
01006                                         // with the item title in insertTitle
01007                                         $this->default_command = $command;
01008                                 }
01009                         }
01010                 }
01011 
01012                 // custom commands
01013                 if (is_array($this->cust_commands))
01014                 {
01015                         foreach ($this->cust_commands as $command)
01016                         {
01017                                 $this->insertCommand($command["link"], $this->lng->txt($command["lang_var"]),
01018                                         $command["frame"]);
01019                         }
01020                 }
01021 
01022                 // info screen commmand
01023                 if ($this->getInfoScreenStatus())
01024                 {
01025                         $this->insertInfoScreenCommand();
01026                 }
01027 
01028                 if (!$this->isMode(IL_LIST_AS_TRIGGER))
01029                 {
01030                         // delete
01031                         if ($this->delete_enabled)
01032                         {
01033                                 $this->insertDeleteCommand();
01034                         }
01035 
01036                         // link
01037                         if ($this->link_enabled)
01038                         {
01039                                 $this->insertLinkCommand();
01040                         }
01041 
01042                         // cut
01043                         if ($this->cut_enabled)
01044                         {
01045                                 $this->insertCutCommand();
01046                         }
01047 
01048                         // subscribe
01049                         if ($this->subscribe_enabled)
01050                         {
01051                                 $this->insertSubscribeCommand();
01052                         }
01053                 }
01054         }
01055 
01060         function appendRepositoryFrameParameter($a_link)
01061         {
01062                 $script = substr(strrchr($_SERVER["PHP_SELF"],"/"),1);
01063 
01064                 if (substr($script,0,14) != "repository.php" &&
01065                         is_int(strpos($a_link,"repository.php")))
01066                 {
01067                         if ($this->type != "frm")
01068                         {
01069                                 $a_link = 
01070                                         ilUtil::appendUrlParameterString($a_link, "rep_frame=1");
01071                         }
01072                 }
01073                 
01074                 return $a_link;
01075         }
01076 
01080         function insertPath()
01081         {
01082                 global $tree, $lng;
01083 
01084                 if ($this->getPathStatus() != false)
01085                 {
01086                         $path = $tree->getPathId($this->ref_id);
01087                         $sep = false;
01088                         unset($path[count($path) - 1]);
01089                         unset($path[0]);
01090                         foreach ($path as $id)
01091                         {
01092                                 $this->tpl->setCurrentBlock("path_item");
01093                                 if ($sep)
01094                                 {
01095                                         $this->tpl->setVariable("SEPARATOR", " > ");
01096                                 }
01097                                 $this->tpl->setVariable("PATH_ITEM",
01098                                         ilObject::_lookupTitle(ilObject::_lookupObjId($id)));
01099                                 $this->tpl->parseCurrentBlock();
01100                                 $sep = true;
01101                         }
01102                         $this->tpl->setCurrentBlock("path");
01103                         $this->tpl->setVariable("TXT_LOCATION", $lng->txt("locator"));
01104                         $this->tpl->parseCurrentBlock();
01105                 }
01106         }
01107         
01112         function adminCommandsIncluded()
01113         {
01114                 return $this->adm_commands_included;
01115         }
01116 
01127         function getListItemHTML($a_ref_id, $a_obj_id, $a_title, $a_description)
01128         {
01129                 global $ilAccess, $ilBench;
01130                 
01131                 // this variable stores wheter any admin commands
01132                 // are included in the output
01133                 $this->adm_commands_included = false;
01134 
01135                 // only for permformance exploration
01136                 $type = ilObject::_lookupType($a_obj_id);
01137 
01138                 // initialization
01139                 $ilBench->start("ilObjectListGUI", "1000_getListHTML_init$type");
01140                 $this->tpl =& new ilTemplate ("tpl.container_list_item.html", true, true);
01141                 $this->initItem($a_ref_id, $a_obj_id, $a_title, $a_description);
01142                 $ilBench->stop("ilObjectListGUI", "1000_getListHTML_init$type");
01143 
01144                 // visible check
01145                 $ilBench->start("ilObjectListGUI", "2000_getListHTML_check_visible");
01146                 if (!$ilAccess->checkAccess("visible", "", $a_ref_id, "", $a_obj_id))
01147                 {
01148                         $ilBench->stop("ilObjectListGUI", "2000_getListHTML_check_visible");
01149                         return "";
01150                 }
01151                 $ilBench->stop("ilObjectListGUI", "2000_getListHTML_check_visible");
01152 
01153                 // commands
01154                 $ilBench->start("ilObjectListGUI", "4000_insert_commands");
01155                 $this->insertCommands();
01156                 $ilBench->stop("ilObjectListGUI", "4000_insert_commands");
01157 
01158                 // insert title and describtion
01159                 $ilBench->start("ilObjectListGUI", "3000_insert_title_desc");
01160                 $this->insertTitle();
01161                 if (!$this->isMode(IL_LIST_AS_TRIGGER))
01162                 {
01163                         if ($this->getDescriptionStatus())
01164                         {
01165                                 $this->insertDescription();
01166                         }
01167                 }
01168                 $ilBench->stop("ilObjectListGUI", "3000_insert_title_desc");
01169 
01170                 // payment
01171                 $ilBench->start("ilObjectListGUI", "5000_insert_pay");
01172                 $this->insertPayment();
01173                 $ilBench->stop("ilObjectListGUI", "5000_insert_pay");
01174 
01175                 // properties
01176                 $ilBench->start("ilObjectListGUI", "6000_insert_properties$type");
01177                 if ($this->getPropertiesStatus())
01178                 {
01179                         $this->insertProperties();
01180                 }
01181                 $ilBench->stop("ilObjectListGUI", "6000_insert_properties$type");
01182 
01183                 // preconditions
01184                 $ilBench->start("ilObjectListGUI", "7000_insert_preconditions");
01185                 if ($this->getPreconditionsStatus())
01186                 {
01187                         $this->insertPreconditions();
01188                 }
01189                 $ilBench->stop("ilObjectListGUI", "7000_insert_preconditions");
01190 
01191                 // path
01192                 $ilBench->start("ilObjectListGUI", "8000_insert_path");
01193                 $this->insertPath();
01194                 $ilBench->stop("ilObjectListGUI", "8000_insert_path");
01195 
01196                 // reset properties and commands
01197                 $this->cust_prop = array();
01198                 $this->cust_commands = array();
01199 
01200                 return $this->tpl->get();
01201         }
01202 
01203 } // END class.ilObjectListGUI
01204 ?>

Generated on Fri Dec 13 2013 13:52:07 for ILIAS Release_3_7_x_branch .rev 46817 by  doxygen 1.7.1