5 require_once(
"./Modules/Scorm2004/classes/class.ilSCORM2004NodeGUI.php");
6 require_once(
"./Modules/Scorm2004/classes/class.ilSCORM2004Sco.php");
7 require_once(
"./Modules/Scorm2004/classes/seq_editor/class.ilSCORM2004Objective.php");
35 $ilCtrl->saveParameter($this,
"obj_id");
56 $tpl->getStandardTemplate();
58 $next_class = $ilCtrl->getNextClass($this);
59 $cmd = $ilCtrl->getCmd();
65 switch(
$_GET[
"notes_mode"])
68 $ilTabs->setTabActive(
"sahs_organization");
76 include_once
'Services/MetaData/classes/class.ilMDEditorGUI.php';
79 $this->node_object->getId(), $this->node_object->getType());
80 $md_gui->
addObserver($this->node_object,
'MDUpdateListener',
'General');
81 $ilCtrl->forwardCommand($md_gui);
84 case 'ilscorm2004pagegui':
85 include_once(
"./Modules/Scorm2004/classes/class.ilSCORM2004PageGUI.php");
89 $ilCtrl->forwardCommand($page_obj);
93 $cmd = $ilCtrl->getCmd(
"showOrganization");
108 $ilTabs->setTabActive(
"sahs_desc_objectives");
110 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
114 $cb =
new ilCheckboxInputGUI($lng->txt(
"sahs_hide_objectives_page"),
"hide_objectives_page");
115 $cb->
setInfo($lng->txt(
"sahs_hide_objectives_page_info"));
117 $cb->setChecked($this->node_object->getHideObjectivePage());
123 $ta->setInfo($lng->txt(
"sahs_list_info"));
124 $form->setTitle($lng->txt(
"properties"));
126 include_once
"./Services/MetaData/classes/class.ilMD.php";
127 $meta =
new ilMD($this->node_object->getSLMId(), $this->node_object->getId(), $this->node_object->getType());
128 $desc_ids = $meta->
getGeneral()->getDescriptionIds();
129 $ta->setValue($meta->getGeneral()->getDescription($desc_ids[0])->getDescription());
133 $sh->setTitle($lng->txt(
"sahs_learning_objectives"));
136 $objectives = $this->node_object->getObjectives();
138 foreach ($objectives as $ob)
141 $mappings = $ob->getMappings();
143 foreach($mappings as $map)
145 $mapinfo .= $map->getTargetObjectiveID();
148 if ($mapinfo == null)
154 $mapinfo =
"global to ".$mapinfo;
159 "obj_".$ob->getId());
162 $ta->setInfo($lng->txt(
"sahs_list_info"));
164 $ta->setValue($ob->getObjectiveID());
166 $form->setFormAction($ilCtrl->getFormAction($this));
167 $form->addCommandButton(
"updateProperties",
169 $tpl->setContent($form->getHTML());
180 foreach (
$_POST as $key=>$value) {
181 if(preg_match(
'/(obj_)(.+)/', $key,$match)){
182 $objective =
new ilScorm2004Objective($this->node_object->getId(),$match[2]);
188 $objective->updateObjective();
194 $this->node_object->update();
196 include_once
"./Services/MetaData/classes/class.ilMD.php";
197 $meta =
new ilMD($this->node_object->getSLMId(), $this->node_object->getId(), $this->node_object->getType());
199 $desc_ids = $gen->getDescriptionIds();
200 $des = $gen->getDescription($desc_ids[0]);
223 include_once
"./Services/Table/classes/class.ilTableGUI.php";
224 include_once
"./Modules/Scorm2004/classes/class.ilSCORM2004Page.php";
225 include_once(
"./Modules/TestQuestionPool/classes/class.assQuestion.php");
226 include_once(
"./Services/COPage/classes/class.ilPCQuestionGUI.php");
229 $tpl->addBlockfile(
"ADM_CONTENT",
"adm_content",
"tpl.table.html");
230 $tpl->addBlockfile(
"TBL_CONTENT",
"tbl_content",
"tpl.scormeditor_sco_question.html",
"Modules/Scorm2004");
233 $tbl->setTitle(
"Questions for ".$this->node_object->getTitle());
234 $tbl->setHeaderNames(array(
"Question",
"Page"));
235 $cols = array(
"question",
"page");
236 $tbl->setHeaderVars($cols, $header_params);
237 $tbl->setColumnWidth(array(
"50%",
"50%"));
238 $tbl->disable(
"sort");
239 $tbl->disable(
"footer");
241 $tree =
new ilTree($this->slm_object->getId());
242 $tree->
setTableNames(
'sahs_sc13_tree',
'sahs_sc13_tree_node');
243 $tree->setTreeTablePK(
"slm_id");
245 foreach($tree->getSubTree($tree->getNodeData($this->node_object->getId()),
true,
'page') as $page)
249 if (count($qids) > 0)
252 foreach ($qids as $qid)
254 $tpl->setCurrentBlock(
"tbl_content");
255 $tpl->setVariable(
"TXT_PAGE_TITLE", $page[
"title"]);
256 $ilCtrl->setParameterByClass(
"ilscorm2004pagenodegui",
"obj_id", $page[
"obj_id"]);
257 $tpl->setVariable(
"HREF_EDIT_PAGE", $ilCtrl->getLinkTargetByClass(
"ilscorm2004pagenodegui",
"edit"));
260 $tpl->setVariable(
"TXT_QUESTION", $qtitle);
261 $ilCtrl->setParameterByClass(
"ilscorm2004pagenodegui",
"obj_id", $page[
"obj_id"]);
265 $tpl->parseCurrentBlock();
275 $slm_tree =
new ilTree($this->node_object->getId(),$this->slm_object->getId());
277 $slm_tree->setTableNames(
'sahs_sc13_tree',
'sahs_sc13_tree_node');
289 $ilTabs->addTarget(
"sahs_organization",
290 $ilCtrl->getLinkTarget($this,
'showOrganization'),
291 "showOrganization", get_class($this));
295 $ilTabs->addTarget(
"sahs_desc_objectives",
296 $ilCtrl->getLinkTarget($this,
'showProperties'),
297 "showProperties", get_class($this));
300 $ilTabs->addTarget(
"sahs_questions",
301 $ilCtrl->getLinkTarget($this,
'sahs_questions'),
302 "sahs_questions", get_class($this));
305 $ilTabs->addTarget(
"cont_files",
306 $ilCtrl->getLinkTarget($this,
'sco_resources'),
307 "sco_resources", get_class($this));
310 $ilTabs->addTarget(
"meta_data",
311 $ilCtrl->getLinkTargetByClass(
"ilmdeditorgui",
''),
312 "",
"ilmdeditorgui");
315 $ilTabs->addTarget(
"export",
316 $ilCtrl->getLinkTarget($this,
"showExportList"),
"showExportList",
320 $ilTabs->addTarget(
"import",
321 $ilCtrl->getLinkTarget($this,
"import"),
"import",
325 $ilTabs->addNonTabbedLink(
"preview",
326 $lng->txt(
"cont_preview"),
327 $ilCtrl->getLinkTarget($this,
'sco_preview'),
"_blank");
331 $lng->txt(
"sahs_unit").
": ".$this->node_object->getTitle());
342 $this->slm_object->executeDragDrop(
$_POST[
"il_hform_source_id"],
$_POST[
"il_hform_target_id"],
344 $ilCtrl->redirect($this,
"showOrganization");
355 $tpl =
new ilTemplate(
"tpl.main.html",
true,
true);
356 include_once(
"./Services/Style/classes/class.ilObjStyleSheet.php");
358 $tpl->setBodyClass(
"");
359 $tpl->setCurrentBlock(
"ContentStyle");
360 $tpl->setVariable(
"LOCATION_CONTENT_STYLESHEET",
362 $tpl->parseCurrentBlock();
365 include_once(
"./Services/jQuery/classes/class.iljQueryUtil.php");
368 $tpl->addJavaScript(
"./Modules/Scorm2004/scripts/questions/pure.js");
369 $tpl->addJavaScript(
"./Modules/Scorm2004/scripts/pager.js");
371 $tpl->addOnLoadCode(
"pager.Init();");
373 $tree =
new ilTree($this->slm_object->getId());
374 $tree->
setTableNames(
'sahs_sc13_tree',
'sahs_sc13_tree_node');
375 $tree->setTreeTablePK(
"slm_id");
376 include_once
"./Modules/Scorm2004/classes/class.ilSCORM2004PageGUI.php";
377 include_once
"./Services/MetaData/classes/class.ilMD.php";
379 $meta =
new ilMD($this->node_object->getSLMId(), $this->node_object->getId(), $this->node_object->getType());
380 $desc_ids = $meta->
getGeneral()->getDescriptionIds();
381 $sco_description = $meta->getGeneral()->getDescription($desc_ids[0])->getDescription();
384 $sco_tpl =
new ilTemplate(
"tpl.sco.html",
true,
true,
"Modules/Scorm2004");
392 $this->node_object->getType());
396 $terms = $this->node_object->getGlossaryTermIds();
399 foreach($tree->getSubTree($tree->getNodeData($this->node_object->getId()),
true,
'page') as $page)
402 0, $this->slm_object->getId());
405 $page_obj->setStyleId($this->slm_object->getStyleSheetId());
406 if (count($terms) > 1)
408 $page_obj->setGlossaryOverviewInfo(
411 $sco_tpl->setCurrentBlock(
"page_preview");
412 $html = $ilCtrl->getHTML($page_obj);
414 $sco_tpl->setVariable(
"PAGE_PRV", $html);
415 $sco_tpl->parseCurrentBlock();
418 $output = $sco_tpl->get();
424 require_once
'./Modules/Scorm2004/classes/class.ilQuestionExporter.php';
425 $output = preg_replace_callback(
"/{{{{{(Question;)(il__qst_[0-9]+)}}}}}/",array(get_class($this),
'insertQuestion'),$output);
428 $output =
"<script>var ScormApi=null;".ilQuestionExporter::questionsJS().
"</script>".$output;
433 $tpl->addJavaScript(
"./Modules/Scorm2004/scripts/questions/question_handling.js");
434 $tpl->addCss(
"./Modules/Scorm2004/templates/default/question_handling.css");
436 include_once(
"./Services/UIComponent/Overlay/classes/class.ilOverlayGUI.php");
440 $output .=
'<script type="text/javascript" src="./Modules/Scorm2004/scripts/questions/question_handling.js"></script>';
441 $tpl->setVariable(
"CONTENT", $output);
448 return $q_exporter->exportQuestion($matches[2]);
456 switch (
$_POST[
'select_export'])
458 case "exportScorm12":
459 case "exportScorm2004_3rd":
460 case "exportScorm2004_4th":
463 $this->ctrl->redirect($this,
$_POST[
'select_export']);
466 $this->ctrl->redirect($this,
'showExportList');
479 $template =
new ilTemplate(
"tpl.scorm2004_export_buttons.html",
true,
true,
'Modules/Scorm2004');
482 "exportScorm2004_3rd" => $lng->txt(
"scorm_create_export_file_scrom2004"),
483 "exportScorm2004_4th" => $lng->txt(
"scorm_create_export_file_scrom2004_4th"),
484 "exportScorm12" => $lng->txt(
"scorm_create_export_file_scrom12"),
485 "exportPDF" => $lng->txt(
"scorm_create_export_file_pdf"),
486 "exportHTML" => $lng->txt(
"scorm_create_export_file_html")
488 foreach ($buttons as $value => $text)
490 $template->setCurrentBlock(
'option');
491 $template->setVariable(
'OPTION_VALUE', $value);
493 $template->parseCurrentBlock();
495 $template->setVariable(
'EXPORT_TITLE', $lng->txt(
'export'));
496 $template->setVariable(
'EXPORT_LABEL', $lng->txt(
'type'));
497 $template->setVariable(
'FORMACTION', $ilCtrl->getFormAction($this,
'selectExport'));
499 $export_files = $this->node_object->getExportFiles();
501 include_once
"./Modules/Scorm2004/classes/class.ilSCORM2004ExportTableGUI.php";
504 foreach ($export_files as $exp_file)
506 $filetype = $exp_file[
'type'];
510 $file_arr = explode(
"__", $exp_file[
"file"]);
513 $table_gui->setData(
$data);
514 $tpl->setVariable(
'ADM_CONTENT', $template->get() .
"\n" . $table_gui->getHTML());
522 $export->buildExportFile();
523 $this->ctrl->redirect($this,
"showExportList");
530 $export->buildExportFile();
531 $this->ctrl->redirect($this,
"showExportList");
537 $export->buildExportFile();
538 $this->ctrl->redirect($this,
"showExportList");
544 $export->buildExportFile();
545 $this->ctrl->redirect($this,
"showExportList");
551 $export->buildExportFile();
552 $this->ctrl->redirect($this,
"showExportList");
558 $export->buildExportFile();
559 $this->ctrl->redirect($this,
"showExportList");
564 if(!isset(
$_POST[
"file"]))
566 $this->ilias->raiseError($this->lng->txt(
"no_checkbox"),$this->ilias->error_obj->MESSAGE);
569 if (count(
$_POST[
"file"]) > 1)
571 $this->ilias->raiseError($this->lng->txt(
"cont_select_max_one_item"),$this->ilias->error_obj->MESSAGE);
573 $export =
new ilSCORM2004Export($this->node_object);
574 $export_dir = $export->getExportDirectoryForType(
$_POST[
'type'][
$_POST[
'file'][0]]);
585 if(!isset(
$_POST[
"file"]))
588 $this->ctrl->redirect($this,
"showExportList");
592 $export_files = $this->node_object->getExportFiles();
594 include_once
"./Modules/Scorm2004/classes/class.ilSCORM2004ExportTableGUI.php";
597 foreach ($export_files as $exp_file)
599 foreach (
$_POST[
'file'] as $delete_file)
601 if (strcmp($delete_file, $exp_file[
'file']) == 0)
606 $file_arr = explode(
"__", $exp_file[
"file"]);
611 $table_gui->setData(
$data);
612 $tpl->setVariable(
'ADM_CONTENT', $table_gui->getHTML());
621 $this->ctrl->redirect($this,
"showExportList");
631 include_once
"./Services/Utilities/classes/class.ilUtil.php";
632 $export =
new ilSCORM2004Export($this->node_object);
635 $export_dir = $export->getExportDirectoryForType(
$_POST[
'type'][$idx]);
636 $exp_file = $export_dir.
"/".
$file;
637 if (@is_file($exp_file))
643 $this->ctrl->redirect($this,
"showExportList");
648 $export_files = array();
650 require_once
"./Modules/Scorm2004/classes/class.ilSCORM2004Page.php";
651 include_once
"./Services/MediaObjects/classes/class.ilObjMediaObject.php";
652 include_once
"./Modules/File/classes/class.ilObjFile.php";
653 $tree =
new ilTree($this->slm_object->getId());
654 $tree->
setTableNames(
'sahs_sc13_tree',
'sahs_sc13_tree_node');
655 $tree->setTreeTablePK(
"slm_id");
656 foreach($tree->getSubTree($tree->getNodeData($this->node_object->getId()),
true,
'page') as $page)
659 $page_obj->buildDom();
660 $mob_ids = $page_obj->collectMediaObjects(
false);
661 foreach($mob_ids as $mob_id)
668 $export_files[$i][
"date"] = $media_obj->getCreateDate();
669 $export_files[$i][
"size"] = @filesize(
$path);
670 $export_files[$i][
"file"] = $media_obj->getTitle();
671 $export_files[$i][
"type"] = $media_obj->getDescription();
672 $export_files[$i][
"path"] =
$path;
673 $this->ctrl->setParameter($this,
"resource",
675 $export_files[$i][
"link"] = $this->ctrl->getLinkTarget($this,
"downloadResource");
679 $file_ids = $page_obj->collectFileItems();
680 foreach($file_ids as $file_id)
682 $file_obj =
new ilObjFile($file_id,
false);
683 $export_files[$i][
"date"] = $file_obj->getCreateDate();
684 $export_files[$i][
"size"] = $file_obj->getFileSize();
685 $export_files[$i][
"file"] = $file_obj->getFileName();
686 $export_files[$i][
"type"] = $file_obj->getFileType();
687 $export_files[$i][
"file_id"] = $file_id;
688 $this->ctrl->setParameter($this,
"file_id",$file_id);
689 $export_files[$i][
"link"] = $this->ctrl->getLinkTarget($this,
"downloadFile",
"");
695 return $export_files;
709 require_once(
"./Services/Table/classes/class.ilTableGUI.php");
713 $tpl->addBlockfile(
"ADM_CONTENT",
"adm_content",
"tpl.table.html");
716 $tpl->addBlockfile(
"TBL_CONTENT",
"tbl_content",
"tpl.download_file_row.html",
"Modules/LearningModule");
720 $tpl->setVariable(
"FORMACTION", $this->ctrl->getFormAction($this));
722 $tbl->setTitle($lng->txt(
"cont_files"));
724 $tbl->setHeaderNames(array($lng->txt(
"cont_format"),
725 $lng->txt(
"cont_file"),
726 $lng->txt(
"size"), $lng->txt(
"date"),
729 $cols = array(
"format",
"file",
"size",
"date",
"download");
730 $header_params = array(
"ref_id" =>
$_GET[
"ref_id"],
"obj_id" =>
$_GET[
"obj_id"],
731 "cmd" =>
"sco_resources",
"cmdClass" => strtolower(get_class($this)),
732 "cmdNode" =>
$_GET[
"cmdNode"],
"baseClass" =>
$_GET[
"baseClass"]);
733 $tbl->setHeaderVars($cols, $header_params);
734 $tbl->setColumnWidth(array(
"10%",
"30%",
"20%",
"20%",
"20%"));
735 $tbl->disable(
"sort");
737 $tbl->setOrderColumn(
$_GET[
"sort_by"]);
738 $tbl->setOrderDirection(
$_GET[
"sort_order"]);
739 $tbl->setLimit(
$_GET[
"limit"]);
740 $tbl->setOffset(
$_GET[
"offset"]);
741 $tbl->setMaxCount($this->maxcount);
744 $tbl->setMaxCount(count($export_files));
747 $tbl->setFooter(
"tblfooter",$lng->txt(
"previous"),$lng->txt(
"next"));
750 $tbl->setMaxCount(count($export_files));
751 $export_files = array_slice($export_files,
$_GET[
"offset"],
$_GET[
"limit"]);
754 if(count($export_files) > 0)
757 foreach($export_files as $exp_file)
766 $tpl->setCurrentBlock(
"tbl_content");
767 $tpl->setVariable(
"TXT_FILENAME", $exp_file[
"file"]);
770 $tpl->setVariable(
"CSS_ROW", $css_row);
772 $tpl->setVariable(
"TXT_SIZE", $exp_file[
"size"]);
773 $tpl->setVariable(
"TXT_FORMAT", $exp_file[
"type"]);
775 $tpl->setVariable(
"TXT_DATE", $exp_file[
"date"]);
777 if($exp_file[
"size"] > 0)
779 $tpl->setVariable(
"TXT_DOWNLOAD", $lng->txt(
"download"));
780 $ilCtrl->setParameter($this,
"resource", rawurlencode($exp_file[
"path"]));
781 $ilCtrl->setParameter($this,
"file_id", rawurlencode($exp_file[
"file_id"]));
782 $tpl->setVariable(
"LINK_DOWNLOAD",
783 $ilCtrl->getLinkTarget($this,
"downloadResource"));
787 $tpl->setVariable(
"TXT_DOWNLOAD", $lng->txt(
"show"));
788 $tpl->setVariable(
"LINK_TARGET",
" target=\"_blank\"");
789 $tpl->setVariable(
"LINK_DOWNLOAD", $exp_file[
"path"]);
792 $tpl->parseCurrentBlock();
811 if (
$_GET[
"file_id"] > 0)
817 foreach ($export_files as $f)
819 if (is_object(
$file))
821 if ($f[
"file"] ==
$file->getFileName())
828 if ($f[
"path"] ==
$_GET[
"resource"])
830 if (is_file($f[
"path"]))
843 require_once(
"./Modules/File/classes/class.ilObjFile.php");
845 $fileObj->sendFile();
856 $tpl->addBlockFile(
"ADM_CONTENT",
"adm_content",
"tpl.scormeditor_sco_import.html",
"Modules/Scorm2004");
859 $tpl->setVariable(
"ALT_IMG", $lng->txt(
"obj_sahs"));
861 $tpl->setVariable(
"FORMACTION", $this->ctrl->getFormAction($this));
863 $tpl->setVariable(
"BTN_NAME",
"importSave");
868 $tpl->setVariable(
"TXT_UPLOAD", $lng->txt(
"upload"));
869 $tpl->setVariable(
"TXT_CANCEL", $lng->txt(
"cancel"));
870 $tpl->setVariable(
"TXT_IMPORT_SCO", $lng->txt(
"import_sco_object"));
871 $tpl->setVariable(
"TXT_SELECT_FILE", $lng->txt(
"select_file"));
872 $tpl->setVariable(
"TXT_VALIDATE_FILE", $lng->txt(
"cont_validate_file"));
875 $umf=get_cfg_var(
"upload_max_filesize");
877 $pms=get_cfg_var(
"post_max_size");
880 $multiplier_a=array(
"K"=>1024,
"M"=>1024*1024,
"G"=>1024*1024*1024);
882 $umf_parts=preg_split(
"/(\d+)([K|G|M])/", $umf, -1, PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);
883 $pms_parts=preg_split(
"/(\d+)([K|G|M])/", $pms, -1, PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);
885 if (count($umf_parts) == 2) { $umf = $umf_parts[0]*$multiplier_a[$umf_parts[1]]; }
886 if (count($pms_parts) == 2) { $pms = $pms_parts[0]*$multiplier_a[$pms_parts[1]]; }
889 $max_filesize=min($umf, $pms);
891 if (!$max_filesize) $max_filesize=max($umf, $pms);
894 $max_filesize=sprintf(
"%.1f MB",$max_filesize/1024/1024);
897 $tpl->setVariable(
"TXT_FILE_INFO", $lng->txt(
"file_notice").
" $max_filesize");
902 global $_FILES, $rbacsystem;
906 $source = $_FILES[
"scormfile"][
"tmp_name"];
907 if (($source ==
'none') || (!$source))
909 $ilias->raiseError(
"No file selected!",$ilias->error_obj->MESSAGE);
912 if (!$rbacsystem->checkAccess(
"create",
$_GET[
"ref_id"],
"sahs"))
914 $ilias->raiseError($lng->txt(
"no_create_permission"), $ilias->error_obj->WARNING);
917 switch ($__FILES[
"scormfile"][
"error"])
919 case UPLOAD_ERR_INI_SIZE:
920 $ilias->raiseError($lng->txt(
"err_max_file_size_exceeds"),$ilias->error_obj->MESSAGE);
923 case UPLOAD_ERR_FORM_SIZE:
924 $ilias->raiseError($lng->txt(
"err_max_file_size_exceeds"),$ilias->error_obj->MESSAGE);
927 case UPLOAD_ERR_PARTIAL:
928 $ilias->raiseError($lng->txt(
"err_partial_file_upload"),$ilias->error_obj->MESSAGE);
931 case UPLOAD_ERR_NO_FILE:
932 $ilias->raiseError($lng->txt(
"err_no_file_uploaded"),$ilias->error_obj->MESSAGE);
936 $file = pathinfo($_FILES[
"scormfile"][
"name"]);
937 $name = substr(
$file[
"basename"], 0, strlen(
$file[
"basename"]) - strlen(
$file[
"extension"]) - 1);
938 $file_path = $this->slm_object->getDataDirectory().
"/".$this->node_object->getId().
"/".$_FILES[
"scormfile"][
"name"];
944 include_once (
"./Modules/Scorm2004/classes/ilSCORM13Package.php");
946 $newPack->il_importSco($this->slm_object->getId(),$this->node_object->getId(),$this->slm_object->getDataDirectory().
"/".$this->node_object->getId());
948 $this->ctrl->redirect($this,
"showOrganization");
956 $this->ctrl->redirect($this,
"showOrganization");
980 $tpl =
new ilTemplate(
"tpl.sco_glossary_overview.html",
true,
true,
"Modules/Scorm2004");
982 $terms = $a_sco->getGlossaryTermIds();
984 foreach ($terms as $k =>
$t)
986 $tpl->setCurrentBlock(
"link");
987 $tpl->setVariable(
"TXT_LINK",
$t);
988 $tpl->setVariable(
"ID_LINK",
"glo_ov_t".$k);
989 $tpl->parseCurrentBlock();
993 $tpl->setVariable(
"TXT_SCO_GLOSSARY", $lng->txtlng(
"content",
"cont_sco_glossary", $lk));
994 $tpl->setVariable(
"TXT_CLOSE", $lng->txtlng(
"common",
"close", $lk));
996 if (count($terms) > 1)