/**
  * The disk quota report list shows user accounts, their disk quota and their
  * disk usage, as well as the last time a reminder was sent.
  */
 public function viewDiskQuotaReport()
 {
     global $rbacsystem, $ilErr, $ilSetting, $lng;
     if (!$rbacsystem->checkAccess("visible,read", $this->object->getRefId())) {
         $ilErr->raiseError($lng->txt("no_permission"), $ilErr->WARNING);
     }
     $this->tabs_gui->setTabActive('disk_quota');
     $this->addDiskQuotaSubtabs('disk_quota_report');
     // nothing to do if disk quota is not active
     require_once 'Services/WebDAV/classes/class.ilDiskQuotaActivationChecker.php';
     if (!ilDiskQuotaActivationChecker::_isActive()) {
         return;
     }
     // get the form
     $this->tpl->addBlockfile('ADM_CONTENT', 'adm_content', 'tpl.disk_quota_report.html', "Services/WebDAV");
     // get the date of the last update
     require_once "./Services/WebDAV/classes/class.ilDiskQuotaChecker.php";
     $last_update = ilDiskQuotaChecker::_lookupDiskUsageReportLastUpdate();
     if ($last_update == null) {
         // nothing to do if disk usage report has not been run
         $this->tpl->setVariable('LAST_UPDATE_TEXT', $lng->txt('disk_quota_report_not_run_yet'));
         return;
     } else {
         $this->tpl->setVariable('LAST_UPDATE_TEXT', $lng->txt('last_update') . ': ' . ilFormat::formatDate($last_update, 'datetime', true));
     }
     // Filter
     $_SESSION['quota_usage_filter'] = isset($_POST['usage_filter']) ? $_POST['usage_filter'] : $_SESSION['quota_usage_filter'];
     if ($_SESSION['quota_usage_filter'] == 0) {
         $_SESSION['quota_usage_filter'] = 4;
     }
     $_SESSION['quota_access_filter'] = isset($_POST['access_filter']) ? $_POST['access_filter'] : $_SESSION['quota_access_filter'];
     if ($_SESSION['quota_access_filter'] == 0) {
         $_SESSION['quota_access_filter'] = 1;
     }
     $usage_action[1] = $lng->txt('all_users');
     $usage_action[2] = $lng->txt('filter_users_without_disk_usage');
     $usage_action[3] = $lng->txt('filter_users_with_disk_usage');
     $usage_action[4] = $lng->txt('filter_users_with_exceeded_disk_quota');
     $access_action[1] = $lng->txt('all_users');
     $access_action[2] = $lng->txt('filter_users_with_access');
     $access_action[3] = $lng->txt('filter_users_without_access');
     $select_usage_filter = ilUtil::formSelect($_SESSION['quota_usage_filter'], "usage_filter", $usage_action, false, true);
     $select_access_filter = ilUtil::formSelect($_SESSION['quota_access_filter'], "access_filter", $access_action, false, true);
     $this->tpl->setCurrentBlock("filter");
     $this->tpl->setVariable("FILTER_TXT_FILTER", $lng->txt('filter'));
     $this->tpl->setVariable("SELECT_USAGE_FILTER", $select_usage_filter);
     $this->tpl->setVariable("SELECT_ACCESS_FILTER", $select_access_filter);
     $this->tpl->setVariable("FILTER_ACTION", $this->ctrl->getLinkTarget($this, 'viewDiskQuotaReport'));
     $this->tpl->setVariable("FILTER_NAME", 'view');
     $this->tpl->setVariable("FILTER_VALUE", $lng->txt('apply_filter'));
     $this->tpl->parseCurrentBlock();
     // load templates for table
     $a_tpl = new ilTemplate('tpl.table.html', true, true);
     $a_tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.obj_tbl_rows.html");
     // create table
     require_once './Services/Table/classes/class.ilTableGUI.php';
     $tbl = new ilTableGUI(0, false);
     // title & header columns
     $header_vars = array('login', 'firstname', 'lastname', 'email', 'access_until', 'last_login', 'disk_quota', 'disk_usage', 'last_reminder');
     $tbl->setHeaderNames(array($lng->txt('login'), $lng->txt('firstname'), $lng->txt('lastname'), $lng->txt('email'), $lng->txt('access_until'), $lng->txt('last_login'), $lng->txt('disk_quota'), $lng->txt('disk_usage'), $lng->txt('last_reminder')));
     $tbl->setHeaderVars($header_vars, $this->ctrl->getParameterArray($this, 'viewDiskQuotaReport', false));
     $tbl->enable("numinfo_header");
     $tbl->setFormName("cmd");
     $tbl->setSelectAllCheckbox("id");
     // sorting
     $tbl->setOrderColumn($_GET["sort_by"]);
     $tbl->setOrderDirection($_GET["sort_order"]);
     // fetch the data
     $data = ilDiskQuotaChecker::_fetchDiskQuotaReport($_SESSION['quota_usage_filter'], $_SESSION['quota_access_filter'], $header_vars[$tbl->getOrderColumn()], $tbl->getOrderDirection());
     // paging
     $tbl->setLimit($_GET["limit"]);
     $tbl->setOffset($_GET["offset"]);
     $tbl->setMaxCount(count($data));
     // footer
     $tbl->setFooter("tblfooter", $lng->txt("previous"), $lng->txt("next"));
     // render table
     $tbl->setTemplate($a_tpl);
     // render rows
     $count = 0;
     for ($i = $tbl->getOffset(); $i < count($data) && $i < $tbl->getOffset() + $tbl->getLimit(); $i++) {
         $row = $data[$i];
         // build columns
         foreach ($header_vars as $key) {
             switch ($key) {
                 case 'login':
                     //build link
                     $this->ctrl->setParameterByClass("ilobjusergui", "ref_id", "7");
                     $this->ctrl->setParameterByClass("ilobjusergui", "obj_id", $row["usr_id"]);
                     $link = $this->ctrl->getLinkTargetByClass("ilobjusergui", "view");
                     $tbl_content_cell = '<a href="' . $link . '">' . htmlspecialchars($row[$key]) . '</a>';
                     break;
                 case 'disk_quota':
                     if ($row['role_id'] == SYSTEM_ROLE_ID) {
                         $tbl_content_cell = "<span class=\"smallgreen\">" . $lng->txt('access_unlimited') . '</span>';
                     } else {
                         $tbl_content_cell = ilFormat::formatSize($row[$key], 'short');
                     }
                     break;
                 case 'disk_usage':
                     if ($row['last_update'] == null) {
                         $tbl_content_cell = $lng->txt('unknown');
                     } else {
                         if ($row['disk_usage'] > $row['disk_quota']) {
                             $tbl_content_cell = "<span class=\"smallred\">" . ilFormat::formatSize($row[$key], 'short') . '</span>';
                         } else {
                             $tbl_content_cell = ilFormat::formatSize($row[$key], 'short');
                         }
                     }
                     break;
                 case 'access_until':
                     if (!$row['active']) {
                         $tbl_content_cell = "<span class=\"smallred\">" . $lng->txt('inactive') . '</span>';
                     } else {
                         if ($row['time_limit_unlimited']) {
                             $tbl_content_cell = "<span class=\"smallgreen\">" . $lng->txt('access_unlimited') . '</span>';
                         } else {
                             if ($row['expired']) {
                                 $tbl_content_cell = "<span class=\"smallred\">" . $lng->txt('access_expired') . '</span>';
                             } else {
                                 $tbl_content_cell = ilFormat::formatDate($row[$key]);
                             }
                         }
                     }
                     break;
                 case 'last_login':
                 case 'last_reminder':
                     if ($row[$key] == null) {
                         $tbl_content_cell = $lng->txt('no_date');
                     } else {
                         $tbl_content_cell = ilFormat::formatDate($row[$key]);
                     }
                     break;
                 default:
                     $tbl_content_cell = htmlspecialchars($row[$key]);
             }
             /*
             				if (is_array($tbl_content_cell))
             				{
             					$tbl->tpl->setCurrentBlock("tbl_cell_subtitle");
             					$tbl->tpl->setVariable("TBL_CELL_SUBTITLE",$tbl_content_cell[1]);
             					$tbl->tpl->parseCurrentBlock();
             					$tbl_content_cell = "<b>".$tbl_content_cell[0]."</b>";
             				}*/
             $tbl->tpl->setCurrentBlock("tbl_content_cell");
             $tbl->tpl->setVariable("TBL_CONTENT_CELL", $tbl_content_cell);
             $tbl->tpl->parseCurrentBlock();
         }
         $tbl->tpl->setCurrentBlock("tbl_content_row");
         $rowcolor = ilUtil::switchColor($count, "tblrow1", "tblrow2");
         $tbl->tpl->setVariable("ROWCOLOR", $rowcolor);
         $tbl->tpl->parseCurrentBlock();
         $count++;
     }
     $tbl->render();
     // Add table to page
     $this->tpl->setVariable("USER_TABLE", $a_tpl->get());
 }
 /**
  * Show file list of available export files
  *
  * @access public
  * 
  */
 public function showFileList()
 {
     global $ilUser;
     if (!count($files = $this->fss_export->getMemberExportFiles())) {
         return false;
     }
     $a_tpl = new ilTemplate('tpl.table.html', true, true);
     $a_tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.member_export_file_row.html", "Modules/Course");
     $a_tpl->setVariable('FORMACTION', $this->ctrl->getFormaction($this));
     include_once "./Services/Table/classes/class.ilTableGUI.php";
     $tbl = new ilTableGUI();
     // load template for table content data
     $tbl->setTitle($this->lng->txt("ps_export_files"));
     $tbl->setHeaderNames(array("", $this->lng->txt("type"), $this->lng->txt("ps_size"), $this->lng->txt("date")));
     $cols = array("", "type", "size", "date");
     $header_params = $this->ctrl->getParameterArray($this, 'show');
     $tbl->setHeaderVars($cols, $header_params);
     $tbl->setColumnWidth(array("1%", "9%", "45%", "45%"));
     // control
     $tbl->setOrderColumn($_GET["sort_by"]);
     $tbl->setOrderDirection($_GET["sort_order"]);
     $tbl->setLimit($ilUser->getPref('hits_per_page', 9999));
     $tbl->setOffset($_GET["offset"]);
     $tbl->setMaxCount(count($files));
     $tbl->disable("sort");
     $a_tpl->setVariable("COLUMN_COUNTS", 4);
     $files = array_reverse($files);
     $files = array_slice($files, $_GET["offset"], $_GET["limit"]);
     $num = 0;
     $i = 0;
     foreach ($files as $exp_file) {
         $a_tpl->setCurrentBlock("tbl_content");
         $a_tpl->setVariable("TXT_FILENAME", $exp_file["file"]);
         $css_row = ilUtil::switchColor($i++, "tblrow1", "tblrow2");
         $a_tpl->setVariable("CSS_ROW", $css_row);
         $a_tpl->setVariable("TXT_SIZE", $exp_file['size']);
         $a_tpl->setVariable("TXT_TYPE", strtoupper($exp_file["type"]));
         $a_tpl->setVariable("CHECKBOX_ID", $exp_file["timest"]);
         $a_tpl->setVariable("TXT_DATE", date("Y-m-d H:i", $exp_file['timest']));
         $a_tpl->parseCurrentBlock();
     }
     // delete button
     $a_tpl->setVariable("IMG_ARROW", ilUtil::getImagePath("arrow_downright.png"));
     $a_tpl->setCurrentBlock("tbl_action_btn");
     $a_tpl->setVariable("BTN_NAME", "confirmDeleteExportFile");
     $a_tpl->setVariable("BTN_VALUE", $this->lng->txt("delete"));
     $a_tpl->parseCurrentBlock();
     $a_tpl->setCurrentBlock("tbl_action_btn");
     $a_tpl->setVariable("BTN_NAME", "downloadExportFile");
     $a_tpl->setVariable("BTN_VALUE", $this->lng->txt("download"));
     $a_tpl->parseCurrentBlock();
     // footer
     $tbl->setFooter("tblfooter", $this->lng->txt("previous"), $this->lng->txt("next"));
     //$tbl->disable("footer");
     $tbl->setTemplate($a_tpl);
     $tbl->render();
     #$this->tpl->setCurrentBlock('file_list');
     $this->tpl->setVariable('FILE_LIST_TABLE', $a_tpl->get());
     #$this->tpl->parseCurrentBlock();
 }
 /**
  * Show the edit screen
  */
 function viewObject()
 {
     global $ilUser;
     $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.lang_edit_items.html", "Services/Language");
     // set the language to compare with
     $compare = $this->getPar('compare', $this->lng->getDefaultLanguage());
     // get the default values if the compare language is the same
     if ($compare == $this->object->key) {
         $compare_object = $this->object->getGlobalLanguageFile();
         $compare_content = $compare_object->getAllValues();
         $compare_comments = $compare_object->getAllComments();
         $compare_note = " " . $this->lng->txt("language_default_entries");
     }
     // get the remarks in database
     $remarks = $this->object->getAllRemarks();
     // page translation mode:
     // - the table is filtered by a list of modules and topics
     // - all found entries are shown on the same page
     if ($this->_isPageTranslation()) {
         $offset = 0;
         $limit = 0;
         $modules = $this->getPar("page_modules", array());
         $topics = $this->getPar("page_topics", array());
         if (!isset($compare_content)) {
             $compare_content = ilObjLanguageExt::_getValues($compare, $modules, $topics);
             $compare_comments = ilObjLanguageExt::_getRemarks($compare);
         }
         $translations = ilObjLanguageExt::_getValues($this->object->key, $modules, $topics);
     } else {
         $offset = $this->getPar('offset', '0');
         $limit = $ilUser->getPref("hits_per_page");
         $filter_mode = $this->getPar('filter_mode', 'all');
         $filter_pattern = $this->getPar('filter_pattern', '');
         $filter_module = $this->getPar('filter_module', 'administration');
         $filter_modules = $filter_module ? array($filter_module) : array();
         if (!isset($compare_content)) {
             $compare_content = ilObjLanguageExt::_getValues($compare, $filter_modules);
             $compare_comments = ilObjLanguageExt::_getRemarks($compare);
         }
         switch ($filter_mode) {
             case "changed":
                 $translations = $this->object->getChangedValues($filter_modules, $filter_pattern);
                 break;
             case "added":
                 //langmode only
                 $translations = $this->object->getAddedValues($filter_modules, $filter_pattern);
                 break;
             case "unchanged":
                 $translations = $this->object->getUnchangedValues($filter_modules, $filter_pattern);
                 break;
             case "commented":
                 $translations = $this->object->getCommentedValues($filter_modules, $filter_pattern);
                 break;
             case "dbremarks":
                 $translations = $this->object->getAllValues($filter_modules, $filter_pattern);
                 $translations = array_intersect_key($translations, $remarks);
                 break;
             case "equal":
                 $translations = $this->object->getAllValues($filter_modules, $filter_pattern);
                 $translations = array_intersect_assoc($translations, $compare_content);
                 break;
             case "different":
                 $translations = $this->object->getAllValues($filter_modules, $filter_pattern);
                 $translations = array_diff_assoc($translations, $compare_content);
                 break;
             case "conflicts":
                 $former_file = $this->object->getCustLangPath() . '/ilias_' . $this->object->key . '.lang';
                 if (!is_readable($former_file)) {
                     ilUtil::sendFailure(sprintf($this->lng->txt("language_former_file_missing"), $former_file) . '<br />' . $this->lng->txt("language_former_file_description"), false);
                     $translations = array();
                     break;
                 }
                 $global_file_obj = $this->object->getGlobalLanguageFile();
                 $former_file_obj = new ilLanguageFile($former_file);
                 $former_file_obj->read();
                 $global_changes = array_diff_assoc($global_file_obj->getAllValues(), $former_file_obj->getAllValues());
                 if (!count($global_changes)) {
                     ilUtil::sendInfo(sprintf($this->lng->txt("language_former_file_equal"), $former_file) . '<br />' . $this->lng->txt("language_former_file_description"), false);
                     $translations = array();
                     break;
                 }
                 $translations = $this->object->getChangedValues($filter_modules, $filter_pattern);
                 $translations = array_intersect_key($translations, $global_changes);
                 break;
             case "all":
             default:
                 $translations = $this->object->getAllValues($filter_modules, $filter_pattern);
         }
         // show the filter section
         $this->tpl->setCurrentBlock("filter");
         // filter by language module
         $options = array();
         $options[""] = $this->lng->txt("language_all_modules");
         $modules = ilObjLanguageExt::_getModules($this->object->key);
         foreach ($modules as $mod) {
             $options[$mod] = $mod;
         }
         $this->tpl->setVariable("SELECT_MODULE", ilUtil::formSelect($filter_module, "filter_module", $options, false, true));
         // filter by mode
         $options = array();
         $options["all"] = $this->lng->txt("language_scope_global");
         $options["changed"] = $this->lng->txt("language_scope_local");
         if ($this->langmode) {
             $options["added"] = $this->lng->txt("language_scope_added");
         }
         $options["unchanged"] = $this->lng->txt("language_scope_unchanged");
         $options["equal"] = $this->lng->txt("language_scope_equal");
         $options["different"] = $this->lng->txt("language_scope_different");
         $options["commented"] = $this->lng->txt("language_scope_commented");
         if ($this->langmode) {
             $options["dbremarks"] = $this->lng->txt("language_scope_dbremarks");
         }
         $options["conflicts"] = $this->lng->txt("language_scope_conflicts");
         $this->tpl->setVariable("SELECT_MODE", ilUtil::formSelect($filter_mode, "filter_mode", $options, false, true));
         // filter by pattern
         $this->tpl->setVariable("PATTERN_NAME", "filter_pattern");
         $this->tpl->setVariable("PATTERN_VALUE", ilUtil::prepareFormOutput($filter_pattern));
         // and general filter variables
         $this->tpl->setVariable("FILTER_ACTION", $this->ctrl->getFormAction($this));
         $this->tpl->setVariable("TXT_FILTER", $this->lng->txt("filter"));
         $this->tpl->setVariable("OFFSET_NAME", "offset");
         $this->tpl->setVariable("OFFSET_VALUE", "0");
         $this->tpl->setVariable("TXT_APPLY_FILTER", $this->lng->txt("apply_filter"));
         $this->tpl->setVariable("CMD_FILTER", "view");
         $this->tpl->parseCurrentBlock();
     }
     // show the compare section
     $this->tpl->setCurrentBlock("compare");
     $this->tpl->setVariable("COMPARE_ACTION", $this->ctrl->getFormAction($this));
     $this->tpl->setVariable("TXT_COMPARE", $this->lng->txt("language_compare"));
     $this->tpl->setVariable("TXT_CHANGE", $this->lng->txt("change"));
     $options = array();
     $langlist = $this->lng->getInstalledLanguages();
     foreach ($langlist as $lang_key) {
         $options[$lang_key] = $this->lng->txt("meta_l_" . $lang_key);
     }
     $this->tpl->setVariable("SELECT_COMPARE", ilUtil::formSelect($compare, "compare", $options, false, true, 1));
     $this->tpl->setVariable("CMD_COMPARE", "view");
     $this->tpl->parseCurrentBlock();
     // prepare the dataset for the output table
     $sort_by = $this->getPar('sort_by', 'translation');
     $sort_order = $this->getPar('sort_order', 'asc');
     $list = array();
     foreach ($translations as $name => $translation) {
         $keys = explode($this->lng->separator, $name);
         $data = array();
         $data["module"] = $keys[0];
         $data["topic"] = $keys[1];
         $data["name"] = $name;
         $data["translation"] = $translation;
         $data["default"] = $compare_content[$name];
         $data["default_comment"] = $compare_comments[$name];
         $list[] = $data;
     }
     $list = ilUtil::sortArray($list, $sort_by, $sort_order);
     if ($limit > 0) {
         $list = array_slice($list, $offset, $limit);
     }
     // create and configure the table object
     include_once 'Services/Table/classes/class.ilTableGUI.php';
     $tbl = new ilTableGUI();
     $tbl->disable('title');
     $tbl->setHeaderNames(array($this->lng->txt("module"), $this->lng->txt("identifier"), $this->lng->txt("meta_l_" . $this->object->key), $this->lng->txt("meta_l_" . $compare) . $compare_note));
     $tbl->setHeaderVars(array("module", "topic", "translation", "default"), $this->ctrl->getParameterArray($this));
     $tbl->setColumnWidth(array("10%", "20%", "40%", "30%"));
     $tbl->setOrderColumn($sort_by);
     $tbl->setOrderDirection($sort_order);
     $tbl->setLimit($limit);
     $tbl->setOffset($offset);
     $tbl->setMaxCount(count($translations));
     // prepare the table template
     $tpl =& new ilTemplate("tpl.table.html", true, true);
     $tpl->setCurrentBlock("tbl_form_header");
     $tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
     $tpl->parseCurrentBlock();
     $tpl->setCurrentBlock("tbl_action_btn");
     $tpl->setVariable("BTN_NAME", 'save');
     $tpl->setVariable("BTN_VALUE", $this->lng->txt('save'));
     $tpl->parseCurrentBlock();
     $tpl->setCurrentBlock("tbl_action_row");
     $tpl->setVariable("COLUMN_COUNTS", "4");
     $tpl->parseCurrentBlock();
     // render the table rows
     $tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.lang_items_row.html", "Services/Language");
     foreach ($list as $data) {
         if ($this->langmode) {
             $tpl->setCurrentBlock('comment');
             $tpl->setVariable("COM_ID", ilUtil::prepareFormOutput($data["name"] . $this->lng->separator . "comment"));
             $tpl->setVariable("COM_NAME", ilUtil::prepareFormOutput($data["name"] . $this->lng->separator . "comment"));
             $tpl->setVariable("COM_VALUE", ilUtil::prepareFormOutput($remarks[$data["name"]]));
             $tpl->setVariable("COM_SIZE", $this->commentsize);
             $tpl->setVariable("COM_MAX", 250);
             $tpl->setVariable("TXT_COMMENT", $this->lng->txt('comment'));
             $tpl->parseCurrentBlock();
         } else {
             $tpl->setCurrentBlock('hidden_comment');
             $tpl->setVariable("COM_NAME", ilUtil::prepareFormOutput($data["name"] . $this->lng->separator . "comment"));
             $tpl->setVariable("COM_VALUE", ilUtil::prepareFormOutput($remarks[$data["name"]]));
             $tpl->parseCurrentBlock();
         }
         $tpl->setCurrentBlock("row");
         $tpl->setVariable("T_ROWS", ceil(strlen($data["translation"]) / $this->inputsize));
         $tpl->setVariable("T_SIZE", $this->inputsize);
         $tpl->setVariable("T_NAME", ilUtil::prepareFormOutput($data["name"]));
         $tpl->setVariable("T_USER_VALUE", ilUtil::prepareFormOutput($data["translation"]));
         $tpl->setVariable("MODULE", ilUtil::prepareFormOutput($data["module"]));
         $tpl->setVariable("TOPIC", ilUtil::prepareFormOutput($data["topic"]));
         $tpl->setVariable("DEFAULT_VALUE", ilUtil::prepareFormOutput($data["default"]));
         $tpl->setVariable("COMMENT", ilUtil::prepareFormOutput($data["default_comment"]));
         $tpl->parseCurrentBlock();
     }
     // render and show the table
     $tbl->setTemplate($tpl);
     $tbl->render();
     $this->tpl->setVariable("TRANSLATION_TABLE", $tpl->get());
     //		$this->tpl->show();
 }
 function askDeleteObjective()
 {
     global $rbacsystem;
     // MINIMUM ACCESS LEVEL = 'write'
     if (!$rbacsystem->checkAccess("write", $this->course_obj->getRefId())) {
         $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"), $this->ilErr->MESSAGE);
     }
     if (!count($_POST['objective'])) {
         ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'));
         $this->listObjectives();
         return true;
     }
     $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.crs_objectives.html", 'Modules/Course');
     ilUtil::sendQuestion($this->lng->txt('crs_delete_objectve_sure'));
     $tpl =& new ilTemplate("tpl.table.html", true, true);
     $tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.crs_objectives_delete_row.html", 'Modules/Course');
     $counter = 0;
     foreach ($_POST['objective'] as $objective_id) {
         $objective_obj = $this->__initObjectivesObject($objective_id);
         $tpl->setCurrentBlock("tbl_content");
         $tpl->setVariable("ROWCOL", ilUtil::switchColor(++$counter, "tblrow2", "tblrow1"));
         $tpl->setVariable("TITLE", $objective_obj->getTitle());
         $tpl->setVariable("DESCRIPTION", $objective_obj->getDescription());
         $tpl->parseCurrentBlock();
     }
     $tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
     // Show action row
     $tpl->setCurrentBlock("tbl_action_btn");
     $tpl->setVariable("BTN_NAME", 'deleteObjectives');
     $tpl->setVariable("BTN_VALUE", $this->lng->txt('delete'));
     $tpl->parseCurrentBlock();
     $tpl->setCurrentBlock("tbl_action_btn");
     $tpl->setVariable("BTN_NAME", 'listObjectives');
     $tpl->setVariable("BTN_VALUE", $this->lng->txt('cancel'));
     $tpl->parseCurrentBlock();
     $tpl->setCurrentBlock("tbl_action_row");
     $tpl->setVariable("COLUMN_COUNTS", 1);
     $tpl->setVariable("IMG_ARROW", ilUtil::getImagePath('arrow_downright.png'));
     $tpl->parseCurrentBlock();
     // create table
     $tbl = new ilTableGUI();
     $tbl->setStyle('table', 'std');
     // title & header columns
     $tbl->setTitle($this->lng->txt("crs_objectives"), "icon_lobj.png", $this->lng->txt("crs_objectives"));
     $tbl->setHeaderNames(array($this->lng->txt("title")));
     $tbl->setHeaderVars(array("title"), array("ref_id" => $this->course_obj->getRefId(), "cmdClass" => "ilcourseobjectivesgui", "cmdNode" => $_GET["cmdNode"]));
     $tbl->setColumnWidth(array("50%"));
     $tbl->setLimit($_GET["limit"]);
     $tbl->setOffset($_GET["offset"]);
     $tbl->setMaxCount(count($_POST['objective']));
     // footer
     $tbl->disable("footer");
     $tbl->disable('sort');
     // render table
     $tbl->setTemplate($tpl);
     $tbl->render();
     $this->tpl->setVariable("OBJECTIVES_TABLE", $tpl->get());
     // Save marked objectives
     $_SESSION['crs_delete_objectives'] = $_POST['objective'];
     return true;
 }