Ejemplo n.º 1
0
 function setMetadataValuesFromUserInput(&$item, $itemArray, $metadataArray)
 {
     $mdvFactory = new Docman_MetadataValueFactory($this->groupId);
     $mdFactory = new Docman_MetadataFactory($this->groupId);
     $mdIter =& $item->getMetadataIterator();
     $mdIter->rewind();
     while ($mdIter->valid()) {
         $md =& $mdIter->current();
         $value = $this->getValueInArrays($md->getLabel(), $itemArray, $metadataArray);
         if ($value !== null) {
             $mdv = $mdvFactory->newMetadataValue($item->getId(), $md->getId(), $md->getType(), $value);
             $val = $mdv->getValue();
             $mdvFactory->validateInput($md, $val);
             $md->setValue($val);
             // Take care to update hardcoded values too.
             if ($mdFactory->isHardCodedMetadata($md->getLabel())) {
                 $item->updateHardCodedMetadata($md);
             }
         }
         $mdIter->next();
     }
 }