public function fetch($sName = null, $bMainCall = true) 
	{
		if ($this->_bIsMobile) {

			if ($sName) {

				$sMobileTpl = self::$_sBasePath.str_replace('.tpl', 'Mobile.tpl', $sName);
				if (file_exists($sMobileTpl)) { $sName = str_replace('.tpl', 'Mobile.tpl', $sName); }
			}

			if (isset($this->_aVar['model'])) {

				$sMobileTpl = self::$_sBasePath.str_replace('.tpl', 'Mobile.tpl', $this->_aVar['model']);
				if (file_exists($sMobileTpl)) { $this->_aVar['model'] = str_replace('.tpl', 'Mobile.tpl', $this->_aVar['model']); }
			}
		}

		if ($sName !== null) { $this->_sTemplateName = $sName; }

		ob_start();

		if (file_exists(self::$_sBasePath . $this->_sTemplateName)) {

			$iFileModificationTime = filemtime(self::$_sBasePath . $this->_sTemplateName);
		}
		else {
			//faire une erreur
		}

		if (file_exists(self::$_sCachePath.$this->_getEncodeTemplateName($this->_sTemplateName).'.cac.php')) {

			$iCacheModificationTime = filemtime(self::$_sCachePath.$this->_getEncodeTemplateName($this->_sTemplateName).'.cac.php');
		}
		else {

			$iCacheModificationTime = 0;
		}

		if ($iCacheModificationTime < $iFileModificationTime) {

			$sTemplate = file_get_contents(self::$_sBasePath.$this->_sTemplateName);
			$this->_transform($sTemplate, $this->_sTemplateName, $bMainCall, true);
		}
		else {

			$sTemplate = file_get_contents(self::$_sBasePath.$this->_sTemplateName);
			$this->_transform($sTemplate, $this->_sTemplateName, $bMainCall, false);
		}

		return ob_get_clean();
	}