Example #1
0
 function &getGeneral()
 {
     include_once 'Services/Migration/DBUpdate_426/classes/class.ilMDGeneral.php';
     if ($id = ilMDGeneral::_getId($this->getRBACId(), $this->getObjId())) {
         $gen =& new ilMDGeneral();
         $gen->setMetaId($id);
         return $gen;
     }
     return false;
 }
Example #2
0
 /**
  * test General
  * @group IL_Init
  * @return
  */
 public function testGeneral()
 {
     include_once './Services/MetaData/classes/class.ilMDGeneral.php';
     include_once 'Services/MetaData/classes/class.ilMDLanguageItem.php';
     $con = new ilMDGeneral(1, 2, 'xxx');
     $con->setCoverage('Easy');
     $ret = $con->save();
     $this->assertGreaterThan(0, $ret);
     $con->setCoverage('Medium');
     $con->update();
     $con->read();
     $desc = $con->getCoverage();
     $this->assertEquals('Medium', $desc);
     $con->delete();
 }
Example #3
0
 /**
  * Update keywords from input array
  * @param ilMDGeneral $a_md_section
  * @param array $a_keywords lang => keywords
  */
 public static function updateKeywords(ilMDGeneral $a_md_section, array $a_keywords)
 {
     // trim keywords
     $new_keywords = array();
     foreach ($a_keywords as $lang => $keywords) {
         foreach ($keywords as $keyword) {
             $keyword = trim($keyword);
             if ($keyword != "" && !(is_array($new_keywords[$lang]) && in_array($keyword, $new_keywords[$lang]))) {
                 $new_keywords[$lang][] = $keyword;
             }
         }
     }
     // update existing author entries (delete if not entered)
     foreach ($ids = $a_md_section->getKeywordIds() as $id) {
         $md_key = $a_md_section->getKeyword($id);
         $lang = $md_key->getKeywordLanguageCode();
         // entered keyword already exists
         if (is_array($new_keywords[$lang]) && in_array($md_key->getKeyword(), $new_keywords[$lang])) {
             unset($new_keywords[$lang][array_search($md_key->getKeyword(), $new_keywords[$lang])]);
         } else {
             $md_key->delete();
         }
     }
     // insert entered, but not existing keywords
     foreach ($new_keywords as $lang => $key_arr) {
         foreach ($key_arr as $keyword) {
             if ($keyword != "") {
                 $md_key = $a_md_section->addKeyword();
                 $md_key->setKeyword(ilUtil::stripSlashes($keyword));
                 $md_key->setKeywordLanguage(new ilMDLanguageItem($lang));
                 $md_key->save();
             }
         }
     }
 }
 function toXML(&$writer)
 {
     $writer->xmlStartTag('MetaData');
     // General
     if (is_object($gen =& $this->getGeneral())) {
         $gen->setExportMode($this->getExportMode());
         $gen->toXML($writer);
     } else {
         // Defaults
         include_once 'Services/MetaData/classes/class.ilMDGeneral.php';
         $gen = new ilMDGeneral($this->getRBACId(), $this->getObjId(), $this->getObjType());
         // added type, alex, 31 Oct 2007
         $gen->setExportMode($this->getExportMode());
         $gen->toXML($writer);
     }
     // Lifecycle
     if (is_object($lif =& $this->getLifecycle())) {
         $lif->toXML($writer);
     }
     // Meta-Metadata
     if (is_object($met =& $this->getMetaMetadata())) {
         $met->toXML($writer);
     }
     // Technical
     if (is_object($tec =& $this->getTechnical())) {
         $tec->toXML($writer);
     }
     // Educational
     if (is_object($edu =& $this->getEducational())) {
         $edu->toXML($writer);
     }
     // Rights
     if (is_object($rig =& $this->getRights())) {
         $rig->toXML($writer);
     }
     // Relations
     foreach ($this->getRelationIds() as $id) {
         $rel =& $this->getRelation($id);
         $rel->toXML($writer);
     }
     // Annotations
     foreach ($this->getAnnotationIds() as $id) {
         $ann =& $this->getAnnotation($id);
         $ann->toXML($writer);
     }
     // Classification
     foreach ($this->getClassificationIds() as $id) {
         $cla =& $this->getClassification($id);
         $cla->toXML($writer);
     }
     $writer->xmlEndTag('MetaData');
 }