baser/views/helpers/bc_app_helper.php
/**
 * Checks if a file exists when theme is used, if no file is found default location is returned
 *
 * PENDING Core Hack
 *
 * @param  string  $file
 * @return string  $webPath web path to file.
 */
Checks if a file exists when theme is used, if no file is found default location is returned
PENDING Core Hack

@param  string  $file
@return string  $webPath web path to file.
Checks if a file exists when theme is used if no file is found default location is returned PENDING Core Hack @param string $file @return string $webPath web path to file .
function webroot($file) {
		$dir = Configure::read('App.dir');
		$webroot = Configure::read('App.webroot');
		$baseUrl = Configure::read('App.baseUrl');
		if($baseUrl) {
			switch (BC_DEPLOY_PATTERN) {
				case 1:
					if (strpos($this->webroot, $dir) === false) {
						$this->webroot .= $dir . '/' ;
					}
					if (strpos($this->webroot, $webroot) === false) {
						$this->webroot .= $webroot . '/';
					}
					break;
				case 2:
					$baseDir = str_replace('index.php', '', $baseUrl);
					$this->webroot = $baseDir;
					break;
			}
		}
		 CUSTOMIZE MODIFY 2010/02/12 ryuring
		 ファイルの存在チェックを行い存在しない場合のみRouterを利用するように変更した。
		 CUSTOMIZE MODIFY 2011/04/11 ryuring
		 Rewriteモジュールが利用できない場合、画像等で出力されるURL形式（/app/webroot/img/...）が
		 $file に設定された場合でもパス解決ができるようにした。
		 $webPath = "{$this->webroot}" . $file;
		 ---
		$filePath = str_replace('/', DS, $file);
		$docRoot = docRoot();
		if(file_exists(WWW_ROOT . $filePath)) {
			$webPath = $this->webroot.$file;
		} elseif(file_exists($docRoot.DS.$filePath) && strpos($docRoot.DS.$filePath, ROOT.DS) !== false) {
			 ※ ファイルのパスが ROOT 配下にある事が前提
			$webPath = $file;
		} else {
			$webPath = Router::url('/'.$file);
		}
		 <<<
		if (!empty($this->themeWeb)) {
			$os = env('OS');
			if (!empty($os) && strpos($os, 'Windows') !== false) {
				if (strpos(WWW_ROOT . $this->themeWeb  . $filePath, '\\') !== false) {
					$path = str_replace('/', '\\', WWW_ROOT . $this->themeWeb  . $filePath);
				}
			} else {
				$path = WWW_ROOT . $this->themeWeb  . $filePath;
			}
			if (file_exists($path)) {
				$webPath = "{$this->webroot}" . $this->themeWeb . $file;
			}
		}
		if (strpos($webPath, '') !== false) {
			return str_replace('', '/', $webPath);
		}
		 CUSTOMIZE ADD 2010/02/12 ryuring
		if (strpos($webPath, '\\') !== false) {
			$webPath = str_replace("\\",'/',$webPath);
		}
		 <<<
		return $webPath;
	}
function webroot ( $ file ) { $ dir = Configure :: read ( 'App.dir' ) ; $ webroot = Configure :: read ( 'App.webroot' ) ; $ baseUrl = Configure :: read ( 'App.baseUrl' ) ; if ( $ baseUrl ) { switch ( BC_DEPLOY_PATTERN ) { case 1 : if ( strpos ( $ this -> webroot , $ dir ) === false ) { $ this -> webroot .= $ dir . '/' ; } if ( strpos ( $ this -> webroot , $ webroot ) === false ) { $ this -> webroot .= $ webroot . '/' ; } break ; case 2 : $ baseDir = str_replace ( 'index.php' , '' , $ baseUrl ) ; $ this -> webroot = $ baseDir ; break ; } } $ filePath = str_replace ( '/' , DS , $ file ) ; $ docRoot = docRoot ( ) ; if ( file_exists ( WWW_ROOT . $ filePath ) ) { $ webPath = $ this -> webroot . $ file ; } elseif ( file_exists ( $ docRoot . DS . $ filePath ) && strpos ( $ docRoot . DS . $ filePath , ROOT . DS ) !== false ) { $ webPath = $ file ; } else { $ webPath = Router :: url ( '/' . $ file ) ; } if ( ! empty ( $ this -> themeWeb ) ) { $ os = env ( 'OS' ) ; if ( ! empty ( $ os ) && strpos ( $ os , 'Windows' ) !== false ) { if ( strpos ( WWW_ROOT . $ this -> themeWeb . $ filePath , '\\' ) !== false ) { $ path = str_replace ( '/' , '\\' , WWW_ROOT . $ this -> themeWeb . $ filePath ) ; } } else { $ path = WWW_ROOT . $ this -> themeWeb . $ filePath ; } if ( file_exists ( $ path ) ) { $ webPath = " { $ this -> webroot } " . $ this -> themeWeb . $ file ; } } if ( strpos ( $ webPath , '//' ) !== false ) { return str_replace ( '//' , '/' , $ webPath ) ; } if ( strpos ( $ webPath , '\\' ) !== false ) { $ webPath = str_replace ( " \\ " , '/' , $ webPath ) ; } return $ webPath ; }
Checks if a file exists when theme is used, if no file is found default location is returned
 PENDING Core Hack
Checks if a file exists when theme is used if no file is found default location is returned PENDING Core Hack
// CUSTOMIZE ADD 2010/05/19 ryuring // CakePHP1.2.6以降、Rewriteモジュールを利用せず、App.baseUrlを利用した場合、 // Dispatcherでwebrootが正常に取得できなくなってしまったので、ここで再設定する // CUSTOMIZE MODIFY 2011/03/17 ryuring // BC_DEPLOY_PATTERN 2 について対応 // >>> //<<< // CUSTOMIZE MODIFY 2009/10/6 ryuring // Rewriteモジュールが利用できない場合、$html->css / $javascript->link では、 // app/webroot/を付加してURLを生成してしまう為、vendors 内のパス解決ができない。 // URLの取得方法をRouterに変更 // Dispatcherクラスのハックが必須 // // CUSTOMIZE MODIFY 2010/02/12 ryuring // ファイルの存在チェックを行い存在しない場合のみRouterを利用するように変更した。 // // CUSTOMIZE MODIFY 2011/04/11 ryuring // Rewriteモジュールが利用できない場合、画像等で出力されるURL形式（/app/webroot/img/...）が // $file に設定された場合でもパス解決ができるようにした。 // // >>> // $webPath = "{$this->webroot}" . $file; // --- // ※ ファイルのパスが ROOT 配下にある事が前提 // <<< // >>> CUSTOMIZE ADD 2010/02/12 ryuring // <<<