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; }
<?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); }