diff options
| author | Sem <sembrestels@riseup.net> | 2012-11-18 16:07:31 +0100 | 
|---|---|---|
| committer | Sem <sembrestels@riseup.net> | 2012-11-18 16:07:31 +0100 | 
| commit | 7f4f57ef1ebd8b97370094da2518dd39e183a43d (patch) | |
| tree | e0a8518ee22c334ce5741c9247403cf09d179ec4 /engine/classes | |
| parent | 47aa87219deb97da16eabe03dee9179999faf2d7 (diff) | |
| parent | 6623571b615fc5c9d1b82e2607de4cdaee8a818b (diff) | |
| download | elgg-7f4f57ef1ebd8b97370094da2518dd39e183a43d.tar.gz elgg-7f4f57ef1ebd8b97370094da2518dd39e183a43d.tar.bz2 | |
Merge tag '1.8.9' of git://github.com/Elgg/Elgg into lorea-preprod
Elgg 1.8.9 release
Diffstat (limited to 'engine/classes')
| -rw-r--r-- | engine/classes/ElggMenuBuilder.php | 32 | ||||
| -rw-r--r-- | engine/classes/ElggMenuItem.php | 3 | ||||
| -rw-r--r-- | engine/classes/ElggObject.php | 2 | 
3 files changed, 27 insertions, 10 deletions
| diff --git a/engine/classes/ElggMenuBuilder.php b/engine/classes/ElggMenuBuilder.php index 06000c923..f43599999 100644 --- a/engine/classes/ElggMenuBuilder.php +++ b/engine/classes/ElggMenuBuilder.php @@ -204,6 +204,9 @@ class ElggMenuBuilder {  		// sort each section  		foreach ($this->menu as $index => $section) { +			foreach ($section as $key => $node) { +				$section[$key]->original_order = $key; +			}  			usort($section, $sort_callback);  			$this->menu[$index] = $section; @@ -232,10 +235,14 @@ class ElggMenuBuilder {  	 * @return bool  	 */  	public static function compareByText($a, $b) { -		$a = $a->getText(); -		$b = $b->getText(); +		$at = $a->getText(); +		$bt = $b->getText(); -		return strnatcmp($a, $b); +		$result = strnatcmp($at, $bt); +		if ($result === 0) { +			return $a->original_order - $b->original_order; +		} +		return $result;  	}  	/** @@ -246,10 +253,14 @@ class ElggMenuBuilder {  	 * @return bool  	 */  	public static function compareByName($a, $b) { -		$a = $a->getName(); -		$b = $b->getName(); +		$an = $a->getName(); +		$bn = $b->getName(); -		return strcmp($a, $b); +		$result = strcmp($an, $bn); +		if ($result === 0) { +			return $a->original_order - $b->original_order; +		} +		return $result;  	}  	/** @@ -260,9 +271,12 @@ class ElggMenuBuilder {  	 * @return bool  	 */  	public static function compareByWeight($a, $b) { -		$a = $a->getWeight(); -		$b = $b->getWeight(); +		$aw = $a->getWeight(); +		$bw = $b->getWeight(); -		return $a > $b; +		if ($aw == $bw) { +			return $a->original_order - $b->original_order; +		} +		return $aw - $bw;  	}  } diff --git a/engine/classes/ElggMenuItem.php b/engine/classes/ElggMenuItem.php index 4bc9144d4..fe25f3ddd 100644 --- a/engine/classes/ElggMenuItem.php +++ b/engine/classes/ElggMenuItem.php @@ -542,6 +542,9 @@ class ElggMenuItem {  	 * @return void  	 */  	public function sortChildren($sortFunction) { +		foreach ($this->data['children'] as $key => $node) { +			$this->data['children'][$key]->original_order = $key; +		}  		usort($this->data['children'], $sortFunction);  	} diff --git a/engine/classes/ElggObject.php b/engine/classes/ElggObject.php index b4bae6825..fa6296c8c 100644 --- a/engine/classes/ElggObject.php +++ b/engine/classes/ElggObject.php @@ -223,7 +223,7 @@ class ElggObject extends ElggEntity {  		// must be member of group  		if (elgg_instanceof($this->getContainerEntity(), 'group')) { -			if (!$this->getContainerEntity()->canWriteToContainer(get_user($user_guid))) { +			if (!$this->getContainerEntity()->canWriteToContainer($user_guid)) {  				return false;  			}  		} | 
