diff options
Diffstat (limited to 'engine/classes/ElggEntity.php')
| -rw-r--r-- | engine/classes/ElggEntity.php | 16 | 
1 files changed, 9 insertions, 7 deletions
diff --git a/engine/classes/ElggEntity.php b/engine/classes/ElggEntity.php index 31885ad25..79b8c2a4e 100644 --- a/engine/classes/ElggEntity.php +++ b/engine/classes/ElggEntity.php @@ -246,18 +246,20 @@ abstract class ElggEntity extends ElggData implements  	 * @return mixed The value, or NULL if not found.  	 */  	public function getMetaData($name) { -		if ((int) ($this->guid) > 0) { -			$md = elgg_get_metadata(array( -				'guid' => $this->getGUID(), -				'metadata_name' => $name, -				'limit' => 0, -			)); -		} else { +		if ((int) ($this->guid) == 0) {  			if (isset($this->temp_metadata[$name])) {  				return $this->temp_metadata[$name]; +			} else { +				return null;  			}  		} +		$md = elgg_get_metadata(array( +			'guid' => $this->getGUID(), +			'metadata_name' => $name, +			'limit' => 0, +		)); +  		if ($md && !is_array($md)) {  			return $md->value;  		} elseif (count($md) == 1) {  | 
