ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
ilSCORM2004ScoGUI Class Reference

Class ilSCORM2004ScoGUI. More...

+ Inheritance diagram for ilSCORM2004ScoGUI:
+ Collaboration diagram for ilSCORM2004ScoGUI:

Public Member Functions

 ilSCORM2004ScoGUI ($a_slm_obj, $a_node_id=0)
 
 getType ()
 Get Node Type. More...
 
executeCommand ()
 execute command More...
 
 showProperties ()
 Show learning objectives. More...
 
 updateProperties ()
 update Properties More...
 
 sahs_questions ()
 
 getEditTree ()
 
 setTabs ()
 output tabs More...
 
 proceedDragDrop ()
 Perform drag and drop action. More...
 
 sco_preview ()
 SCO preview. More...
 
 selectExport ()
 Select the export type of the SCORM 2004 module. More...
 
 showExportList ()
 
 exportScorm2004_4th ()
 
 exportScorm2004_3rd ()
 
 exportScorm12 ()
 
 exportHTML ()
 
 exportISO ()
 
 exportPDF ()
 
 downloadExportFile ()
 
 confirmDeleteExportFile ()
 confirmation screen for export file deletion More...
 
 cancelDeleteExportFile ()
 cancel deletion of export files More...
 
 deleteExportFile ()
 delete export files More...
 
 getExportResources ()
 
 sco_resources ()
 
 downloadResource ()
 
 downloadFile ()
 
 import ()
 
 importSave ()
 
 cancel ()
 Cancel action. More...
 
- Public Member Functions inherited from ilSCORM2004NodeGUI
 ilSCORM2004NodeGUI ($a_slm_obj, $a_node_id=0)
 constructor More...
 
 setParentGUI ($a_parentgui)
 Set Parent GUI class (ilObjSCORM2004LearningModuleGUI). More...
 
 getParentGUI ()
 Get Parent GUI class (ilObjSCORM2004LearningModuleGUI). More...
 
 getNodeObject ($a_node_id)
 Get node object (chapter/sco/page) More...
 
 putInTree ($a_parent_id, $a_target)
 put this object into content object tree More...
 
 showOrganization ()
 Confirm deletion screen (delete page or structure objects) More...
 
 insertChapter ()
 Insert Chapter. More...
 
 insertSco ()
 Insert Sco. More...
 
 insertAsset ()
 Insert Asset. More...
 
 insertPage ()
 Insert Page. More...
 
 insertTemplateGUI ()
 Insert Page with Layout. More...
 
 insertSpecialPage ()
 Insert special page. More...
 
 collapseAll ()
 Collapse all. More...
 
 ExpandAll ()
 Expand all. More...
 
 saveAllTitles ()
 Save Titles. More...
 
 deleteNodes ()
 Delete nodes in the hierarchy. More...
 
 cancelDelete ()
 cancel delete More...
 
 confirmedDelete ()
 confirmed delete More...
 
 setLocator ()
 Set Locator Items. More...
 
 setContentStyle ()
 Set content style sheet. More...
 
 copyItems ($a_return="showOrganization")
 Copy items to clipboard. More...
 
 cutItems ($a_return="showOrganization")
 Copy items to clipboard, then cut them from the current tree. More...
 
 insertPageClip ()
 Insert pages from clipboard. More...
 
 insertScoClip ()
 Insert scos from clipboard. More...
 
 insertAssetClip ()
 Insert assets from clipboard. More...
 
 insertLMChapterClip ()
 Insert scos from clipboard. More...
 

Static Public Member Functions

static getGlossaryOverviewId ()
 Get sco glossary overlay id. More...
 
static getGloOverviewOv ($a_sco)
 des More...
 

Data Fields

 $ctrl = null
 Constructor public. More...
 
- Data Fields inherited from ilSCORM2004NodeGUI
 $node_object
 
 $slm_object
 

Private Member Functions

 insertQuestion ($matches)
 

Detailed Description

Class ilSCORM2004ScoGUI.

User Interface for Scorm 2004 SCO Nodes

Author
Alex Killing alex..nosp@m.kill.nosp@m.ing@g.nosp@m.mx.d.nosp@m.e
Version
$Id$

ilSCORM2004ScoGUI: ilObjectMetaDataGUI, ilNoteGUI, ilPCQuestionGUI, ilSCORM2004PageGUI

Definition at line 21 of file class.ilSCORM2004ScoGUI.php.

Member Function Documentation

◆ cancel()

ilSCORM2004ScoGUI::cancel ( )

Cancel action.

Definition at line 957 of file class.ilSCORM2004ScoGUI.php.

958  {
959  $this->ctrl->redirect($this, "showOrganization");
960  }

◆ cancelDeleteExportFile()

ilSCORM2004ScoGUI::cancelDeleteExportFile ( )

cancel deletion of export files

Definition at line 620 of file class.ilSCORM2004ScoGUI.php.

References ilSession\clear().

621  {
622  ilSession::clear("ilExportFiles");
623  $this->ctrl->redirect($this, "showExportList");
624  }
static clear($a_var)
Unset a value.
+ Here is the call graph for this function:

◆ confirmDeleteExportFile()

ilSCORM2004ScoGUI::confirmDeleteExportFile ( )

confirmation screen for export file deletion

Definition at line 583 of file class.ilSCORM2004ScoGUI.php.

References $_POST, $data, $lng, $tpl, ilDatePresentation\formatDate(), IL_CAL_UNIX, ilUtil\sendInfo(), and ilUtil\sendQuestion().

584  {
585  global $lng, $tpl;
586 
587  if(!isset($_POST["file"]))
588  {
589  ilUtil::sendInfo($lng->txt("no_checkbox"),true);
590  $this->ctrl->redirect($this, "showExportList");
591  }
592 
593  ilUtil::sendQuestion($lng->txt("info_delete_sure"));
594  $export_files = $this->node_object->getExportFiles();
595 
596  include_once "./Modules/Scorm2004/classes/class.ilSCORM2004ExportTableGUI.php";
597  $table_gui = new ilSCORM2004ExportTableGUI($this, 'showExportList', true);
598  $data = array();
599  foreach ($export_files as $exp_file)
600  {
601  foreach ($_POST['file'] as $delete_file)
602  {
603  if (strcmp($delete_file, $exp_file['file']) == 0)
604  {
605  // $public_str = ($exp_file["file"] == $this->object->getPublicExportFile($exp_file["type"]))
606  // ? " <b>(".$this->lng->txt("public").")<b>"
607  // : "";
608  $file_arr = explode("__", $exp_file["file"]);
609  array_push($data, array('file' => $exp_file['file'], 'date' => ilDatePresentation::formatDate(new ilDateTime($file_arr[0], IL_CAL_UNIX)), 'size' => $exp_file['size'], 'type' => $exp_file['type'].$public_str));
610  }
611  }
612  }
613  $table_gui->setData($data);
614  $tpl->setVariable('ADM_CONTENT', $table_gui->getHTML());
615  }
$_POST['username']
Definition: cron.php:12
const IL_CAL_UNIX
global $tpl
Definition: ilias.php:8
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
$data
static formatDate(ilDateTime $date)
Format a date public.
Date and time handling
static sendQuestion($a_info="", $a_keep=false)
Send Question to Screen.
global $lng
Definition: privfeed.php:40
+ Here is the call graph for this function:

◆ deleteExportFile()

ilSCORM2004ScoGUI::deleteExportFile ( )

delete export files

Definition at line 630 of file class.ilSCORM2004ScoGUI.php.

References $_POST, $file, $lng, and ilUtil\sendSuccess().

631  {
632  global $lng;
633  include_once "./Services/Utilities/classes/class.ilUtil.php";
634  $export = new ilSCORM2004Export($this->node_object);
635  foreach($_POST['file'] as $idx => $file)
636  {
637  $export_dir = $export->getExportDirectoryForType($_POST['type'][$idx]);
638  $exp_file = $export_dir."/".$file;
639  if (@is_file($exp_file))
640  {
641  unlink($exp_file);
642  }
643  }
644  ilUtil::sendSuccess($lng->txt('msg_deleted_export_files'), true);
645  $this->ctrl->redirect($this, "showExportList");
646  }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
print $file
$_POST['username']
Definition: cron.php:12
global $lng
Definition: privfeed.php:40
+ Here is the call graph for this function:

◆ downloadExportFile()

ilSCORM2004ScoGUI::downloadExportFile ( )

Definition at line 572 of file class.ilSCORM2004ScoGUI.php.

References $_GET, $file, and ilUtil\deliverFile().

573  {
574  $file = str_replace("..", "", $_GET['file']);
575  $export = new ilSCORM2004Export($this->node_object);
576  $export_dir = $export->getExportDirectoryForType($_GET['type']);
577  ilUtil::deliverFile($export_dir."/".$file, $file);
578  }
print $file
$_GET["client_id"]
static deliverFile($a_file, $a_filename, $a_mime='', $isInline=false, $removeAfterDelivery=false, $a_exit_after=true)
deliver file for download via browser.
+ Here is the call graph for this function:

◆ downloadFile()

ilSCORM2004ScoGUI::downloadFile ( )

Definition at line 843 of file class.ilSCORM2004ScoGUI.php.

References $_GET, $file, and exit.

844  {
845  $file = explode("_", $_GET["file_id"]);
846  require_once("./Modules/File/classes/class.ilObjFile.php");
847  $fileObj =& new ilObjFile($file[count($file) - 1], false);
848  $fileObj->sendFile();
849  exit;
850  }
print $file
exit
Definition: login.php:54
$_GET["client_id"]
Class ilObjFile.

◆ downloadResource()

ilSCORM2004ScoGUI::downloadResource ( )

Definition at line 810 of file class.ilSCORM2004ScoGUI.php.

References $_GET, $file, ilUtil\deliverFile(), exit, and getExportResources().

811  {
812  $export_files = $this->getExportResources();
813 
814  if ($_GET["file_id"] > 0)
815  {
816  $file = new ilObjFile($_GET["file_id"], false);
817  }
818 
819  // check that file really belongs to SCORM module (security)
820  foreach ($export_files as $f)
821  {
822  if (is_object($file))
823  {
824  if ($f["file"] == $file->getFileName())
825  {
826  $file->sendFile();
827  }
828  }
829  else
830  {
831  if ($f["path"] == $_GET["resource"])
832  {
833  if (is_file($f["path"]))
834  {
835  ilUtil::deliverFile($f["path"], $f["file"]);
836  }
837  }
838  }
839  }
840  exit;
841  }
print $file
exit
Definition: login.php:54
$_GET["client_id"]
Class ilObjFile.
static deliverFile($a_file, $a_filename, $a_mime='', $isInline=false, $removeAfterDelivery=false, $a_exit_after=true)
deliver file for download via browser.
+ Here is the call graph for this function:

◆ executeCommand()

& ilSCORM2004ScoGUI::executeCommand ( )

execute command

Definition at line 52 of file class.ilSCORM2004ScoGUI.php.

References $_GET, $cmd, $ilCtrl, $ret, $tpl, ilObjectMetaDataGUI\addMDObserver(), IL_PAGE_PREVIEW, ilSCORM2004NodeGUI\setLocator(), setTabs(), and ilSCORM2004NodeGUI\showOrganization().

53  {
54  global $tpl, $ilCtrl, $ilTabs;
55 
56  $tpl->getStandardTemplate();
57 
58  $next_class = $ilCtrl->getNextClass($this);
59  $cmd = $ilCtrl->getCmd();
60 
61  switch($next_class)
62  {
63  // notes
64  case "ilnotegui":
65  switch($_GET["notes_mode"])
66  {
67  default:
68  $ilTabs->setTabActive("sahs_organization");
69  return $this->showOrganization();
70  }
71  break;
72 
73  case 'ilobjectmetadatagui':
74  $this->setTabs();
75  $this->setLocator();
76  include_once 'Services/Object/classes/class.ilObjectMetaDataGUI.php';
77  $md_gui = new ilObjectMetaDataGUI($this->slm_object,
78  $this->node_object->getType(), $this->node_object->getId());
79  $md_gui->addMDObserver($this->node_object,'MDUpdateListener','General');
80  $ilCtrl->forwardCommand($md_gui);
81  break;
82 
83  case 'ilscorm2004pagegui':
84  include_once("./Modules/Scorm2004/classes/class.ilSCORM2004PageGUI.php");
85  $page_obj = new ilSCORM2004PageGUI("sahs",$_GET["pg_id"]);
86  //$page_obj->setPresentationTitle($page["title"]);
87  $page_obj->setOutputMode(IL_PAGE_PREVIEW);
88  $ilCtrl->forwardCommand($page_obj);
89  break;
90 
91  default:
92  $cmd = $ilCtrl->getCmd("showOrganization");
93  $ret =& $this->$cmd();
94  break;
95  }
96  }
Class ilObjectMetaDataGUI.
const IL_PAGE_PREVIEW
$_GET["client_id"]
$cmd
Definition: sahs_server.php:35
addMDObserver($a_class, $a_method, $a_section)
setLocator()
Set Locator Items.
global $tpl
Definition: ilias.php:8
global $ilCtrl
Definition: ilias.php:18
showOrganization()
Confirm deletion screen (delete page or structure objects)
Class ilSCORM2004Page GUI class.
+ Here is the call graph for this function:

◆ exportHTML()

ilSCORM2004ScoGUI::exportHTML ( )

Definition at line 551 of file class.ilSCORM2004ScoGUI.php.

552  {
553  $export = new ilScorm2004Export($this->node_object,'HTML');
554  $export->buildExportFile();
555  $this->ctrl->redirect($this, "showExportList");
556  }
Export class for SCORM 2004 object.

◆ exportISO()

ilSCORM2004ScoGUI::exportISO ( )

Definition at line 558 of file class.ilSCORM2004ScoGUI.php.

559  {
560  $export = new ilScorm2004Export($this->node_object,'ISO');
561  $export->buildExportFile();
562  $this->ctrl->redirect($this, "showExportList");
563  }
Export class for SCORM 2004 object.

◆ exportPDF()

ilSCORM2004ScoGUI::exportPDF ( )

Definition at line 565 of file class.ilSCORM2004ScoGUI.php.

566  {
567  $export = new ilScorm2004Export($this->node_object,'PDF');
568  $export->buildExportFile();
569  $this->ctrl->redirect($this, "showExportList");
570  }
Export class for SCORM 2004 object.

◆ exportScorm12()

ilSCORM2004ScoGUI::exportScorm12 ( )

Definition at line 544 of file class.ilSCORM2004ScoGUI.php.

545  {
546  $export = new ilScorm2004Export($this->node_object,'SCORM 1.2');
547  $export->buildExportFile();
548  $this->ctrl->redirect($this, "showExportList");
549  }
Export class for SCORM 2004 object.

◆ exportScorm2004_3rd()

ilSCORM2004ScoGUI::exportScorm2004_3rd ( )

Definition at line 537 of file class.ilSCORM2004ScoGUI.php.

538  {
539  $export = new ilScorm2004Export($this->node_object,'SCORM 2004 3rd');
540  $export->buildExportFile();
541  $this->ctrl->redirect($this, "showExportList");
542  }
Export class for SCORM 2004 object.

◆ exportScorm2004_4th()

ilSCORM2004ScoGUI::exportScorm2004_4th ( )

Definition at line 529 of file class.ilSCORM2004ScoGUI.php.

530  {
531  $export = new ilScorm2004Export($this->node_object,'SCORM 2004 4th');
532  $export->buildExportFile();
533  $this->ctrl->redirect($this, "showExportList");
534  }
Export class for SCORM 2004 object.

◆ getEditTree()

ilSCORM2004ScoGUI::getEditTree ( )

Definition at line 272 of file class.ilSCORM2004ScoGUI.php.

References ilTree\setTreeTablePK().

273  {
274 die("deprecated");
275  $slm_tree = new ilTree($this->node_object->getId(),$this->slm_object->getId());
276  $slm_tree->setTreeTablePK("slm_id");
277  $slm_tree->setTableNames('sahs_sc13_tree', 'sahs_sc13_tree_node');
278  return $slm_tree;
279  }
Tree class data representation in hierachical trees using the Nested Set Model with Gaps by Joe Celco...
setTreeTablePK($a_column_name)
set column containing primary key in tree table public
+ Here is the call graph for this function:

◆ getExportResources()

ilSCORM2004ScoGUI::getExportResources ( )

Definition at line 648 of file class.ilSCORM2004ScoGUI.php.

References $path, ilObject\_exists(), ilObjMediaObject\_lookupStandardItemPath(), ilPCFileList\collectFileItems(), and ilTree\setTableNames().

Referenced by downloadResource(), and sco_resources().

649  {
650  $export_files = array();
651 
652  require_once "./Modules/Scorm2004/classes/class.ilSCORM2004Page.php";
653  include_once "./Services/MediaObjects/classes/class.ilObjMediaObject.php";
654  include_once "./Modules/File/classes/class.ilObjFile.php";
655  $tree = new ilTree($this->slm_object->getId());
656  $tree->setTableNames('sahs_sc13_tree', 'sahs_sc13_tree_node');
657  $tree->setTreeTablePK("slm_id");
658  foreach($tree->getSubTree($tree->getNodeData($this->node_object->getId()),true,'page') as $page)
659  {
660  $page_obj = new ilSCORM2004Page($page["obj_id"]);
661  $page_obj->buildDom();
662  $mob_ids = $page_obj->collectMediaObjects(false);
663  foreach($mob_ids as $mob_id)
664  {
665  if ($mob_id > 0 && ilObject::_exists($mob_id))
666  {
667  $path = ilObjMediaObject::_lookupStandardItemPath($mob_id,false,false);
668 
669  $media_obj = new ilObjMediaObject($mob_id);
670  $export_files[$i]["date"] = $media_obj->getCreateDate();
671  $export_files[$i]["size"] = @filesize($path); // could be remote, e.g. youtube video
672  $export_files[$i]["file"] = $media_obj->getTitle();
673  $export_files[$i]["type"] = $media_obj->getDescription();
674  $export_files[$i]["path"] = $path;
675  $this->ctrl->setParameter($this, "resource",
676  rawurlencode(ilObjMediaObject::_lookupStandardItemPath($mob_id,false,false)));
677  $export_files[$i]["link"] = $this->ctrl->getLinkTarget($this,"downloadResource");
678  $i++;
679  }
680  }
681  include_once("./Services/COPage/classes/class.ilPCFileList.php");
682  $file_ids =ilPCFileList::collectFileItems($page_obj, $page_obj->getDomDoc());
683  foreach($file_ids as $file_id)
684  {
685  $file_obj = new ilObjFile($file_id, false);
686  $export_files[$i]["date"] = $file_obj->getCreateDate();
687  $export_files[$i]["size"] = $file_obj->getFileSize();
688  $export_files[$i]["file"] = $file_obj->getFileName();
689  $export_files[$i]["type"] = $file_obj->getFileType();
690  $export_files[$i]["file_id"] = $file_id;
691  $this->ctrl->setParameter($this, "file_id",$file_id);
692  $export_files[$i]["link"] = $this->ctrl->getLinkTarget($this,"downloadFile","");
693  $i++;
694  }
695  unset($page_obj);
696  }
697 
698  return $export_files;
699  }
static _exists($a_id, $a_reference=false, $a_type=null)
checks if an object exists in object_data
Class ilSCORM2004Page.
static collectFileItems($a_page, $a_domdoc)
Get all file items that are used within the page.
Class ilObjFile.
Class ilObjMediaObject.
setTableNames($a_table_tree, $a_table_obj_data, $a_table_obj_reference="")
set table names The primary key of the table containing your object_data must be &#39;obj_id&#39; You may use...
Tree class data representation in hierachical trees using the Nested Set Model with Gaps by Joe Celco...
$path
Definition: index.php:22
static _lookupStandardItemPath($a_mob_id, $a_url_encode=false, $a_web=true)
Get path for standard item.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getGloOverviewOv()

static ilSCORM2004ScoGUI::getGloOverviewOv (   $a_sco)
static

des

Parameters

Definition at line 979 of file class.ilSCORM2004ScoGUI.php.

References $lng, $t, $tpl, ilObjSAHSLearningModule\getAffectiveLocalization(), and getGlossaryOverviewId().

Referenced by ilSCORM2004PageGUI\getGlossaryHTML(), and ilSCORM2004PageGUI\postOutputProcessing().

980  {
981  global $lng;
982 
983  $tpl = new ilTemplate("tpl.sco_glossary_overview.html", true, true, "Modules/Scorm2004");
984 
985  $terms = $a_sco->getGlossaryTermIds();
986  $lk = ilObjSAHSLearningModule::getAffectiveLocalization($a_sco->getSLMId());
987  foreach ($terms as $k => $t)
988  {
989  $tpl->setCurrentBlock("link");
990  $tpl->setVariable("TXT_LINK", $t);
991  $tpl->setVariable("ID_LINK", "glo_ov_t".$k);
992  $tpl->parseCurrentBlock();
993  }
994 
995  $tpl->setVariable("DIV_ID", ilSCORM2004ScoGUI::getGlossaryOverviewId());
996  $tpl->setVariable("TXT_SCO_GLOSSARY", $lng->txtlng("content", "cont_sco_glossary", $lk));
997  $tpl->setVariable("TXT_CLOSE", $lng->txtlng("common", "close", $lk));
998 
999  if (count($terms) > 1)
1000  {
1001  return $tpl->get();
1002  }
1003  else
1004  {
1005  return "";
1006  }
1007  }
static getGlossaryOverviewId()
Get sco glossary overlay id.
global $tpl
Definition: ilias.php:8
special template class to simplify handling of ITX/PEAR
getAffectiveLocalization($a_id)
Get affective localization.
global $lng
Definition: privfeed.php:40
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getGlossaryOverviewId()

static ilSCORM2004ScoGUI::getGlossaryOverviewId ( )
static

Get sco glossary overlay id.

Parameters

Definition at line 968 of file class.ilSCORM2004ScoGUI.php.

Referenced by ilSCORM2004PageNodeGUI\executeCommand(), ilSCORM2004Asset\exportHTMLPageObjects(), getGloOverviewOv(), and sco_preview().

969  {
970  return "sco_glo_ov";
971  }
+ Here is the caller graph for this function:

◆ getType()

ilSCORM2004ScoGUI::getType ( )

Get Node Type.

Definition at line 44 of file class.ilSCORM2004ScoGUI.php.

45  {
46  return "sco";
47  }

◆ ilSCORM2004ScoGUI()

ilSCORM2004ScoGUI::ilSCORM2004ScoGUI (   $a_slm_obj,
  $a_node_id = 0 
)

Definition at line 31 of file class.ilSCORM2004ScoGUI.php.

References $ilCtrl.

32  {
33  global $ilCtrl;
34 
35  $ilCtrl->saveParameter($this, "obj_id");
36  $this->ctrl = &$ilCtrl;
37 
38  parent::ilSCORM2004NodeGUI($a_slm_obj, $a_node_id);
39  }
global $ilCtrl
Definition: ilias.php:18

◆ import()

ilSCORM2004ScoGUI::import ( )

Definition at line 852 of file class.ilSCORM2004ScoGUI.php.

References $lng, $tpl, ilUtil\getImagePath(), ilSCORM2004NodeGUI\setLocator(), and setTabs().

853  {
854  global $tpl, $lng;
855 
856  $this->setTabs();
857  $this->setLocator();
858 
859  $tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.scormeditor_sco_import.html", "Modules/Scorm2004");
860 
861  $tpl->setVariable("TYPE_IMG",ilUtil::getImagePath('icon_lm.svg'));
862  $tpl->setVariable("ALT_IMG", $lng->txt("obj_sahs"));
863 
864  $tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
865 
866  $tpl->setVariable("BTN_NAME", "importSave");
867 
868  // this leads to _top target which removes the left organization frame
869  //$tpl->setVariable("TARGET", ' target="'.ilFrameTargetInfo::_getFrame("MainContent").'" ');
870 
871  $tpl->setVariable("TXT_UPLOAD", $lng->txt("upload"));
872  $tpl->setVariable("TXT_CANCEL", $lng->txt("cancel"));
873  $tpl->setVariable("TXT_IMPORT_SCO", $lng->txt("import_sco_object"));
874  $tpl->setVariable("TXT_SELECT_FILE", $lng->txt("select_file"));
875  $tpl->setVariable("TXT_VALIDATE_FILE", $lng->txt("cont_validate_file"));
876 
877  // get the value for the maximal uploadable filesize from the php.ini (if available)
878  $umf=get_cfg_var("upload_max_filesize");
879  // get the value for the maximal post data from the php.ini (if available)
880  $pms=get_cfg_var("post_max_size");
881 
882  //convert from short-string representation to "real" bytes
883  $multiplier_a=array("K"=>1024, "M"=>1024*1024, "G"=>1024*1024*1024);
884 
885  $umf_parts=preg_split("/(\d+)([K|G|M])/", $umf, -1, PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);
886  $pms_parts=preg_split("/(\d+)([K|G|M])/", $pms, -1, PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);
887 
888  if (count($umf_parts) == 2) { $umf = $umf_parts[0]*$multiplier_a[$umf_parts[1]]; }
889  if (count($pms_parts) == 2) { $pms = $pms_parts[0]*$multiplier_a[$pms_parts[1]]; }
890 
891  // use the smaller one as limit
892  $max_filesize=min($umf, $pms);
893 
894  if (!$max_filesize) $max_filesize=max($umf, $pms);
895 
896  //format for display in mega-bytes
897  $max_filesize=sprintf("%.1f MB",$max_filesize/1024/1024);
898 
899  // gives out the limit as a little notice
900  $tpl->setVariable("TXT_FILE_INFO", $lng->txt("file_notice")." $max_filesize");
901  }
setLocator()
Set Locator Items.
global $tpl
Definition: ilias.php:8
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
global $lng
Definition: privfeed.php:40
+ Here is the call graph for this function:

◆ importSave()

ilSCORM2004ScoGUI::importSave ( )

Definition at line 903 of file class.ilSCORM2004ScoGUI.php.

References $_GET, $file, $lng, ilUtil\createDirectory(), ilUtil\moveUploadedFile(), ilUtil\renameExecutables(), and ilUtil\unzip().

904  {
905  global $_FILES, $rbacsystem;
906  global $ilias, $lng;
907 
908  // check if file was uploaded
909  $source = $_FILES["scormfile"]["tmp_name"];
910  if (($source == 'none') || (!$source))
911  {
912  $ilias->raiseError("No file selected!",$ilias->error_obj->MESSAGE);
913  }
914  // check create permission
915  if (!$rbacsystem->checkAccess("write", $_GET["ref_id"]))
916  {
917  $ilias->raiseError($lng->txt("no_create_permission"), $ilias->error_obj->WARNING);
918  }
919  // get_cfg_var("upload_max_filesize"); // get the may filesize form t he php.ini
920  switch ($__FILES["scormfile"]["error"])
921  {
922  case UPLOAD_ERR_INI_SIZE:
923  $ilias->raiseError($lng->txt("err_max_file_size_exceeds"),$ilias->error_obj->MESSAGE);
924  break;
925 
926  case UPLOAD_ERR_FORM_SIZE:
927  $ilias->raiseError($lng->txt("err_max_file_size_exceeds"),$ilias->error_obj->MESSAGE);
928  break;
929 
930  case UPLOAD_ERR_PARTIAL:
931  $ilias->raiseError($lng->txt("err_partial_file_upload"),$ilias->error_obj->MESSAGE);
932  break;
933 
934  case UPLOAD_ERR_NO_FILE:
935  $ilias->raiseError($lng->txt("err_no_file_uploaded"),$ilias->error_obj->MESSAGE);
936  break;
937  }
938 
939  $file = pathinfo($_FILES["scormfile"]["name"]);
940  $name = substr($file["basename"], 0, strlen($file["basename"]) - strlen($file["extension"]) - 1);
941  $file_path = $this->slm_object->getDataDirectory()."/".$this->node_object->getId()."/".$_FILES["scormfile"]["name"];
942  ilUtil::createDirectory($this->slm_object->getDataDirectory()."/".$this->node_object->getId());
943  ilUtil::moveUploadedFile($_FILES["scormfile"]["tmp_name"], $_FILES["scormfile"]["name"], $file_path);
944  ilUtil::unzip($file_path);
945  ilUtil::renameExecutables($this->slm_object->getDataDirectory()."/".$this->node_object->getId());
946 
947  include_once ("./Modules/Scorm2004/classes/ilSCORM13Package.php");
948  $newPack = new ilSCORM13Package();
949  $newPack->il_importSco($this->slm_object->getId(),$this->node_object->getId(),$this->slm_object->getDataDirectory()."/".$this->node_object->getId());
950 
951  $this->ctrl->redirect($this, "showOrganization");
952  }
print $file
$_GET["client_id"]
static unzip($a_file, $overwrite=false, $a_flat=false)
unzip file
static moveUploadedFile($a_file, $a_name, $a_target, $a_raise_errors=true, $a_mode="move_uploaded")
move uploaded file
static createDirectory($a_dir, $a_mod=0755)
create directory
static renameExecutables($a_dir)
Rename uploaded executables for security reasons.
global $lng
Definition: privfeed.php:40
+ Here is the call graph for this function:

◆ insertQuestion()

ilSCORM2004ScoGUI::insertQuestion (   $matches)
private

Definition at line 455 of file class.ilSCORM2004ScoGUI.php.

456  {
457  $q_exporter = new ilQuestionExporter(false);
458  return $q_exporter->exportQuestion($matches[2]);
459  }
Scorm 2004 Question Exporter.

◆ proceedDragDrop()

ilSCORM2004ScoGUI::proceedDragDrop ( )

Perform drag and drop action.

Definition at line 346 of file class.ilSCORM2004ScoGUI.php.

References $_POST, and $ilCtrl.

347  {
348  global $ilCtrl;
349 
350  //echo "-".$_POST["il_hform_source_id"]."-".$_POST["il_hform_target_id"]."-".$_POST["il_hform_fc"]."-";
351  $this->slm_object->executeDragDrop($_POST["il_hform_source_id"], $_POST["il_hform_target_id"],
352  $_POST["il_hform_fc"], $_POST["il_hform_as_subitem"]);
353  $ilCtrl->redirect($this, "showOrganization");
354  }
$_POST['username']
Definition: cron.php:12
global $ilCtrl
Definition: ilias.php:18

◆ sahs_questions()

ilSCORM2004ScoGUI::sahs_questions ( )

Definition at line 215 of file class.ilSCORM2004ScoGUI.php.

References $ilCtrl, $lng, $tbl, $tpl, ilPCQuestion\_getQuestionIdsForPage(), assQuestion\_getTitle(), ilSCORM2004NodeGUI\setLocator(), ilTree\setTableNames(), setTabs(), and ilUtil\switchColor().

216  {
217  global $tpl,$lng, $ilCtrl;
218 
219  $this->setTabs();
220  $this->setLocator();
221 
222  include_once "./Services/Table/classes/class.ilTableGUI.php";
223  include_once "./Modules/Scorm2004/classes/class.ilSCORM2004Page.php";
224  include_once("./Modules/TestQuestionPool/classes/class.assQuestion.php");
225  include_once("./Services/COPage/classes/class.ilPCQuestionGUI.php");
226 
227  // load template for table
228  $tpl->addBlockfile("ADM_CONTENT", "adm_content", "tpl.table.html");
229  $tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.scormeditor_sco_question.html", "Modules/Scorm2004");
230 
231  $tbl = new ilTableGUI();
232  $tbl->setTitle("Questions for ".$this->node_object->getTitle());
233  $tbl->setHeaderNames(array("Question","Page"));
234  $cols = array("question","page");
235  $tbl->setHeaderVars($cols, $header_params);
236  $tbl->setColumnWidth(array("50%", "50%"));
237  $tbl->disable("sort");
238  $tbl->disable("footer");
239 
240  $tree = new ilTree($this->slm_object->getId());
241  $tree->setTableNames('sahs_sc13_tree', 'sahs_sc13_tree_node');
242  $tree->setTreeTablePK("slm_id");
243 
244  foreach($tree->getSubTree($tree->getNodeData($this->node_object->getId()),true,'page') as $page)
245  {
246  // get question ids
247  include_once("./Services/COPage/classes/class.ilPCQuestion.php");
248  $qids = ilPCQuestion::_getQuestionIdsForPage("sahs", $page["obj_id"]);
249  if (count($qids) > 0)
250  {
251  // output questions
252  foreach ($qids as $qid)
253  {
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"));
258 
259  $qtitle = assQuestion::_getTitle($qid);
260  $tpl->setVariable("TXT_QUESTION", $qtitle);
261  $ilCtrl->setParameterByClass("ilscorm2004pagenodegui", "obj_id", $page["obj_id"]);
262  //$tpl->setVariable("HREF_EDIT_QUESTION", $ilCtrl->getLinkTargetByClass("ilscorm2004pagenodegui", "edit"));
263 
264  $tpl->setVariable("CSS_ROW", ilUtil::switchColor($i++, "tblrow1", "tblrow2"));
265  $tpl->parseCurrentBlock();
266  }
267  }
268  }
269  $tbl->render();
270  }
static _getQuestionIdsForPage($a_parent_type, $a_page_id, $a_lang="-")
Get all questions of a page.
$tbl
Definition: example_048.php:81
setLocator()
Set Locator Items.
Class ilTableGUI.
_getTitle($a_q_id)
Returns the title of a question.
global $tpl
Definition: ilias.php:8
global $ilCtrl
Definition: ilias.php:18
setTableNames($a_table_tree, $a_table_obj_data, $a_table_obj_reference="")
set table names The primary key of the table containing your object_data must be &#39;obj_id&#39; You may use...
Tree class data representation in hierachical trees using the Nested Set Model with Gaps by Joe Celco...
global $lng
Definition: privfeed.php:40
static switchColor($a_num, $a_css1, $a_css2)
switches style sheets for each even $a_num (used for changing colors of different result rows) ...
+ Here is the call graph for this function:

◆ sco_preview()

ilSCORM2004ScoGUI::sco_preview ( )

SCO preview.

Definition at line 359 of file class.ilSCORM2004ScoGUI.php.

References $html, $ilCtrl, $lng, $tpl, ilObjSAHSLearningModule\getAffectiveLocalization(), ilObjStyleSheet\getContentStylePath(), ilMD\getGeneral(), ilSCORM2004PageGUI\getGlossaryHTML(), getGlossaryOverviewId(), ilUtil\getStyleSheetLocation(), IL_PAGE_PREVIEW, ilSCORM2004PageGUI\initExport(), ilOverlayGUI\initJavascript(), iljQueryUtil\initjQuery(), iljQueryUtil\initjQueryUI(), ilSCORM2004Asset\renderMetaPage(), ilSCORM2004Asset\renderNavigation(), ilPageObjectGUI\setPresentationTitle(), and ilTree\setTableNames().

360  {
361  global $tpl, $ilCtrl, $lng;
362 
363  // init main template
364  $tpl = new ilTemplate("tpl.main.html", true, true);
365  include_once("./Services/Style/classes/class.ilObjStyleSheet.php");
366  $tpl->setVariable("LOCATION_STYLESHEET", ilUtil::getStyleSheetLocation());
367  $tpl->setBodyClass("");
368  $tpl->setCurrentBlock("ContentStyle");
369  $tpl->setVariable("LOCATION_CONTENT_STYLESHEET",
370  ilObjStyleSheet::getContentStylePath($this->slm_object->getStyleSheetId()));
371  $tpl->parseCurrentBlock();
372 
373  // get javascript
374  include_once("./Services/jQuery/classes/class.iljQueryUtil.php");
377  $tpl->addJavaScript("./Modules/Scorm2004/scripts/questions/pure.js");
378  $tpl->addJavaScript("./Modules/Scorm2004/scripts/pager.js");
379 
380  $tpl->addOnLoadCode("pager.Init();");
381 
382  $tree = new ilTree($this->slm_object->getId());
383  $tree->setTableNames('sahs_sc13_tree', 'sahs_sc13_tree_node');
384  $tree->setTreeTablePK("slm_id");
385  include_once "./Modules/Scorm2004/classes/class.ilSCORM2004PageGUI.php";
386  include_once "./Services/MetaData/classes/class.ilMD.php";
387 
388  $meta = new ilMD($this->node_object->getSLMId(), $this->node_object->getId(), $this->node_object->getType());
389  $desc_ids = $meta->getGeneral()->getDescriptionIds();
390  $sco_description = $meta->getGeneral()->getDescription($desc_ids[0])->getDescription();
391 
392  // get sco template
393  $sco_tpl = new ilTemplate("tpl.sco.html", true, true, "Modules/Scorm2004");
394 
395  // navigation
396  $lk = ilObjSAHSLearningModule::getAffectiveLocalization($this->node_object->getSLMId());
397  ilSCORM2004Asset::renderNavigation($sco_tpl, "", $lk);
398 
399  // meta page (description and objectives)
400  ilSCORM2004Asset::renderMetaPage($sco_tpl, $this->node_object,
401  $this->node_object->getType());
402 
403  // init export (this initialises glossary template)
405  $terms = $this->node_object->getGlossaryTermIds();
406 
407  // render page
408  foreach($tree->getSubTree($tree->getNodeData($this->node_object->getId()),true,'page') as $page)
409  {
410  $page_obj = new ilSCORM2004PageGUI($this->node_object->getType(),$page["obj_id"],
411  0, $this->slm_object->getId());
412  $page_obj->setPresentationTitle($page["title"]);
413  $page_obj->setOutputMode(IL_PAGE_PREVIEW);
414  $page_obj->setStyleId($this->slm_object->getStyleSheetId());
415  if (count($terms) > 1)
416  {
417  $page_obj->setGlossaryOverviewInfo(
418  ilSCORM2004ScoGUI::getGlossaryOverviewId(), $this->node_object);
419  }
420  $sco_tpl->setCurrentBlock("page_preview");
421  $html = $ilCtrl->getHTML($page_obj);
422  //$sco_tpl->setVariable("PAGE_PRV", $page_obj->showPage("export"));
423  $sco_tpl->setVariable("PAGE_PRV", $html);
424  $sco_tpl->parseCurrentBlock();
425  }
426 
427  $output = $sco_tpl->get();
428 
429  // append glossary entries on the sco level
430  $output.= ilSCORM2004PageGUI::getGlossaryHTML($this->node_object);
431 
432  //insert questions
433  require_once './Modules/Scorm2004/classes/class.ilQuestionExporter.php';
434  $output = preg_replace_callback("/{{{{{(Question;)(il__qst_[0-9]+)}}}}}/",array(get_class($this), 'insertQuestion'),$output);
435 // $output = preg_replace("/&#123;/","",$output);
436 // $output = preg_replace("/&#125;/","",$output);
437  $output = "<script>var ScormApi=null;".ilQuestionExporter::questionsJS()."</script>".$output;
438 
439  $lk = ilObjSAHSLearningModule::getAffectiveLocalization($this->node_object->getSLMId());
440 // include_once("./Modules/Scorm2004/classes/class.ilSCORM2004PageGUI.php");
441 // ilSCORM2004PageGUI::addPreparationJavascript($tpl, $lk);
442 
443  $tpl->addJavaScript("./Modules/Scorm2004/scripts/questions/question_handling.js");
444  $tpl->addCss("./Modules/Scorm2004/templates/default/question_handling.css");
445 
446  include_once("./Services/UIComponent/Overlay/classes/class.ilOverlayGUI.php");
448 
449  //inline JS
450  $output .='<script type="text/javascript" src="./Modules/Scorm2004/scripts/questions/question_handling.js"></script>';
451  $tpl->setVariable("CONTENT", $output);
452  }
static initjQueryUI()
Init jQuery UI (see included_components.txt for included components)
const IL_PAGE_PREVIEW
static getStyleSheetLocation($mode="output", $a_css_name="", $a_css_location="")
get full style sheet file name (path inclusive) of current user
static renderMetaPage($a_tpl, $a_sco, $a_asset_type="", $mode="")
Render meta page (description/objectives at beginning)
static getGlossaryOverviewId()
Get sco glossary overlay id.
global $tpl
Definition: ilias.php:8
global $ilCtrl
Definition: ilias.php:18
special template class to simplify handling of ITX/PEAR
& getGeneral()
Definition: class.ilMD.php:55
setPresentationTitle($a_title="")
setTableNames($a_table_tree, $a_table_obj_data, $a_table_obj_reference="")
set table names The primary key of the table containing your object_data must be &#39;obj_id&#39; You may use...
Tree class data representation in hierachical trees using the Nested Set Model with Gaps by Joe Celco...
static renderNavigation($a_tpl, $a_spacer_img="", $a_lang="")
Render navigation.
getContentStylePath($a_style_id)
get content style path
getAffectiveLocalization($a_id)
Get affective localization.
Class ilSCORM2004Page GUI class.
global $lng
Definition: privfeed.php:40
static initjQuery($a_tpl=null)
Init jQuery.
static getGlossaryHTML($a_sco)
Get glossary html (only in export mode)
$html
Definition: example_001.php:87
static initExport()
Init export.
static initJavascript()
Init javascript.
+ Here is the call graph for this function:

◆ sco_resources()

ilSCORM2004ScoGUI::sco_resources ( )

Definition at line 701 of file class.ilSCORM2004ScoGUI.php.

References $_GET, $ilCtrl, $lng, $tbl, $tpl, getExportResources(), ilSCORM2004NodeGUI\setLocator(), setTabs(), and ilUtil\switchColor().

702  {
703  global $tpl, $lng, $ilCtrl;;
704 
705  $this->setTabs();
706  $this->setLocator();
707  $i = 0;
708 
709  $export_files = $this->getExportResources();
710 
711  // create table
712  require_once("./Services/Table/classes/class.ilTableGUI.php");
713  $tbl = new ilTableGUI();
714 
715  // load files templates
716  $tpl->addBlockfile("ADM_CONTENT", "adm_content", "tpl.table.html");
717 
718  // load template for table content data
719  $tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.download_file_row.html", "Modules/LearningModule");
720 
721  $num = 0;
722 
723  $tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
724 
725  $tbl->setTitle($lng->txt("cont_files"));
726 
727  $tbl->setHeaderNames(array($lng->txt("cont_format"),
728  $lng->txt("cont_file"),
729  $lng->txt("size"), $lng->txt("date"),
730  ""));
731 
732  $cols = array("format", "file", "size", "date", "download");
733  $header_params = array("ref_id" => $_GET["ref_id"], "obj_id" => $_GET["obj_id"],
734  "cmd" => "sco_resources", "cmdClass" => strtolower(get_class($this)),
735  "cmdNode" => $_GET["cmdNode"], "baseClass" => $_GET["baseClass"]);
736  $tbl->setHeaderVars($cols, $header_params);
737  $tbl->setColumnWidth(array("10%", "30%", "20%", "20%","20%"));
738  $tbl->disable("sort");
739 
740  $tbl->setOrderColumn($_GET["sort_by"]);
741  $tbl->setOrderDirection($_GET["sort_order"]);
742  $tbl->setLimit($_GET["limit"]);
743  $tbl->setOffset($_GET["offset"]);
744  $tbl->setMaxCount($this->maxcount); // ???
745 
746 
747  $tbl->setMaxCount(count($export_files));
748 
749  // footer
750  $tbl->setFooter("tblfooter",$lng->txt("previous"),$lng->txt("next"));
751  //$tbl->disable("footer");
752 
753  $tbl->setMaxCount(count($export_files));
754  $export_files = array_slice($export_files, $_GET["offset"], $_GET["limit"]);
755 
756  $tbl->render();
757  if(count($export_files) > 0)
758  {
759  $i=0;
760  foreach($export_files as $exp_file)
761  {
762  /* remote files (youtube videos) have no size, so we allow them now
763  if (!$exp_file["size"] > 0)
764  {
765  continue;
766  }
767  */
768 
769  $tpl->setCurrentBlock("tbl_content");
770  $tpl->setVariable("TXT_FILENAME", $exp_file["file"]);
771 
772  $css_row = ilUtil::switchColor($i++, "tblrow1", "tblrow2");
773  $tpl->setVariable("CSS_ROW", $css_row);
774 
775  $tpl->setVariable("TXT_SIZE", $exp_file["size"]);
776  $tpl->setVariable("TXT_FORMAT", $exp_file["type"]);
777 
778  $tpl->setVariable("TXT_DATE", $exp_file["date"]);
779 
780  if($exp_file["size"] > 0)
781  {
782  $tpl->setVariable("TXT_DOWNLOAD", $lng->txt("download"));
783  $ilCtrl->setParameter($this, "resource", rawurlencode($exp_file["path"]));
784  $ilCtrl->setParameter($this, "file_id", rawurlencode($exp_file["file_id"]));
785  $tpl->setVariable("LINK_DOWNLOAD",
786  $ilCtrl->getLinkTarget($this, "downloadResource"));
787  }
788  else
789  {
790  $tpl->setVariable("TXT_DOWNLOAD", $lng->txt("show"));
791  $tpl->setVariable("LINK_TARGET", " target=\"_blank\"");
792  $tpl->setVariable("LINK_DOWNLOAD", $exp_file["path"]);
793  }
794 
795  $tpl->parseCurrentBlock();
796  }
797  } //if is_array
798  /* not found in template?
799  else
800  {
801  $tpl->setCurrentBlock("notfound");
802  $tpl->setVariable("TXT_OBJECT_NOT_FOUND", $lng->txt("obj_not_found"));
803  $tpl->setVariable("NUM_COLS", 4);
804  $tpl->parseCurrentBlock();
805  }
806  */
807  // $tpl->parseCurrentBlock();
808  }
$_GET["client_id"]
$tbl
Definition: example_048.php:81
setLocator()
Set Locator Items.
Class ilTableGUI.
global $tpl
Definition: ilias.php:8
global $ilCtrl
Definition: ilias.php:18
global $lng
Definition: privfeed.php:40
static switchColor($a_num, $a_css1, $a_css2)
switches style sheets for each even $a_num (used for changing colors of different result rows) ...
+ Here is the call graph for this function:

◆ selectExport()

ilSCORM2004ScoGUI::selectExport ( )

Select the export type of the SCORM 2004 module.

Definition at line 464 of file class.ilSCORM2004ScoGUI.php.

References $_POST.

465  {
466  switch ($_POST['select_export'])
467  {
468  case "exportScorm12":
469  case "exportScorm2004_3rd":
470  case "exportScorm2004_4th":
471  case "exportPDF":
472  case "exportHTML":
473  $this->ctrl->redirect($this, $_POST['select_export']);
474  break;
475  default:
476  $this->ctrl->redirect($this, 'showExportList');
477  break;
478  }
479  }
$_POST['username']
Definition: cron.php:12

◆ setTabs()

ilSCORM2004ScoGUI::setTabs ( )

output tabs

Definition at line 284 of file class.ilSCORM2004ScoGUI.php.

References $ilCtrl, $lng, $tpl, ilUtil\getImagePath(), and ilObjectMetaDataGUI\getTab().

Referenced by executeCommand(), import(), sahs_questions(), sco_resources(), showExportList(), and showProperties().

285  {
286  global $ilTabs, $ilCtrl, $tpl, $lng, $ilHelp;
287 
288  $ilHelp->setScreenIdComponent("sahsed");
289 
290  // subelements
291  $ilTabs->addTarget("sahs_organization",
292  $ilCtrl->getLinkTarget($this,'showOrganization'),
293  "showOrganization", get_class($this));
294 
295  // properties (named learning objectives, since here is currently
296  // no other property)
297  $ilTabs->addTarget("sahs_desc_objectives",
298  $ilCtrl->getLinkTarget($this,'showProperties'),
299  "showProperties", get_class($this));
300 
301  // questions
302  $ilTabs->addTarget("sahs_questions",
303  $ilCtrl->getLinkTarget($this,'sahs_questions'),
304  "sahs_questions", get_class($this));
305 
306  // resources
307  $ilTabs->addTarget("cont_files",
308  $ilCtrl->getLinkTarget($this,'sco_resources'),
309  "sco_resources", get_class($this));
310 
311  // metadata
312  include_once "Services/Object/classes/class.ilObjectMetaDataGUI.php";
313  $mdgui = new ilObjectMetaDataGUI($this->slm_object,
314  $this->node_object->getType(), $this->node_object->getId());
315  $mdtab = $mdgui->getTab();
316  if($mdtab)
317  {
318  $ilTabs->addTarget("meta_data",
319  $mdtab,
320  "", "ilmdeditorgui");
321  }
322 
323  // export
324  $ilTabs->addTarget("export",
325  $ilCtrl->getLinkTarget($this, "showExportList"), "showExportList",
326  get_class($this));
327 
328  // import
329  $ilTabs->addTarget("import",
330  $ilCtrl->getLinkTarget($this, "import"), "import",
331  get_class($this));
332 
333  // preview
334  $ilTabs->addNonTabbedLink("preview",
335  $lng->txt("cont_preview"),
336  $ilCtrl->getLinkTarget($this,'sco_preview'), "_blank");
337 
338  $tpl->setTitleIcon(ilUtil::getImagePath("icon_sco.svg"));
339  $tpl->setTitle(
340  $lng->txt("sahs_unit").": ".$this->node_object->getTitle());
341  }
Class ilObjectMetaDataGUI.
global $tpl
Definition: ilias.php:8
global $ilCtrl
Definition: ilias.php:18
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
global $lng
Definition: privfeed.php:40
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showExportList()

ilSCORM2004ScoGUI::showExportList ( )

Definition at line 481 of file class.ilSCORM2004ScoGUI.php.

References $data, $ilCtrl, $lng, $text, $tpl, ilDatePresentation\formatDate(), IL_CAL_UNIX, ilUtil\prepareFormOutput(), ilSCORM2004NodeGUI\setLocator(), and setTabs().

482  {
483  global $tpl, $ilCtrl, $lng;
484 
485  $this->setTabs();
486  $this->setLocator();
487 
488 
489  $template = new ilTemplate("tpl.scorm2004_export_buttons.html", true, true, 'Modules/Scorm2004');
490 
491  $buttons = array(
492  "exportScorm2004_3rd" => $lng->txt("scorm_create_export_file_scrom2004"),
493  "exportScorm2004_4th" => $lng->txt("scorm_create_export_file_scrom2004_4th"),
494  "exportScorm12" => $lng->txt("scorm_create_export_file_scrom12"),
495  "exportPDF" => $lng->txt("scorm_create_export_file_pdf"),
496  "exportHTML" => $lng->txt("scorm_create_export_file_html")
497  );
498  foreach ($buttons as $value => $text)
499  {
500  $template->setCurrentBlock('option');
501  $template->setVariable('OPTION_VALUE', $value);
502  $template->setVariable('OPTION_TITLE', ilUtil::prepareFormOutput($text));
503  $template->parseCurrentBlock();
504  }
505  $template->setVariable('EXPORT_TITLE', $lng->txt('export'));
506  $template->setVariable('EXPORT_LABEL', $lng->txt('type'));
507  $template->setVariable('FORMACTION', $ilCtrl->getFormAction($this, 'selectExport'));
508 
509  $export_files = $this->node_object->getExportFiles();
510 
511  include_once "./Modules/Scorm2004/classes/class.ilSCORM2004ExportTableGUI.php";
512  $table_gui = new ilSCORM2004ExportTableGUI($this, 'showExportList');
513  $data = array();
514  foreach ($export_files as $exp_file)
515  {
516  $filetype = $exp_file['type'];
517  // $public_str = ($exp_file["file"] == $this->object->getPublicExportFile($filetype))
518  // ? " <b>(".$this->lng->txt("public").")<b>"
519  // : "";
520  $file_arr = explode("__", $exp_file["file"]);
521  array_push($data, array('file' => $exp_file['file'], 'filetype' => $filetype, 'date' => ilDatePresentation::formatDate(new ilDateTime($file_arr[0], IL_CAL_UNIX)), 'size' => $exp_file['size'], 'type' => $exp_file['type'].$public_str));
522  }
523  $table_gui->setData($data);
524  $tpl->setVariable('ADM_CONTENT', $template->get() . "\n" . $table_gui->getHTML());
525 
526 
527  }
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms public
setLocator()
Set Locator Items.
const IL_CAL_UNIX
global $tpl
Definition: ilias.php:8
global $ilCtrl
Definition: ilias.php:18
$data
special template class to simplify handling of ITX/PEAR
static formatDate(ilDateTime $date)
Format a date public.
Date and time handling
global $lng
Definition: privfeed.php:40
$text
+ Here is the call graph for this function:

◆ showProperties()

ilSCORM2004ScoGUI::showProperties ( )

Show learning objectives.

Definition at line 101 of file class.ilSCORM2004ScoGUI.php.

References $ilCtrl, $lng, $tpl, ilMD\getGeneral(), ilTextAreaInputGUI\setCols(), ilFormPropertyGUI\setInfo(), ilSCORM2004NodeGUI\setLocator(), ilTextAreaInputGUI\setRows(), and setTabs().

Referenced by updateProperties().

102  {
103  global $tpl, $lng, $ilTabs, $ilCtrl;
104 
105  $this->setTabs();
106  $this->setLocator();
107  $ilTabs->setTabActive("sahs_desc_objectives");
108 
109  include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
110  $form = new ilPropertyFormGUI();
111 
112  // hide objectives page
113  $cb = new ilCheckboxInputGUI($lng->txt("sahs_hide_objectives_page"), "hide_objectives_page");
114  $cb->setInfo($lng->txt("sahs_hide_objectives_page_info"));
115  $form->addItem($cb);
116  $cb->setChecked($this->node_object->getHideObjectivePage());
117 
118  // description
119  $ta = new ilTextAreaInputGUI($lng->txt("description"), "desc");
120  $ta->setRows(4);
121  $ta->setCols(55);
122  $ta->setInfo($lng->txt("sahs_list_info"));
123  $form->setTitle($lng->txt("properties"));
124  $form->addItem($ta);
125  include_once "./Services/MetaData/classes/class.ilMD.php";
126  $meta = new ilMD($this->node_object->getSLMId(), $this->node_object->getId(), $this->node_object->getType());
127  $desc_ids = $meta->getGeneral()->getDescriptionIds();
128  $ta->setValue($meta->getGeneral()->getDescription($desc_ids[0])->getDescription());
129 
130  // objectives
131  $sh = new ilFormSectionHeaderGUI();
132  $sh->setTitle($lng->txt("sahs_learning_objectives"));
133  $form->addItem($sh);
134 
135  $objectives = $this->node_object->getObjectives();
136 
137  foreach ($objectives as $ob)
138  {
139  // map info
140  $mappings = $ob->getMappings();
141  $mapinfo = null;
142  foreach($mappings as $map)
143  {
144  $mapinfo .= $map->getTargetObjectiveID();
145  }
146 
147  if ($mapinfo == null)
148  {
149  $mapinfo = "local";
150  }
151  else
152  {
153  $mapinfo = "global to ".$mapinfo;
154  }
155 
156  // objective
157  $ta = new ilTextAreaInputGUI($mapinfo,
158  "obj_".$ob->getId());
159  $ta->setCols(55);
160  $ta->setRows(4);
161  $ta->setInfo($lng->txt("sahs_list_info"));
162  $form->addItem($ta);
163  $ta->setValue($ob->getObjectiveID());
164  }
165  $form->setFormAction($ilCtrl->getFormAction($this));
166  $form->addCommandButton("updateProperties",
167  $lng->txt("save"));
168  $tpl->setContent($form->getHTML());
169  }
This class represents a property form user interface.
This class represents a section header in a property form.
This class represents a checkbox property in a property form.
setLocator()
Set Locator Items.
global $tpl
Definition: ilias.php:8
global $ilCtrl
Definition: ilias.php:18
setInfo($a_info)
Set Information Text.
& getGeneral()
Definition: class.ilMD.php:55
global $lng
Definition: privfeed.php:40
This class represents a text area property in a property form.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ updateProperties()

ilSCORM2004ScoGUI::updateProperties ( )

update Properties

Definition at line 174 of file class.ilSCORM2004ScoGUI.php.

References $_POST, $lng, $tpl, ilMD\getGeneral(), ilUtil\sendFailure(), ilUtil\sendInfo(), showProperties(), ilUtil\stripSlashes(), and ilMDBase\update().

175  {
176  global $tpl,$lng;
177  $empty = false;
178 
179  foreach ($_POST as $key=>$value) {
180  if(preg_match('/(obj_)(.+)/', $key,$match)){
181  $objective = new ilScorm2004Objective($this->node_object->getId(),$match[2]);
182 // if (!$value)
183 // {
184 // $empty=true;
185 // } else {
186  $objective->setObjectiveID(ilUtil::stripSlashes($value));
187  $objective->updateObjective();
188 // }
189  }
190  }
191 
192  $this->node_object->setHideObjectivePage(ilUtil::stripSlashes($_POST["hide_objectives_page"]));
193  $this->node_object->update();
194 
195  include_once "./Services/MetaData/classes/class.ilMD.php";
196  $meta = new ilMD($this->node_object->getSLMId(), $this->node_object->getId(), $this->node_object->getType());
197  $gen = $meta->getGeneral();
198  $desc_ids = $gen->getDescriptionIds();
199  $des = $gen->getDescription($desc_ids[0]);
200  $des->setDescription(ilUtil::stripSlashes($_POST["desc"]));
201  $des->update();
202  $gen->update();
203 
204  if (!$empty)
205  {
206  ilUtil::sendInfo($lng->txt("saved_successfully"),true);
207  }
208  else
209  {
210  ilUtil::sendFailure($lng->txt("sahs_empty_objectives_are_not_allowed"), true);
211  }
212  $this->showProperties();
213  }
$_POST['username']
Definition: cron.php:12
global $tpl
Definition: ilias.php:8
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
& getGeneral()
Definition: class.ilMD.php:55
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
global $lng
Definition: privfeed.php:40
showProperties()
Show learning objectives.
+ Here is the call graph for this function:

Field Documentation

◆ $ctrl

ilSCORM2004ScoGUI::$ctrl = null

Constructor public.

Definition at line 29 of file class.ilSCORM2004ScoGUI.php.


The documentation for this class was generated from the following file: