예제 #1
0
 function saveMetadata(&$oDocument, $aMetadata, $aOptions = null)
 {
     $table = 'document_fields_link';
     $bNoValidate = KTUtil::arrayGet($aOptions, 'novalidate', false);
     if ($bNoValidate !== true) {
         $res = KTDocumentUtil::validateMetadata($oDocument, $aMetadata);
         if (PEAR::isError($res)) {
             return $res;
         }
         $aMetadata = empty($res) ? array() : $res;
     }
     $iMetadataVersionId = $oDocument->getMetadataVersionId();
     $res = DBUtil::runQuery(array("DELETE FROM {$table} WHERE metadata_version_id = ?", array($iMetadataVersionId)));
     if (PEAR::isError($res)) {
         return $res;
     }
     // XXX: Metadata refactor
     foreach ($aMetadata as $aInfo) {
         list($oMetadata, $sValue) = $aInfo;
         if (is_null($oMetadata)) {
             continue;
         }
         $res = DBUtil::autoInsert($table, array('metadata_version_id' => $iMetadataVersionId, 'document_field_id' => $oMetadata->getID(), 'value' => $sValue));
         if (PEAR::isError($res)) {
             return $res;
         }
     }
     KTDocumentUtil::setComplete($oDocument, 'metadata');
     DocumentFieldLink::clearAllCaches();
     return true;
 }
예제 #2
0
<?php

require_once "../../config/dmsDefaults.php";
require_once KT_LIB_DIR . '/documentmanagement/documentutil.inc.php';
require_once KT_LIB_DIR . '/filelike/fsfilelike.inc.php';
$oDocument =& Document::get(22);
if (PEAR::isError($oDocument)) {
    print "FAILURE\n";
    var_dump($oDocument);
}
$res = KTDocumentUtil::validateMetadata($oDocument, array());
if (PEAR::isError($res)) {
    print "FAILURE\n";
    var_dump($res->aFailed);
    exit(0);
}