ILIAS  release_4-4 Revision
All Data Structures Namespaces Files Functions Variables Modules Pages
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...
 

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: ilMDEditorGUI, 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
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
static formatDate(ilDateTime $date)
Format a date public.
Date and time handling
if(isset($_FILES['img_file']['size']) && $_FILES['img_file']['size'] > 0) $tpl
static sendQuestion($a_info="", $a_keep=false)
Send Question to Screen.
while($lm_rec=$ilDB->fetchAssoc($lm_set)) $data
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 564 of file class.ilSCORM2004ScoGUI.php.

References $_POST, and ilUtil\deliverFile().

565  {
566  if(!isset($_POST["file"]))
567  {
568  $this->ilias->raiseError($this->lng->txt("no_checkbox"),$this->ilias->error_obj->MESSAGE);
569  }
570 
571  if (count($_POST["file"]) > 1)
572  {
573  $this->ilias->raiseError($this->lng->txt("cont_select_max_one_item"),$this->ilias->error_obj->MESSAGE);
574  }
575  $export = new ilSCORM2004Export($this->node_object);
576  $export_dir = $export->getExportDirectoryForType($_POST['type'][$_POST['file'][0]]);
577  ilUtil::deliverFile($export_dir."/".$_POST['file'][0], $_POST['file'][0]);
578  }
$_POST['username']
Definition: cron.php:12
redirection script todo: (a better solution should control the processing via a xml file) ...
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, ilMDEditorGUI\addObserver(), 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 'ilmdeditorgui':
74  $this->setTabs();
75  $this->setLocator();
76  include_once 'Services/MetaData/classes/class.ilMDEditorGUI.php';
77 
78  $md_gui =& new ilMDEditorGUI($this->slm_object->getID(),
79  $this->node_object->getId(), $this->node_object->getType());
80  $md_gui->addObserver($this->node_object,'MDUpdateListener','General');
81  $ilCtrl->forwardCommand($md_gui);
82  break;
83 
84  case 'ilscorm2004pagegui':
85  include_once("./Modules/Scorm2004/classes/class.ilSCORM2004PageGUI.php");
86  $page_obj = new ilSCORM2004PageGUI("sahs",$_GET["pg_id"]);
87  //$page_obj->setPresentationTitle($page["title"]);
88  $page_obj->setOutputMode(IL_PAGE_PREVIEW);
89  $ilCtrl->forwardCommand($page_obj);
90  break;
91 
92  default:
93  $cmd = $ilCtrl->getCmd("showOrganization");
94  $ret =& $this->$cmd();
95  break;
96  }
97  }
const IL_PAGE_PREVIEW
$_GET["client_id"]
$cmd
Definition: sahs_server.php:35
addObserver(&$a_class, $a_method, $a_element)
setLocator()
Set Locator Items.
global $ilCtrl
Definition: ilias.php:18
if(isset($_FILES['img_file']['size']) && $_FILES['img_file']['size'] > 0) $tpl
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 543 of file class.ilSCORM2004ScoGUI.php.

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

◆ exportISO()

ilSCORM2004ScoGUI::exportISO ( )

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

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

◆ exportPDF()

ilSCORM2004ScoGUI::exportPDF ( )

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

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

◆ exportScorm12()

ilSCORM2004ScoGUI::exportScorm12 ( )

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

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

◆ exportScorm2004_3rd()

ilSCORM2004ScoGUI::exportScorm2004_3rd ( )

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

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

◆ exportScorm2004_4th()

ilSCORM2004ScoGUI::exportScorm2004_4th ( )

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

522  {
523  $export = new ilScorm2004Export($this->node_object,'SCORM 2004 4th');
524  $export->buildExportFile();
525  $this->ctrl->redirect($this, "showExportList");
526  }
Export class for SCORM 2004 object.

◆ getEditTree()

ilSCORM2004ScoGUI::getEditTree ( )

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

References ilTree\setTreeTablePK().

274  {
275 die("deprecated");
276  $slm_tree = new ilTree($this->node_object->getId(),$this->slm_object->getId());
277  $slm_tree->setTreeTablePK("slm_id");
278  $slm_tree->setTableNames('sahs_sc13_tree', 'sahs_sc13_tree_node');
279  return $slm_tree;
280  }
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.
special template class to simplify handling of ITX/PEAR
if(isset($_FILES['img_file']['size']) && $_FILES['img_file']['size'] > 0) $tpl
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_slm.png'));
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.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
if(isset($_FILES['img_file']['size']) && $_FILES['img_file']['size'] > 0) $tpl
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("create", $_GET["ref_id"], "sahs"))
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 447 of file class.ilSCORM2004ScoGUI.php.

448  {
449  $q_exporter = new ilQuestionExporter(false);
450  return $q_exporter->exportQuestion($matches[2]);
451  }
Scorm 2004 Question Exporter.

◆ proceedDragDrop()

ilSCORM2004ScoGUI::proceedDragDrop ( )

Perform drag and drop action.

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

References $_POST, and $ilCtrl.

339  {
340  global $ilCtrl;
341 
342  //echo "-".$_POST["il_hform_source_id"]."-".$_POST["il_hform_target_id"]."-".$_POST["il_hform_fc"]."-";
343  $this->slm_object->executeDragDrop($_POST["il_hform_source_id"], $_POST["il_hform_target_id"],
344  $_POST["il_hform_fc"], $_POST["il_hform_as_subitem"]);
345  $ilCtrl->redirect($this, "showOrganization");
346  }
$_POST['username']
Definition: cron.php:12
global $ilCtrl
Definition: ilias.php:18

◆ sahs_questions()

ilSCORM2004ScoGUI::sahs_questions ( )

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

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

217  {
218  global $tpl,$lng, $ilCtrl;
219 
220  $this->setTabs();
221  $this->setLocator();
222 
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");
227 
228  // load template for table
229  $tpl->addBlockfile("ADM_CONTENT", "adm_content", "tpl.table.html");
230  $tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.scormeditor_sco_question.html", "Modules/Scorm2004");
231 
232  $tbl = new ilTableGUI();
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");
240 
241  $tree = new ilTree($this->slm_object->getId());
242  $tree->setTableNames('sahs_sc13_tree', 'sahs_sc13_tree_node');
243  $tree->setTreeTablePK("slm_id");
244 
245  foreach($tree->getSubTree($tree->getNodeData($this->node_object->getId()),true,'page') as $page)
246  {
247  // get question ids
248  include_once("./Services/COPage/classes/class.ilPCQuestion.php");
249  $qids = ilPCQuestion::_getQuestionIdsForPage("sahs", $page["obj_id"]);
250  if (count($qids) > 0)
251  {
252  // output questions
253  foreach ($qids as $qid)
254  {
255  $tpl->setCurrentBlock("tbl_content");
256  $tpl->setVariable("TXT_PAGE_TITLE", $page["title"]);
257  $ilCtrl->setParameterByClass("ilscorm2004pagenodegui", "obj_id", $page["obj_id"]);
258  $tpl->setVariable("HREF_EDIT_PAGE", $ilCtrl->getLinkTargetByClass("ilscorm2004pagenodegui", "edit"));
259 
260  $qtitle = assQuestion::_getTitle($qid);
261  $tpl->setVariable("TXT_QUESTION", $qtitle);
262  $ilCtrl->setParameterByClass("ilscorm2004pagenodegui", "obj_id", $page["obj_id"]);
263  //$tpl->setVariable("HREF_EDIT_QUESTION", $ilCtrl->getLinkTargetByClass("ilscorm2004pagenodegui", "edit"));
264 
265  $tpl->setVariable("CSS_ROW", ilUtil::switchColor($i++, "tblrow1", "tblrow2"));
266  $tpl->parseCurrentBlock();
267  }
268  }
269  }
270  $tbl->render();
271  }
static _getQuestionIdsForPage($a_parent_type, $a_page_id, $a_lang="-")
Get all questions of a page.
setLocator()
Set Locator Items.
Class ilTableGUI.
_getTitle($a_q_id)
Returns the title of a question.
global $ilCtrl
Definition: ilias.php:18
if(isset($_FILES['img_file']['size']) && $_FILES['img_file']['size'] > 0) $tpl
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 351 of file class.ilSCORM2004ScoGUI.php.

References $ilCtrl, $lng, $tpl, ilPageObjectGUI\addPreparationJavascript(), 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().

352  {
353  global $tpl, $ilCtrl, $lng;
354 
355  // init main template
356  $tpl = new ilTemplate("tpl.main.html", true, true);
357  include_once("./Services/Style/classes/class.ilObjStyleSheet.php");
358  $tpl->setVariable("LOCATION_STYLESHEET", ilUtil::getStyleSheetLocation());
359  $tpl->setBodyClass("");
360  $tpl->setCurrentBlock("ContentStyle");
361  $tpl->setVariable("LOCATION_CONTENT_STYLESHEET",
362  ilObjStyleSheet::getContentStylePath($this->slm_object->getStyleSheetId()));
363  $tpl->parseCurrentBlock();
364 
365  // get javascript
366  include_once("./Services/jQuery/classes/class.iljQueryUtil.php");
369  $tpl->addJavaScript("./Modules/Scorm2004/scripts/questions/pure.js");
370  $tpl->addJavaScript("./Modules/Scorm2004/scripts/pager.js");
371 
372  $tpl->addOnLoadCode("pager.Init();");
373 
374  $tree = new ilTree($this->slm_object->getId());
375  $tree->setTableNames('sahs_sc13_tree', 'sahs_sc13_tree_node');
376  $tree->setTreeTablePK("slm_id");
377  include_once "./Modules/Scorm2004/classes/class.ilSCORM2004PageGUI.php";
378  include_once "./Services/MetaData/classes/class.ilMD.php";
379 
380  $meta = new ilMD($this->node_object->getSLMId(), $this->node_object->getId(), $this->node_object->getType());
381  $desc_ids = $meta->getGeneral()->getDescriptionIds();
382  $sco_description = $meta->getGeneral()->getDescription($desc_ids[0])->getDescription();
383 
384  // get sco template
385  $sco_tpl = new ilTemplate("tpl.sco.html", true, true, "Modules/Scorm2004");
386 
387  // navigation
388  $lk = ilObjSAHSLearningModule::getAffectiveLocalization($this->node_object->getSLMId());
389  ilSCORM2004Asset::renderNavigation($sco_tpl, "", $lk);
390 
391  // meta page (description and objectives)
392  ilSCORM2004Asset::renderMetaPage($sco_tpl, $this->node_object,
393  $this->node_object->getType());
394 
395  // init export (this initialises glossary template)
397  $terms = $this->node_object->getGlossaryTermIds();
398 
399  // render page
400  foreach($tree->getSubTree($tree->getNodeData($this->node_object->getId()),true,'page') as $page)
401  {
402  $page_obj = new ilSCORM2004PageGUI($this->node_object->getType(),$page["obj_id"],
403  0, $this->slm_object->getId());
404  $page_obj->setPresentationTitle($page["title"]);
405  $page_obj->setOutputMode(IL_PAGE_PREVIEW);
406  $page_obj->setStyleId($this->slm_object->getStyleSheetId());
407  if (count($terms) > 1)
408  {
409  $page_obj->setGlossaryOverviewInfo(
410  ilSCORM2004ScoGUI::getGlossaryOverviewId(), $this->node_object);
411  }
412  $sco_tpl->setCurrentBlock("page_preview");
413  $html = $ilCtrl->getHTML($page_obj);
414  //$sco_tpl->setVariable("PAGE_PRV", $page_obj->showPage("export"));
415  $sco_tpl->setVariable("PAGE_PRV", $html);
416  $sco_tpl->parseCurrentBlock();
417  }
418 
419  $output = $sco_tpl->get();
420 
421  // append glossary entries on the sco level
422  $output.= ilSCORM2004PageGUI::getGlossaryHTML($this->node_object);
423 
424  //insert questions
425  require_once './Modules/Scorm2004/classes/class.ilQuestionExporter.php';
426  $output = preg_replace_callback("/{{{{{(Question;)(il__qst_[0-9]+)}}}}}/",array(get_class($this), 'insertQuestion'),$output);
427 // $output = preg_replace("/&#123;/","",$output);
428 // $output = preg_replace("/&#125;/","",$output);
429  $output = "<script>var ScormApi=null;".ilQuestionExporter::questionsJS()."</script>".$output;
430 
431  $lk = ilObjSAHSLearningModule::getAffectiveLocalization($this->node_object->getSLMId());
432  include_once("./Modules/Scorm2004/classes/class.ilSCORM2004PageGUI.php");
434 
435  $tpl->addJavaScript("./Modules/Scorm2004/scripts/questions/question_handling.js");
436  $tpl->addCss("./Modules/Scorm2004/templates/default/question_handling.css");
437 
438  include_once("./Services/UIComponent/Overlay/classes/class.ilOverlayGUI.php");
440 
441  //inline JS
442  $output .='<script type="text/javascript" src="./Modules/Scorm2004/scripts/questions/question_handling.js"></script>';
443  $tpl->setVariable("CONTENT", $output);
444  }
static initjQueryUI()
Init jQuery UI (see included_components.txt for included components)
static addPreparationJavascript($a_tpl, $a_lang)
Add standard texts.
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 $ilCtrl
Definition: ilias.php:18
special template class to simplify handling of ITX/PEAR
& getGeneral()
Definition: class.ilMD.php:55
setPresentationTitle($a_title="")
if(isset($_FILES['img_file']['size']) && $_FILES['img_file']['size'] > 0) $tpl
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)
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, $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"]
setLocator()
Set Locator Items.
Class ilTableGUI.
global $ilCtrl
Definition: ilias.php:18
if(isset($_FILES['img_file']['size']) && $_FILES['img_file']['size'] > 0) $tpl
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 456 of file class.ilSCORM2004ScoGUI.php.

References $_POST.

457  {
458  switch ($_POST['select_export'])
459  {
460  case "exportScorm12":
461  case "exportScorm2004_3rd":
462  case "exportScorm2004_4th":
463  case "exportPDF":
464  case "exportHTML":
465  $this->ctrl->redirect($this, $_POST['select_export']);
466  break;
467  default:
468  $this->ctrl->redirect($this, 'showExportList');
469  break;
470  }
471  }
$_POST['username']
Definition: cron.php:12

◆ setTabs()

ilSCORM2004ScoGUI::setTabs ( )

output tabs

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

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

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

286  {
287  global $ilTabs, $ilCtrl, $tpl, $lng;
288 
289  // subelements
290  $ilTabs->addTarget("sahs_organization",
291  $ilCtrl->getLinkTarget($this,'showOrganization'),
292  "showOrganization", get_class($this));
293 
294  // properties (named learning objectives, since here is currently
295  // no other property)
296  $ilTabs->addTarget("sahs_desc_objectives",
297  $ilCtrl->getLinkTarget($this,'showProperties'),
298  "showProperties", get_class($this));
299 
300  // questions
301  $ilTabs->addTarget("sahs_questions",
302  $ilCtrl->getLinkTarget($this,'sahs_questions'),
303  "sahs_questions", get_class($this));
304 
305  // resources
306  $ilTabs->addTarget("cont_files",
307  $ilCtrl->getLinkTarget($this,'sco_resources'),
308  "sco_resources", get_class($this));
309 
310  // metadata
311  $ilTabs->addTarget("meta_data",
312  $ilCtrl->getLinkTargetByClass("ilmdeditorgui",''),
313  "", "ilmdeditorgui");
314 
315  // export
316  $ilTabs->addTarget("export",
317  $ilCtrl->getLinkTarget($this, "showExportList"), "showExportList",
318  get_class($this));
319 
320  // import
321  $ilTabs->addTarget("import",
322  $ilCtrl->getLinkTarget($this, "import"), "import",
323  get_class($this));
324 
325  // preview
326  $ilTabs->addNonTabbedLink("preview",
327  $lng->txt("cont_preview"),
328  $ilCtrl->getLinkTarget($this,'sco_preview'), "_blank");
329 
330  $tpl->setTitleIcon(ilUtil::getImagePath("icon_sco_b.png"));
331  $tpl->setTitle(
332  $lng->txt("sahs_unit").": ".$this->node_object->getTitle());
333  }
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)
if(isset($_FILES['img_file']['size']) && $_FILES['img_file']['size'] > 0) $tpl
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 473 of file class.ilSCORM2004ScoGUI.php.

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

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

◆ showProperties()

ilSCORM2004ScoGUI::showProperties ( )

Show learning objectives.

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

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

Referenced by updateProperties().

103  {
104  global $tpl, $lng, $ilTabs, $ilCtrl;
105 
106  $this->setTabs();
107  $this->setLocator();
108  $ilTabs->setTabActive("sahs_desc_objectives");
109 
110  include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
111  $form = new ilPropertyFormGUI();
112 
113  // hide objectives page
114  $cb = new ilCheckboxInputGUI($lng->txt("sahs_hide_objectives_page"), "hide_objectives_page");
115  $cb->setInfo($lng->txt("sahs_hide_objectives_page_info"));
116  $form->addItem($cb);
117  $cb->setChecked($this->node_object->getHideObjectivePage());
118 
119  // description
120  $ta = new ilTextAreaInputGUI($lng->txt("description"), "desc");
121  $ta->setRows(4);
122  $ta->setCols(55);
123  $ta->setInfo($lng->txt("sahs_list_info"));
124  $form->setTitle($lng->txt("properties"));
125  $form->addItem($ta);
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());
130 
131  // objectives
132  $sh = new ilFormSectionHeaderGUI();
133  $sh->setTitle($lng->txt("sahs_learning_objectives"));
134  $form->addItem($sh);
135 
136  $objectives = $this->node_object->getObjectives();
137 
138  foreach ($objectives as $ob)
139  {
140  // map info
141  $mappings = $ob->getMappings();
142  $mapinfo = null;
143  foreach($mappings as $map)
144  {
145  $mapinfo .= $map->getTargetObjectiveID();
146  }
147 
148  if ($mapinfo == null)
149  {
150  $mapinfo = "local";
151  }
152  else
153  {
154  $mapinfo = "global to ".$mapinfo;
155  }
156 
157  // objective
158  $ta = new ilTextAreaInputGUI($mapinfo,
159  "obj_".$ob->getId());
160  $ta->setCols(55);
161  $ta->setRows(4);
162  $ta->setInfo($lng->txt("sahs_list_info"));
163  $form->addItem($ta);
164  $ta->setValue($ob->getObjectiveID());
165  }
166  $form->setFormAction($ilCtrl->getFormAction($this));
167  $form->addCommandButton("updateProperties",
168  $lng->txt("save"));
169  $tpl->setContent($form->getHTML());
170  }
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 $ilCtrl
Definition: ilias.php:18
setInfo($a_info)
Set Information Text.
& getGeneral()
Definition: class.ilMD.php:55
if(isset($_FILES['img_file']['size']) && $_FILES['img_file']['size'] > 0) $tpl
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 175 of file class.ilSCORM2004ScoGUI.php.

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

176  {
177  global $tpl,$lng;
178  $empty = false;
179 
180  foreach ($_POST as $key=>$value) {
181  if(preg_match('/(obj_)(.+)/', $key,$match)){
182  $objective = new ilScorm2004Objective($this->node_object->getId(),$match[2]);
183 // if (!$value)
184 // {
185 // $empty=true;
186 // } else {
187  $objective->setObjectiveID(ilUtil::stripSlashes($value));
188  $objective->updateObjective();
189 // }
190  }
191  }
192 
193  $this->node_object->setHideObjectivePage(ilUtil::stripSlashes($_POST["hide_objectives_page"]));
194  $this->node_object->update();
195 
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());
198  $gen = $meta->getGeneral();
199  $desc_ids = $gen->getDescriptionIds();
200  $des = $gen->getDescription($desc_ids[0]);
201  $des->setDescription(ilUtil::stripSlashes($_POST["desc"]));
202  $des->update();
203  $gen->update();
204 
205  if (!$empty)
206  {
207  ilUtil::sendInfo($lng->txt("saved_successfully"),true);
208  }
209  else
210  {
211  ilUtil::sendFailure($lng->txt("sahs_empty_objectives_are_not_allowed"), true);
212  }
213  $this->showProperties();
214  }
$_POST['username']
Definition: cron.php:12
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
& getGeneral()
Definition: class.ilMD.php:55
if(isset($_FILES['img_file']['size']) && $_FILES['img_file']['size'] > 0) $tpl
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: