Code Duplication    Length = 36-39 lines in 2 locations

api/src/Mail/Imap.php 1 location

@@ 961-996 (lines=36) @@
958
	 *
959
	 * @return array array(prefix_present=>mixed (bool/string) ,prefix=>string,delimiter=>string,type=>string (personal|others|shared))
960
	 */
961
	function getNameSpace()
962
	{
963
		static $nameSpace=null;
964
		$foldersNameSpace = array();
965
		$delimiter = $this->getDelimiter();
966
		if (empty($delimiter)) $delimiter='/';
967
		if (is_null($nameSpace)) $nameSpace = $this->getNameSpaceArray();
968
		if (is_array($nameSpace)) {
969
			foreach($nameSpace as $type => $singleNameSpaceArray)
970
			{
971
				foreach ($singleNameSpaceArray as $singleNameSpace)
972
				{
973
					$_foldersNameSpace = array();
974
					if($type == 'personal' && $singleNameSpace['name'] == '#mh/' && ($this->folderExists('Mail')||$this->folderExists('INBOX')))
975
					{
976
						$_foldersNameSpace['prefix_present'] = 'forced';
977
						// uw-imap server with mailbox prefix or dovecot maybe
978
						$_foldersNameSpace['prefix'] = ($this->folderExists('Mail')?'Mail':(!empty($singleNameSpace['name'])?$singleNameSpace['name']:''));
979
					}
980
					elseif($type == 'personal' && ($singleNameSpace['name'] == '#mh/') && $this->folderExists('mail'))
981
					{
982
						$_foldersNameSpace['prefix_present'] = 'forced';
983
						// uw-imap server with mailbox prefix or dovecot maybe
984
						$_foldersNameSpace['prefix'] = 'mail';
985
					} else {
986
						$_foldersNameSpace['prefix_present'] = !empty($singleNameSpace['name']);
987
						$_foldersNameSpace['prefix'] = $singleNameSpace['name'];
988
					}
989
					$_foldersNameSpace['delimiter'] = ($singleNameSpace['delimiter']?$singleNameSpace['delimiter']:$delimiter);
990
					$_foldersNameSpace['type'] = $type;
991
					$foldersNameSpace[] =$_foldersNameSpace;
992
				}
993
			}
994
		}
995
		return $foldersNameSpace;
996
	}
997
998
	/**
999
	 * return the delimiter used by the current imap server

api/src/Mail.php 1 location

@@ 991-1029 (lines=39) @@
988
	 *
989
	 * @return array array(prefix_present=>mixed (bool/string) ,prefix=>string,delimiter=>string,type=>string (personal|others|shared))
990
	 */
991
	function _getNameSpaces()
992
	{
993
		static $nameSpace = null;
994
		$foldersNameSpace = array();
995
		$delimiter = $this->getHierarchyDelimiter();
996
		// TODO: cache by $this->icServer->ImapServerId
997
		if (is_null($nameSpace)) $nameSpace = $this->icServer->getNameSpaceArray();
998
		//error_log(__METHOD__.' ('.__LINE__.') '.array2string($nameSpace));
999
		if (is_array($nameSpace)) {
1000
			foreach($nameSpace as $type => $singleNameSpaceArray)
1001
			{
1002
				foreach ($singleNameSpaceArray as $singleNameSpace)
1003
				{
1004
					$_foldersNameSpace = array();
1005
					if($type == 'personal' && $singleNameSpace['name'] == '#mh/' && ($this->folderExists('Mail')||$this->folderExists('INBOX')))
1006
					{
1007
						$_foldersNameSpace['prefix_present'] = 'forced';
1008
						// uw-imap server with mailbox prefix or dovecot maybe
1009
						$_foldersNameSpace['prefix'] = ($this->folderExists('Mail')?'Mail':(!empty($singleNameSpace['name'])?$singleNameSpace['name']:''));
1010
					}
1011
					elseif($type == 'personal' && ($singleNameSpace['name'] == '#mh/') && $this->folderExists('mail'))
1012
					{
1013
						$_foldersNameSpace['prefix_present'] = 'forced';
1014
						// uw-imap server with mailbox prefix or dovecot maybe
1015
						$_foldersNameSpace['prefix'] = 'mail';
1016
					} else {
1017
						$_foldersNameSpace['prefix_present'] = !empty($singleNameSpace['name']);
1018
						$_foldersNameSpace['prefix'] = $singleNameSpace['name'];
1019
					}
1020
					$_foldersNameSpace['delimiter'] = ($singleNameSpace['delimiter']?$singleNameSpace['delimiter']:$delimiter);
1021
					$_foldersNameSpace['type'] = $type;
1022
					$foldersNameSpace[] =$_foldersNameSpace;
1023
				}
1024
				//echo "############## $type->".print_r($foldersNameSpace[$type],true)." ###################<br>";
1025
			}
1026
		}
1027
		//error_log(__METHOD__.' ('.__LINE__.') '.array2string($foldersNameSpace));
1028
		return $foldersNameSpace;
1029
	}
1030
1031
	/**
1032
	 * Wrapper to extract the folder prefix from folder compared to given namespace array