[svn r10779] Some fixes to get import of scorm manifest files back to work.

http://www.dokeos.com/forum/viewtopic.php?p=32960
skala
Bart Mollet 19 years ago
parent 08f1af47b8
commit 727ad61ddb
  1. 23
      main/metadata/importmanifest.php
  2. 37
      main/metadata/md_scorm.php

@ -60,11 +60,16 @@ require('md_phpdig.php');
if (isset($workWith)) // explicit in URL, or selected at bottom of screen
{
$scormdocument = Database::get_course_table('lp');
$sql = "SELECT id FROM $scormdocument WHERE path='". mysql_real_escape_string(substr($workWith,1)) . "'";
$sql = "SELECT id FROM $scormdocument WHERE path='". mysql_real_escape_string(substr($workWith,1)) . "' OR path='". mysql_real_escape_string(substr($workWith,1)) . "/.'";
$result = api_sql_query($sql, __FILE__, __LINE__);
if (mysql_num_rows($result) == 1)
if (($row = mysql_fetch_array($result))) $sdi = $row['id'];
{
if (($row = mysql_fetch_array($result)))
{
$sdi = $row['id'];
}
}
}
if (isset($sdi) && is_numeric($sdi) && $sdi > 0 && $sdi == (int) $sdi)
@ -102,8 +107,8 @@ $originalHdrInfo = $hdrInfo;
function slurpmanifest()
{
global $baseWorkDir, $workWith, $sdisub, $mfContents, $xht_doc;
if (file_exists($fmff = $baseWorkDir . $workWith . '/' . MFFNAME . $sdisub . MFFDEXT))
$fmff = $baseWorkDir .'/'. $workWith . '/' . MFFNAME . $sdisub . MFFDEXT;
if (file_exists($fmff))
{
if (($mfContents = @fgc($fmff)))
{
@ -114,9 +119,15 @@ function slurpmanifest()
unset($mfContents);
return get_lang('ManifestSyntax') . ' ' . htmlspecialchars($xht_doc->error);
}
else return get_lang('EmptyManifest');
else
{
return get_lang('EmptyManifest');
}
}
else
{
return get_lang('NoManifest');
}
else return get_lang('NoManifest');
}
if (isset($workWith)) // now checked to be a valid path in scormdocument

@ -6,11 +6,11 @@
*/
/**
==============================================================================
==============================================================================
* Dokeos Metadata: class mdobject for Scorm-type objects
*
* @package dokeos.metadata
==============================================================================
==============================================================================
*/
class mdobject
@ -71,7 +71,7 @@ function mdo_add_breadcrump_nav()
if (ereg('^(.+[^/\.]+)/[^/\.]+/[^/\.]+.[^/\.]+$', $docurl, $regs))
$docurl = $regs[1] . '/scorm/scormdocument.php';
$interbreadcrumb[] = array ('url' => $docurl,
$interbreadcrumb[] = array ('url' => $docurl,
'name' => get_lang('MdCallingTool'));
}
@ -79,24 +79,29 @@ function mdo_add_breadcrump_nav()
function mdobject($_course, $id)
{
global $ieee_dcmap_e, $ieee_dcmap_v; // md_funcs
$scormdocument = Database::get_course_table(TABLE_SCORMDOC);
$scormdocument = Database::get_course_table('lp');
$this->mdo_course = $_course; $this->mdo_type = 'Scorm';
$this->mdo_id = $id; $this->mdo_eid = $this->mdo_type . '.' . $id;
$this->mdo_dcmap_e = $ieee_dcmap_e; $this->mdo_dcmap_v = $ieee_dcmap_v;
if (($docinfo = @mysql_fetch_array(api_sql_query(
"SELECT path,comment,filetype FROM $scormdocument
WHERE id='" . addslashes($id) . "'",
__FILE__, __LINE__))))
$sql = "SELECT path,description,lp_type FROM $scormdocument WHERE id='" . addslashes($id) . "'";
if (($docinfo = @mysql_fetch_array(api_sql_query($sql,__FILE__, __LINE__))))
{
$this->mdo_path = $docinfo['path'];
$this->mdo_comment = $docinfo['comment'];
$this->mdo_filetype = $docinfo['filetype'];
$this->mdo_url = get_course_web() . $this->mdo_course['path'] .
//Sometimes the new scorm-tool adds '/.' at the end of a directory name, so remove this before continue
//the process -- bmol
if(substr($this->mdo_path,-2) == '/.')
{
$this->mdo_path = substr($this->mdo_path,0, strlen($this->mdo_path)-2);
}
$this->mdo_comment = $docinfo['description'];
//Don't think the next line is correct. There used to be a 'type' field in the scormdocument table.
//This metadata tool only works on folder types -- bmol
$this->mdo_filetype = ($docinfo['lp_type'] == 2 ? 'folder' : 'xxx');
$this->mdo_url = get_course_web() . $this->mdo_course['path'] .
'/scorm' . $this->mdo_path . '/index.php';
}
}

Loading…
Cancel
Save