create() public method

Metadata can be an array by setting allow_multiple to true, but it is an indexed array with no control over the indexing.
public create ( integer $entity_guid, string $name, string $value, string $value_type = '', integer $owner_guid, integer $access_id = ACCESS_PRIVATE, boolean $allow_multiple = false ) : integer | false
$entity_guid integer The entity to attach the metadata to
$name string Name of the metadata
$value string Value of the metadata
$value_type string 'text', 'integer', or '' for automatic detection
$owner_guid integer GUID of entity that owns the metadata. Default is logged in user.
$access_id integer Default is ACCESS_PRIVATE
$allow_multiple boolean Allow multiple values for one key. Default is false
return integer | false id of metadata or false if failure
Beispiel #1
0
 /**
  * {@inheritdoc}
  */
 public function create($entity_guid, $name, $value, $value_type = '', $owner_guid = 0, $access_id = ACCESS_PRIVATE, $allow_multiple = false)
 {
     $entity = get_entity((int) $entity_guid);
     if (!$entity) {
         return false;
     }
     if (!isset($value)) {
         return false;
     }
     $owner_guid = (int) $owner_guid;
     if ($owner_guid == 0) {
         $owner_guid = $this->session->getLoggedInUserGuid();
     }
     $access_id = (int) $access_id;
     $this->iterator++;
     $id = $this->iterator;
     $time = $this->getCurrentTime()->getTimestamp();
     $row = (object) ['type' => 'metadata', 'id' => $id, 'entity_guid' => $entity->guid, 'owner_guid' => $owner_guid, 'name' => $name, 'value' => $value, 'time_created' => $this->getCurrentTime()->getTimestamp(), 'access_id' => (int) $access_id, 'value_type' => detect_extender_valuetype($value, $this->db->sanitizeString(trim($value_type)))];
     $this->rows[$id] = $row;
     $this->addQuerySpecs($row);
     return parent::create($entity_guid, $name, $value, $value_type, $owner_guid, $access_id, $allow_multiple);
 }