dokeos-metadata
[ class tree: dokeos-metadata ] [ index: dokeos-metadata ] [ all elements ]

Source for file mdApiTest.php

Documentation is available at mdApiTest.php

  1. <?php /*                                                  <!-- mdApiTest.php -->
  2.                                                              <!-- 2004/09/30 -->
  3.  
  4. <!-- Copyright (C) 2004 rene.haentjens@UGent.be -  see metadata/md_funcs.php -->
  5.  
  6. */
  7.  
  8. /**
  9. ============================================================================== 
  10. *    Dokeos Metadata: MD API test and demo
  11. *
  12. *   The API allows other Dokeos scripts to define & manipulate metadata
  13. *
  14. *   In this example, MD is defined for 'Document.1001', 1002, 1003
  15. *
  16. *    @package dokeos.metadata
  17. ============================================================================== 
  18. */
  19.  
  20. require("../md_funcs.php");
  21.  
  22. define('EID_TYPE''Document');
  23. require('../md_' strtolower(EID_TYPE'.php');
  24.  
  25. // name of the language file that needs to be included 
  26. $language_file 'Whatever'
  27. require("../../inc/global.inc.php");
  28.  
  29. isset($_courseor give_up("Select a course first...");
  30.  
  31. $is_allowed_to_edit = isset($_user['user_id']&& $is_courseMember && is_allowed_to_edit();
  32. if (!$is_allowed_to_editgive_up("You're not allowed to edit...");
  33.  
  34. $mdStore new mdstore($is_allowed_to_edit);  // create table if needed
  35.  
  36. require(api_get_path(LIBRARY_PATH'xmd.lib.php')// mds_update_xml_and_mdt
  37. require(api_get_path(LIBRARY_PATH'xht.lib.php')// mdo_generate_default_xml_metadata
  38.  
  39. $noPHP_SELF TRUE;
  40. Display::display_header($nameTools)echo "\n";
  41.  
  42. // if the language file in use is not 'md_' . EID_TYPE ...
  43. $langMdTitle =          'Default Title (if doc not in DB)';
  44. $langMdDescription =    'Default description (if doc has no comment)';
  45. $langMdCoverage =       'bachelor of engineering';
  46. $langMdCopyright =      'Ghent University';
  47.  
  48.  
  49. foreach(array(100110021003as $eid_id)
  50. {
  51.     $mdObj new mdobject($_course$eid_id);  // see 'md_' . EID_TYPE . '.php'
  52.     $eid $mdObj->mdo_eid;
  53.     
  54.     $titlePath $mdObj->mdo_dcmap_v['Title'];   // no IEEE dependencies here...
  55.     
  56.     if (($mdt_rec $mdStore->mds_get($eid)) === FALSE)
  57.     {
  58.          $mdt $mdObj->mdo_generate_default_xml_metadata();
  59.          
  60.          $xmlDoc new xmddoc(explode("\n"$mdt));
  61.          if (!$xmlDoc->error)
  62.          {
  63.              echo htmlspecialchars($titlePath)': ';
  64.              $mdTitle $xmlDoc->xmd_value($titlePath);
  65.              if ($mdTitle == $langMdTitle)
  66.              {
  67.                  $mdTitle EID_TYPE ' ' $eid_id;
  68.                  $xmlDoc->xmd_update($titlePath$mdTitle);
  69.                  $mdt $xmlDoc->xmd_xml();
  70.              }
  71.              echo htmlspecialchars($mdTitle)':';
  72.          }
  73.  
  74.          $mdStore->mds_put($eid$mdt'mdxmltext'FALSE);
  75.          echo '<a href="../index.php?eid='urlencode($eid)'">'
  76.             htmlspecialchars($eid)'</a><br>';
  77.     }
  78. }
  79. echo '<br>';
  80.  
  81.  
  82. $xmlDoc new xmddoc(explode("\n"$mdStore->mds_get($eid EID_TYPE '.1002')));
  83. if ($xmlDoc->errorgive_up($xmlDoc->error);
  84.  
  85. $mdObj new mdobject($_course'1002');
  86. $mda "~~";  // delete metadata of 'Document.1002'
  87. $mdt $mdStore->mds_update_xml_and_mdt($mdObj$xmlDoc$mda$eid$trace);
  88. // note: $xmlDoc and $trace are passed by reference...
  89.  
  90.  
  91. $mdObj new mdobject($_course'1003');
  92. $xmlDoc new xmddoc(explode("\n"$mdStore->mds_get($eid EID_TYPE '.1003')));
  93. if ($xmlDoc->errorgive_up($xmlDoc->error);
  94.  
  95. $map_lang 'string/@language';
  96. $dcmap_e_kwplace 'metadata/lom/general'$dcmap_e_kwelem 'keyword';
  97. $dcmap_e_keyword $dcmap_e_kwplace '/' $dcmap_e_kwelem;
  98.  
  99. $mda =  $mdObj->mdo_dcmap_v['Description''=Nouvelle description' 
  100.         "\n" $mdObj->mdo_dcmap_e['Coverage'"~" 
  101.         "\n" $dcmap_e_kwplace '!' $dcmap_e_kwelem 
  102.         "\n" $dcmap_e_keyword "[-1]!string=afrique" 
  103.         "\n" $dcmap_e_keyword "[-1]/" $map_lang "=en" 
  104.         "\n" $mdObj->mdo_dcmap_e['Title'',' 
  105.             $mdObj->mdo_dcmap_e['Description'',' 
  106.             $dcmap_e_keyword ";" $map_lang "=fr" 
  107.         "";  // update metadata of 'Document.1003' - see md_funcs
  108.         // note we don't go far with IEEE independence...
  109. $mdt $mdStore->mds_update_xml_and_mdt($mdObj$xmlDoc$mda$eid$trace);
  110.  
  111. echo htmlspecialchars($trace)'<br><br>';
  112.  
  113.  
  114. // The simplest API calls: store and fetch DC metadata element values:
  115.  
  116. $mdObj new mdobject($_course'1003');
  117. $mdStore->mds_put_dc_elements($mdObjarray('Coverage' => 'broad...''Type' => 'aggressive text'));
  118. // Coverage won't work, because that element has been removed above...
  119. $dcelem $mdStore->mds_get_dc_elements($mdObj);
  120. foreach (array('Identifier''Title''Language''Description''Coverage'
  121.                         'Type''Date''Creator''Format''Rights'as $dce)
  122. {
  123.     echo $dce'= 'htmlspecialchars($dcelem[$dce])'<br>';
  124. }
  125.  
  126. echo '<br>';
  127.  
  128. $mdObj new mdobject($_course'1002');
  129. $mdStore->mds_put_dc_elements($mdObjarray('Coverage' => 'broad...'));
  130. $dcelem $mdStore->mds_get_dc_elements($mdObj);
  131. foreach (array('Identifier''Title''Language''Description''Coverage'
  132.                         'Type''Date''Creator''Format''Rights'as $dce)
  133. {
  134.     echo $dce'= 'htmlspecialchars($dcelem[$dce])'<br>';
  135. }
  136.  
  137. echo '<br>';
  138.  
  139. $mdStore->mds_append(EID_TYPE '.1001'' search words');
  140. $mdStore->mds_append(EID_TYPE '.1001'' more findable terms');
  141.  
  142.  
  143. ?>

Documentation generated on Thu, 12 Jun 2008 14:05:14 -0500 by phpDocumentor 1.4.1