/** * This returns all metadata for the document. * * <code> * $ktapi = new KTAPI(); * $session = $ktapi->start_system_session(); * $document = $ktapi->get_document_by_id($documentid); * $metadata = $document->get_metadata(); * foreach($metadata as $fieldset){ * echo '<br><br>Fieldset: '.$fieldset['fieldset']; * * foreach($fieldset['fields'] as $field){ * echo '<br>Field name: '.$field['name'] . ' Value: '. $field['value']; * } * } * </code> * * @author KnowledgeTree Team * @access public * @return array An array of metadata fieldsets and fields */ function get_metadata() { $doctypeid = $this->document->getDocumentTypeID(); $fieldsets = (array) KTMetadataUtil::fieldsetsForDocument($this->document, $doctypeid); if (is_null($fieldsets) || PEAR::isError($fieldsets)) { return array(); } $results = array(); foreach ($fieldsets as $fieldset) { if ($fieldset->getIsConditional()) { /* this is not implemented...*/ continue; } $fields = $fieldset->getFields(); $result = array('fieldset' => $fieldset->getName(), 'description' => $fieldset->getDescription()); $fieldsresult = array(); foreach ($fields as $field) { $value = ''; $fieldvalue = DocumentFieldLink::getByDocumentAndField($this->document, $field); if (!is_null($fieldvalue) && !PEAR::isError($fieldvalue)) { $value = $fieldvalue->getValue(); } $controltype = 'string'; if ($field->getHasLookup()) { $controltype = 'lookup'; if ($field->getHasLookupTree()) { $controltype = 'tree'; } } switch ($controltype) { case 'lookup': $selection = KTAPI::get_metadata_lookup($field->getId()); break; case 'tree': $selection = KTAPI::get_metadata_tree($field->getId()); break; default: $selection = array(); } $fieldsresult[] = array('name' => $field->getName(), 'required' => $field->getIsMandatory(), 'value' => $value == '' ? 'n/a' : $value, 'blankvalue' => $value == '' ? '1' : '0', 'description' => $field->getDescription(), 'control_type' => $controltype, 'selection' => $selection); } $result['fields'] = $fieldsresult; $results[] = $result; } return $results; }
/** * This returns a metadata tree or an error object. * * @author KnowledgeTree Team * @access private * @param integer $fieldid The field id of the document to get data for * @param integer $parentid The id of the parent of the metadata tree * @return array|object $results SUCCESS - the array of metadata for the field | FAILURE - an error object */ private function _load_metadata_tree($fieldid, $parentid = 0) { $results = KTAPI::get_metadata_lookup($fieldid); return $results; /* $sql = "SELECT id, name FROM metadata_lookup_tree WHERE document_field_id=$fieldid AND metadata_lookup_tree_parent=$parentid"; $rows = DBUtil::getResultArray($sql); if (is_null($rows) || PEAR::isError($rows)) { return new PEAR_Error(KTAPI_ERROR_INTERNAL_ERROR); } $results=array(); foreach($rows as $row) { $result=array( 'name' => $row['name'], 'children' => load($fieldid, $row['id']) ); $results[] = $result; } return $results;*/ }