[svn r13203] Additional tuning to prevent redundancy of JavaScript library code

skala
Yannick Warnier 17 years ago
parent 8a3031ff76
commit 5adbf695e7
  1. 23
      main/exercice/export/scorm/scorm_classes.php
  2. 112
      main/exercice/export/scorm/scorm_export.php

@ -461,13 +461,15 @@ class ScormAnswerHotspot extends Answer
*/
function get_js_header()
{
$header = '<script type="text/javascript" language="javascript">';
$header .= file_get_contents('../plugin/hotspot/JavaScriptFlashGateway.js');
$header .= '</script>';
$header .= '<script type="text/javascript" language="javascript">';
$header .= file_get_contents('../plugin/hotspot/hotspot.js');
$header .= '</script>';
$header .= '<script language="javascript" type="text/javascript">'.
if($this->standalone)
{
$header = '<script type="text/javascript" language="javascript">';
$header .= file_get_contents('../plugin/hotspot/JavaScriptFlashGateway.js');
$header .= '</script>';
$header .= '<script type="text/javascript" language="javascript">';
$header .= file_get_contents('../plugin/hotspot/hotspot.js');
$header .= '</script>';
$header .= '<script language="javascript" type="text/javascript">'.
"<!--
// -----------------------------------------------------------------------------
// Globals
@ -577,6 +579,13 @@ class ScormAnswerHotspot extends Answer
}
// -->
</script>";
//because this header closes so many times the <script> tag, we have to reopen our own
$header .= '<script type="text/javascript" language="javascript">'."\n";
}
else
{
$header = '';
}
return $header;
}
/**

@ -302,7 +302,117 @@ class ScormSection
*/
function common_js()
{
$js = file_get_contents('../newscorm/js/api_wrapper.js');
$js .= file_get_contents('../plugin/hotspot/JavaScriptFlashGateway.js');
$js .= file_get_contents('../plugin/hotspot/hotspot.js');
$js .= "<!--
// -----------------------------------------------------------------------------
// Globals
// Major version of Flash required
var requiredMajorVersion = 7;
// Minor version of Flash required
var requiredMinorVersion = 0;
// Minor version of Flash required
var requiredRevision = 0;
// the version of javascript supported
var jsVersion = 1.0;
// -----------------------------------------------------------------------------
// -->
</script>
<script language=\"VBScript\" type=\"text/vbscript\">
<!-- // Visual basic helper required to detect Flash Player ActiveX control version information
Function VBGetSwfVer(i)
on error resume next
Dim swControl, swVersion
swVersion = 0
set swControl = CreateObject(\"ShockwaveFlash.ShockwaveFlash.\" + CStr(i))
if (IsObject(swControl)) then
swVersion = swControl.GetVariable(\"\$version\")
end if
VBGetSwfVer = swVersion
End Function
// -->
</script>
<script language=\"JavaScript1.1\" type=\"text/javascript\">
<!-- // Detect Client Browser type
var isIE = (navigator.appVersion.indexOf(\"MSIE\") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf(\"win\") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf(\"Opera\") != -1) ? true : false;
jsVersion = 1.1;
// JavaScript helper required to detect Flash Player PlugIn version information
function JSGetSwfVer(i){
// NS/Opera version >= 3 check for Flash plugin in plugin array
if (navigator.plugins != null && navigator.plugins.length > 0) {
if (navigator.plugins[\"Shockwave Flash 2.0\"] || navigator.plugins[\"Shockwave Flash\"]) {
var swVer2 = navigator.plugins[\"Shockwave Flash 2.0\"] ? \" 2.0\" : \"\";
var flashDescription = navigator.plugins[\"Shockwave Flash\" + swVer2].description;
descArray = flashDescription.split(\" \");
tempArrayMajor = descArray[2].split(\".\");
versionMajor = tempArrayMajor[0];
versionMinor = tempArrayMajor[1];
if ( descArray[3] != \"\" ) {
tempArrayMinor = descArray[3].split(\"r\");
} else {
tempArrayMinor = descArray[4].split(\"r\");
}
versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
flashVer = versionMajor + \".\" + versionMinor + \".\" + versionRevision;
} else {
flashVer = -1;
}
}
// MSN/WebTV 2.6 supports Flash 4
else if (navigator.userAgent.toLowerCase().indexOf(\"webtv/2.6\") != -1) flashVer = 4;
// WebTV 2.5 supports Flash 3
else if (navigator.userAgent.toLowerCase().indexOf(\"webtv/2.5\") != -1) flashVer = 3;
// older WebTV supports Flash 2
else if (navigator.userAgent.toLowerCase().indexOf(\"webtv\") != -1) flashVer = 2;
// Can't detect in all other cases
else {
flashVer = -1;
}
return flashVer;
}
// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
reqVer = parseFloat(reqMajorVer + \".\" + reqRevision);
// loop backwards through the versions until we find the newest version
for (i=25;i>0;i--) {
if (isIE && isWin && !isOpera) {
versionStr = VBGetSwfVer(i);
} else {
versionStr = JSGetSwfVer(i);
}
if (versionStr == -1 ) {
return false;
} else if (versionStr != 0) {
if(isIE && isWin && !isOpera) {
tempArray = versionStr.split(\" \");
tempString = tempArray[1];
versionArray = tempString .split(\",\");
} else {
versionArray = versionStr.split(\".\");
}
versionMajor = versionArray[0];
versionMinor = versionArray[1];
versionRevision = versionArray[2];
versionString = versionMajor + \".\" + versionRevision; // 7.0r24 == 7.24
versionNum = parseFloat(versionString);
// is the major.revision >= requested major.revision AND the minor version >= requested minor
if ( (versionMajor > reqMajorVer) && (versionNum >= reqVer) ) {
return true;
} else {
return ((versionNum >= reqVer && versionMinor >= reqMinorVer) ? true : false );
}
}
}
}
// -->";
$js .= file_get_contents('../newscorm/js/api_wrapper.js');
$js .= 'var questions = new Array();' . "\n";
$js .= 'var questions_answers = new Array();' . "\n";
$js .= 'var questions_answers_correct = new Array();' . "\n";

Loading…
Cancel
Save