You are here

public function AppController::resolveViewFile in Sassy 7

* Finds a view file based on its name. * If the application is using a viewRenderer component a view file for the * viewRenderer will be looked for. If not found or or a viewRenderer * component is not being used a .php view file will be looked for. * The view name can be in one of the following formats: * <ul> * <li>absolute view: the view name starts with a slash '/'.</li> * <li>aliased view: the view name contains dots and refers to a path alias. * The view file is determined by calling {@link YiiBase::getPathOfAlias()}.</li> * <li>relative view: otherwise.</li> * </ul> * For absolute view and relative view, the corresponding view file is a PHP file * whose name is the same as the view name. The file is located under a specified directory. * This method will call {@link CApplication::findLocalizedFile} to search for a localized file, if any. *

Parameters

string the view name: * @param string the directory that is used to search for a relative view name * @param string the directory that is used to search for an absolute view name * @return mixed the view file path. False if the view file does not exist.

File

phamlp/Yii/phamlp/AppController.php, line 50

Class

AppController
AppController class. @package PHamlP @subpackage Yii

Code

public function resolveViewFile($viewName, $viewPath, $basePath) {
  if (empty($viewName)) {
    return false;
  }
  if (($renderer = Yii::app()
    ->getViewRenderer()) !== null) {
    $extension = $renderer->fileExtension;
  }
  do {
    if ($renderer === null) {
      $extension = '.php';
    }
    if ($viewName[0] === '/') {
      $viewFile = $basePath . $viewName . $extension;
    }
    else {
      if (strpos($viewName, '.')) {
        $viewFile = Yii::getPathOfAlias($viewName) . $extension;
      }
      else {
        $viewFile = $viewPath . DIRECTORY_SEPARATOR . $viewName . $extension;
      }
    }
    if (is_file($viewFile)) {
      return Yii::app()
        ->findLocalizedFile($viewFile);
    }
    $renderer = null;
  } while ($extension !== '.php');
  return false;
}