|  |  |  | @ -333,7 +333,20 @@ abstract class Module extends Component | 
			
		
	
		
			
				
					|  |  |  |  | 	 */ | 
			
		
	
		
			
				
					|  |  |  |  | 	public function hasModule($id) | 
			
		
	
		
			
				
					|  |  |  |  | 	{ | 
			
		
	
		
			
				
					|  |  |  |  | 		if (strpos($id, '/') === false) { | 
			
		
	
		
			
				
					|  |  |  |  | 			return isset($this->_modules[$id]); | 
			
		
	
		
			
				
					|  |  |  |  | 		} else { | 
			
		
	
		
			
				
					|  |  |  |  | 			// it's a sub-module | 
			
		
	
		
			
				
					|  |  |  |  | 			$ids = explode('/', $id); | 
			
		
	
		
			
				
					|  |  |  |  | 			$module = $this; | 
			
		
	
		
			
				
					|  |  |  |  | 			foreach ($ids as $id) { | 
			
		
	
		
			
				
					|  |  |  |  | 				if (!isset($module->_modules[$id])) { | 
			
		
	
		
			
				
					|  |  |  |  | 					return false; | 
			
		
	
		
			
				
					|  |  |  |  | 				} | 
			
		
	
		
			
				
					|  |  |  |  | 				$module = $module->getModule($id); | 
			
		
	
		
			
				
					|  |  |  |  | 			} | 
			
		
	
		
			
				
					|  |  |  |  | 			return true; | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	/** | 
			
		
	
	
		
			
				
					|  |  |  | @ -345,6 +358,7 @@ abstract class Module extends Component | 
			
		
	
		
			
				
					|  |  |  |  | 	 */ | 
			
		
	
		
			
				
					|  |  |  |  | 	public function getModule($id, $load = true) | 
			
		
	
		
			
				
					|  |  |  |  | 	{ | 
			
		
	
		
			
				
					|  |  |  |  | 		if (strpos($id, '/') === false) { | 
			
		
	
		
			
				
					|  |  |  |  | 			if (isset($this->_modules[$id])) { | 
			
		
	
		
			
				
					|  |  |  |  | 				if ($this->_modules[$id] instanceof Module) { | 
			
		
	
		
			
				
					|  |  |  |  | 					return $this->_modules[$id]; | 
			
		
	
	
		
			
				
					|  |  |  | @ -353,6 +367,15 @@ abstract class Module extends Component | 
			
		
	
		
			
				
					|  |  |  |  | 					return $this->_modules[$id] = Yii::createObject($this->_modules[$id], $id, $this); | 
			
		
	
		
			
				
					|  |  |  |  | 				} | 
			
		
	
		
			
				
					|  |  |  |  | 			} | 
			
		
	
		
			
				
					|  |  |  |  | 		} else { | 
			
		
	
		
			
				
					|  |  |  |  | 			// it's a sub-module | 
			
		
	
		
			
				
					|  |  |  |  | 			$ids = explode('/', $id); | 
			
		
	
		
			
				
					|  |  |  |  | 			$module = $this; | 
			
		
	
		
			
				
					|  |  |  |  | 			foreach ($ids as $id) { | 
			
		
	
		
			
				
					|  |  |  |  | 				$module = $module->getModule($id); | 
			
		
	
		
			
				
					|  |  |  |  | 			} | 
			
		
	
		
			
				
					|  |  |  |  | 			return $module; | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 		return null; | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  |  | 
 |