本文整理汇总了PHP中Yii::getCustomPath方法的典型用法代码示例。如果您正苦于以下问题:PHP Yii::getCustomPath方法的具体用法?PHP Yii::getCustomPath怎么用?PHP Yii::getCustomPath使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Yii
的用法示例。
在下文中一共展示了Yii::getCustomPath方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: parseShortCode
/**
* Parses a "short code" as a part of variable replacement.
*
* Short codes are defined in the file protected/components/x2flow/shortcodes.php
* and are a list of manually defined pieces of code to be run in variable replacement.
* Because they are stored in a protected directory, validation on allowed
* functions is not performed, as it is the user's responsibility to edit this file.
*
* @param String $key The key of the short code to be used
* @param X2Model $model The model having variables replaced, some short codes
* use a model
* @return mixed Returns the result of code evaluation if a short code
* existed for the index $key, otherwise null
*/
private static function parseShortCode($key, array $params)
{
if (isset($params['model'])) {
$model = $params['model'];
}
$path = implode(DIRECTORY_SEPARATOR, array(Yii::app()->basePath, 'components', 'x2flow', 'shortcodes.php'));
if (file_exists($path)) {
$shortCodes = (include Yii::getCustomPath($path));
if (isset($shortCodes[$key])) {
return eval($shortCodes[$key]);
}
}
return null;
}
示例2: resolveViewFile
/**
* Finds a view file based on its name.
* Overrides {@link CBaseController::resolveViewFile} to check if the requested view
* has a version in /custom, and uses that if it exists.
*
* @param string $viewName the view name
* @param string $viewPath the directory that is used to search for a relative view name
* @param string $basePath the directory that is used to search for an absolute view name under the application
* @param string $moduleViewPath the directory that is used to search for an absolute view name under the current module.
* If this is not set, the application base view path will be used.
* @return mixed the view file path. False if the view file does not exist.
*/
public function resolveViewFile($viewName, $viewPath, $basePath, $moduleViewPath = null)
{
if (empty($viewName)) {
return false;
}
if ($moduleViewPath === null) {
$moduleViewPath = $basePath;
}
if (($renderer = Yii::app()->getViewRenderer()) !== null) {
$extension = $renderer->fileExtension;
} else {
$extension = '.php';
}
if ($viewName[0] === '/') {
if (strncmp($viewName, '//', 2) === 0) {
$viewFile = $basePath . $viewName;
} else {
$viewFile = $moduleViewPath . $viewName;
}
} else {
if (strpos($viewName, '.')) {
$viewFile = Yii::getPathOfAlias($viewName);
} else {
$viewFile = $viewPath . DIRECTORY_SEPARATOR . $viewName;
}
}
// custom part
$fileName = Yii::getCustomPath($viewFile . $extension);
if (is_file($fileName)) {
return Yii::app()->findLocalizedFile($fileName);
} else {
if ($extension !== '.php') {
$fileName = Yii::getCustomPath($viewFile . '.php');
if (is_file($fileName)) {
return Yii::app()->findLocalizedFile($fileName);
}
}
}
return false;
}
示例3: renderFile
/**
* Renders a view file.
* Overrides {@link CBaseController::renderFile} to check if the requested view
* has a version in /custom, and uses that if it exists.
*
* @param string $viewFile view file path
* @param array $data data to be extracted and made available to the view
* @param boolean $return whether the rendering result should be returned instead of being
* echoed
* @return string the rendering result. Null if the rendering result is not required.
* @throws CException if the view file does not exist
*/
public function renderFile($viewFile, $data = null, $return = false)
{
$viewFile = Yii::getCustomPath($viewFile);
return parent::renderFile($viewFile, $data, $return);
}
示例4: createController
/**
* Creates a controller instance based on a route.
* Modified to check in /custom for controller files.
* See {@link CWebApplication::createController()} for details.
*
* @param string $route the route of the request.
* @param CWebModule $owner the module that the new controller will belong to. Defaults to null, meaning the application
* instance is the owner.
* @return array the controller instance and the action ID. Null if the controller class does not exist or the route is invalid.
*/
public function createController($route, $owner = null)
{
if ($owner === null) {
$owner = $this;
}
if (($route = trim($route, '/')) === '') {
$route = $owner->defaultController;
}
$caseSensitive = $this->getUrlManager()->caseSensitive;
$route .= '/';
while (($pos = strpos($route, '/')) !== false) {
$id = substr($route, 0, $pos);
if (!preg_match('/^\\w+$/', $id)) {
return null;
}
if (!$caseSensitive) {
$id = strtolower($id);
}
$route = (string) substr($route, $pos + 1);
if (!isset($basePath)) {
if (isset($owner->controllerMap[$id])) {
return array(Yii::createComponent($owner->controllerMap[$id], $id, $owner === $this ? null : $owner), $this->parseActionParams($route));
}
if (($module = $owner->getModule($id)) !== null) {
// fix module's base paths in case module was loaded from /custom
$module->basePath = Yii::resetCustomPath($module->basePath);
$module->viewPath = Yii::resetCustomPath($module->viewPath);
Yii::setPathOfAlias($module->getId(), $module->basePath);
return $this->createController($route, $module);
}
$basePath = $owner->getControllerPath();
$controllerID = '';
} else {
$controllerID .= '/';
}
$className = ucfirst($id) . 'Controller';
$classFile = $basePath . DIRECTORY_SEPARATOR . $className . '.php';
$extendedClassFile = Yii::getCustomPath($basePath . DIRECTORY_SEPARATOR . 'My' . $className . '.php');
if (is_file($extendedClassFile)) {
// see if there's an extended controller in /custom
if (!class_exists($className, false)) {
require Yii::getCustomPath($classFile);
}
// import the 'real' controller
$className = 'My' . $className;
// add "My" to the class name
$classFile = $extendedClassFile;
} else {
$classFile = Yii::getCustomPath($classFile);
// look in /custom for controller file
}
if (is_file($classFile)) {
if (!class_exists($className, false)) {
require $classFile;
}
if (class_exists($className, false) && is_subclass_of($className, 'CController')) {
$id[0] = strtolower($id[0]);
return array(new $className($controllerID . $id, $owner === $this ? null : $owner), $this->parseActionParams($route));
}
return null;
}
$controllerID .= $id;
$basePath .= DIRECTORY_SEPARATOR . $id;
}
}