/
var
/
www
/
vhosts
/
nabawater
/
vendor
/
yiisoft
/
yii2
/
web
/
/var/www/vhosts/nabawater/vendor/yiisoft/yii2/web
mkdir
upload
Name
Size
Mode
Actions
migrations/
-
0755
rm
Application.php
5836
0644
edit
dl
rm
AssetBundle.php
8602
0644
edit
dl
rm
AssetConverter.php
4599
0644
edit
dl
rm
AssetConverterInterface.php
698
0644
edit
dl
rm
AssetManager.php
25586
0644
edit
dl
rm
BadRequestHttpException.php
1077
0644
edit
dl
rm
CacheSession.php
3673
0644
edit
dl
rm
CompositeUrlRule.php
4482
0644
edit
dl
rm
ConflictHttpException.php
814
0644
edit
dl
rm
Controller.php
9739
0644
edit
dl
rm
Cookie.php
2002
0644
edit
dl
rm
CookieCollection.php
8094
0644
edit
dl
rm
DbSession.php
7628
0644
edit
dl
rm
ErrorAction.php
6092
0644
edit
dl
rm
ErrorHandler.php
19141
0644
edit
dl
rm
ForbiddenHttpException.php
1126
0644
edit
dl
rm
GoneHttpException.php
1073
0644
edit
dl
rm
GroupUrlRule.php
4696
0644
edit
dl
rm
HeaderCollection.php
7236
0644
edit
dl
rm
HeadersAlreadySentException.php
700
0644
edit
dl
rm
HtmlResponseFormatter.php
1092
0644
edit
dl
rm
HttpException.php
1760
0644
edit
dl
rm
IdentityInterface.php
3661
0644
edit
dl
rm
JqueryAsset.php
459
0644
edit
dl
rm
JsExpression.php
1253
0644
edit
dl
rm
JsonParser.php
1731
0644
edit
dl
rm
JsonResponseFormatter.php
4677
0644
edit
dl
rm
Link.php
2078
0644
edit
dl
rm
Linkable.php
1109
0644
edit
dl
rm
MethodNotAllowedHttpException.php
833
0644
edit
dl
rm
MultiFieldSession.php
4614
0644
edit
dl
rm
MultipartFormDataParser.php
12271
0644
edit
dl
rm
NotAcceptableHttpException.php
1063
0644
edit
dl
rm
NotFoundHttpException.php
808
0644
edit
dl
rm
RangeNotSatisfiableHttpException.php
1212
0644
edit
dl
rm
Request.php
65615
0644
edit
dl
rm
RequestParserInterface.php
669
0644
edit
dl
rm
Response.php
41354
0644
edit
dl
rm
ResponseFormatterInterface.php
543
0644
edit
dl
rm
ServerErrorHttpException.php
827
0644
edit
dl
rm
Session.php
34578
0644
edit
dl
rm
SessionIterator.php
1978
0644
edit
dl
rm
TooManyRequestsHttpException.php
1019
0644
edit
dl
rm
UnauthorizedHttpException.php
1153
0644
edit
dl
rm
UnprocessableEntityHttpException.php
1120
0644
edit
dl
rm
UnsupportedMediaTypeHttpException.php
1094
0644
edit
dl
rm
UploadedFile.php
8836
0644
edit
dl
rm
UrlManager.php
25872
0644
edit
dl
rm
UrlNormalizer.php
5103
0644
edit
dl
rm
UrlNormalizerRedirectException.php
1758
0644
edit
dl
rm
UrlRule.php
21707
0644
edit
dl
rm
UrlRuleInterface.php
1223
0644
edit
dl
rm
User.php
33110
0644
edit
dl
rm
UserEvent.php
1229
0644
edit
dl
rm
View.php
23745
0644
edit
dl
rm
ViewAction.php
4718
0644
edit
dl
rm
XmlResponseFormatter.php
5667
0644
edit
dl
rm
YiiAsset.php
504
0644
edit
dl
rm
Edit:
/var/www/vhosts/nabawater/vendor/yiisoft/yii2/web/View.php
(23745B)
<?php /** * @link http://www.yiiframework.com/ * @copyright Copyright (c) 2008 Yii Software LLC * @license http://www.yiiframework.com/license/ */ namespace yii\web; use Yii; use yii\base\InvalidConfigException; use yii\helpers\ArrayHelper; use yii\helpers\Html; /** * View represents a view object in the MVC pattern. * * View provides a set of methods (e.g. [[render()]]) for rendering purpose. * * View is configured as an application component in [[\yii\base\Application]] by default. * You can access that instance via `Yii::$app->view`. * * You can modify its configuration by adding an array to your application config under `components` * as it is shown in the following example: * * ```php * 'view' => [ * 'theme' => 'app\themes\MyTheme', * 'renderers' => [ * // you may add Smarty or Twig renderer here * ] * // ... * ] * ``` * * For more details and usage information on View, see the [guide article on views](guide:structure-views). * * @property \yii\web\AssetManager $assetManager The asset manager. Defaults to the "assetManager" application * component. * * @author Qiang Xue <qiang.xue@gmail.com> * @since 2.0 */ class View extends \yii\base\View { /** * @event Event an event that is triggered by [[beginBody()]]. */ const EVENT_BEGIN_BODY = 'beginBody'; /** * @event Event an event that is triggered by [[endBody()]]. */ const EVENT_END_BODY = 'endBody'; /** * The location of registered JavaScript code block or files. * This means the location is in the head section. */ const POS_HEAD = 1; /** * The location of registered JavaScript code block or files. * This means the location is at the beginning of the body section. */ const POS_BEGIN = 2; /** * The location of registered JavaScript code block or files. * This means the location is at the end of the body section. */ const POS_END = 3; /** * The location of registered JavaScript code block. * This means the JavaScript code block will be enclosed within `jQuery(document).ready()`. */ const POS_READY = 4; /** * The location of registered JavaScript code block. * This means the JavaScript code block will be enclosed within `jQuery(window).load()`. */ const POS_LOAD = 5; /** * This is internally used as the placeholder for receiving the content registered for the head section. */ const PH_HEAD = '<![CDATA[YII-BLOCK-HEAD]]>'; /** * This is internally used as the placeholder for receiving the content registered for the beginning of the body section. */ const PH_BODY_BEGIN = '<![CDATA[YII-BLOCK-BODY-BEGIN]]>'; /** * This is internally used as the placeholder for receiving the content registered for the end of the body section. */ const PH_BODY_END = '<![CDATA[YII-BLOCK-BODY-END]]>'; /** * @var AssetBundle[] list of the registered asset bundles. The keys are the bundle names, and the values * are the registered [[AssetBundle]] objects. * @see registerAssetBundle() */ public $assetBundles = []; /** * @var string the page title */ public $title; /** * @var array the registered meta tags. * @see registerMetaTag() */ public $metaTags = []; /** * @var array the registered link tags. * @see registerLinkTag() */ public $linkTags = []; /** * @var array the registered CSS code blocks. * @see registerCss() */ public $css = []; /** * @var array the registered CSS files. * @see registerCssFile() */ public $cssFiles = []; /** * @var array the registered JS code blocks * @see registerJs() */ public $js = []; /** * @var array the registered JS files. * @see registerJsFile() */ public $jsFiles = []; private $_assetManager; /** * Marks the position of an HTML head section. */ public function head() { echo self::PH_HEAD; } /** * Marks the beginning of an HTML body section. */ public function beginBody() { echo self::PH_BODY_BEGIN; $this->trigger(self::EVENT_BEGIN_BODY); } /** * Marks the ending of an HTML body section. */ public function endBody() { $this->trigger(self::EVENT_END_BODY); echo self::PH_BODY_END; foreach (array_keys($this->assetBundles) as $bundle) { $this->registerAssetFiles($bundle); } } /** * Marks the ending of an HTML page. * @param bool $ajaxMode whether the view is rendering in AJAX mode. * If true, the JS scripts registered at [[POS_READY]] and [[POS_LOAD]] positions * will be rendered at the end of the view like normal scripts. */ public function endPage($ajaxMode = false) { $this->trigger(self::EVENT_END_PAGE); $content = ob_get_clean(); echo strtr($content, [ self::PH_HEAD => $this->renderHeadHtml(), self::PH_BODY_BEGIN => $this->renderBodyBeginHtml(), self::PH_BODY_END => $this->renderBodyEndHtml($ajaxMode), ]); $this->clear(); } /** * Renders a view in response to an AJAX request. * * This method is similar to [[render()]] except that it will surround the view being rendered * with the calls of [[beginPage()]], [[head()]], [[beginBody()]], [[endBody()]] and [[endPage()]]. * By doing so, the method is able to inject into the rendering result with JS/CSS scripts and files * that are registered with the view. * * @param string $view the view name. Please refer to [[render()]] on how to specify this parameter. * @param array $params the parameters (name-value pairs) that will be extracted and made available in the view file. * @param object $context the context that the view should use for rendering the view. If null, * existing [[context]] will be used. * @return string the rendering result * @see render() */ public function renderAjax($view, $params = [], $context = null) { $viewFile = $this->findViewFile($view, $context); ob_start(); ob_implicit_flush(false); $this->beginPage(); $this->head(); $this->beginBody(); echo $this->renderFile($viewFile, $params, $context); $this->endBody(); $this->endPage(true); return ob_get_clean(); } /** * Registers the asset manager being used by this view object. * @return \yii\web\AssetManager the asset manager. Defaults to the "assetManager" application component. */ public function getAssetManager() { return $this->_assetManager ?: Yii::$app->getAssetManager(); } /** * Sets the asset manager. * @param \yii\web\AssetManager $value the asset manager */ public function setAssetManager($value) { $this->_assetManager = $value; } /** * Clears up the registered meta tags, link tags, css/js scripts and files. */ public function clear() { $this->metaTags = []; $this->linkTags = []; $this->css = []; $this->cssFiles = []; $this->js = []; $this->jsFiles = []; $this->assetBundles = []; } /** * Registers all files provided by an asset bundle including depending bundles files. * Removes a bundle from [[assetBundles]] once files are registered. * @param string $name name of the bundle to register */ protected function registerAssetFiles($name) { if (!isset($this->assetBundles[$name])) { return; } $bundle = $this->assetBundles[$name]; if ($bundle) { foreach ($bundle->depends as $dep) { $this->registerAssetFiles($dep); } $bundle->registerAssetFiles($this); } unset($this->assetBundles[$name]); } /** * Registers the named asset bundle. * All dependent asset bundles will be registered. * @param string $name the class name of the asset bundle (without the leading backslash) * @param int|null $position if set, this forces a minimum position for javascript files. * This will adjust depending assets javascript file position or fail if requirement can not be met. * If this is null, asset bundles position settings will not be changed. * See [[registerJsFile]] for more details on javascript position. * @return AssetBundle the registered asset bundle instance * @throws InvalidConfigException if the asset bundle does not exist or a circular dependency is detected */ public function registerAssetBundle($name, $position = null) { if (!isset($this->assetBundles[$name])) { $am = $this->getAssetManager(); $bundle = $am->getBundle($name); $this->assetBundles[$name] = false; // register dependencies $pos = isset($bundle->jsOptions['position']) ? $bundle->jsOptions['position'] : null; foreach ($bundle->depends as $dep) { $this->registerAssetBundle($dep, $pos); } $this->assetBundles[$name] = $bundle; } elseif ($this->assetBundles[$name] === false) { throw new InvalidConfigException("A circular dependency is detected for bundle '$name'."); } else { $bundle = $this->assetBundles[$name]; } if ($position !== null) { $pos = isset($bundle->jsOptions['position']) ? $bundle->jsOptions['position'] : null; if ($pos === null) { $bundle->jsOptions['position'] = $pos = $position; } elseif ($pos > $position) { throw new InvalidConfigException("An asset bundle that depends on '$name' has a higher javascript file position configured than '$name'."); } // update position for all dependencies foreach ($bundle->depends as $dep) { $this->registerAssetBundle($dep, $pos); } } return $bundle; } /** * Registers a meta tag. * * For example, a description meta tag can be added like the following: * * ```php * $view->registerMetaTag([ * 'name' => 'description', * 'content' => 'This website is about funny raccoons.' * ]); * ``` * * will result in the meta tag `<meta name="description" content="This website is about funny raccoons.">`. * * @param array $options the HTML attributes for the meta tag. * @param string $key the key that identifies the meta tag. If two meta tags are registered * with the same key, the latter will overwrite the former. If this is null, the new meta tag * will be appended to the existing ones. */ public function registerMetaTag($options, $key = null) { if ($key === null) { $this->metaTags[] = Html::tag('meta', '', $options); } else { $this->metaTags[$key] = Html::tag('meta', '', $options); } } /** * Registers CSRF meta tags. * They are rendered dynamically to retrieve a new CSRF token for each request. * * ```php * $view->registerCsrfMetaTags(); * ``` * * The above code will result in `<meta name="csrf-param" content="[yii\web\Request::$csrfParam]">` * and `<meta name="csrf-token" content="tTNpWKpdy-bx8ZmIq9R72...K1y8IP3XGkzZA==">` added to the page. * * Note: Hidden CSRF input of ActiveForm will be automatically refreshed by calling `window.yii.refreshCsrfToken()` * from `yii.js`. * * @since 2.0.13 */ public function registerCsrfMetaTags() { $this->metaTags['csrf_meta_tags'] = $this->renderDynamic('return yii\helpers\Html::csrfMetaTags();'); } /** * Registers a link tag. * * For example, a link tag for a custom [favicon](http://www.w3.org/2005/10/howto-favicon) * can be added like the following: * * ```php * $view->registerLinkTag(['rel' => 'icon', 'type' => 'image/png', 'href' => '/myicon.png']); * ``` * * which will result in the following HTML: `<link rel="icon" type="image/png" href="/myicon.png">`. * * **Note:** To register link tags for CSS stylesheets, use [[registerCssFile()]] instead, which * has more options for this kind of link tag. * * @param array $options the HTML attributes for the link tag. * @param string $key the key that identifies the link tag. If two link tags are registered * with the same key, the latter will overwrite the former. If this is null, the new link tag * will be appended to the existing ones. */ public function registerLinkTag($options, $key = null) { if ($key === null) { $this->linkTags[] = Html::tag('link', '', $options); } else { $this->linkTags[$key] = Html::tag('link', '', $options); } } /** * Registers a CSS code block. * @param string $css the content of the CSS code block to be registered * @param array $options the HTML attributes for the `<style>`-tag. * @param string $key the key that identifies the CSS code block. If null, it will use * $css as the key. If two CSS code blocks are registered with the same key, the latter * will overwrite the former. */ public function registerCss($css, $options = [], $key = null) { $key = $key ?: md5($css); $this->css[$key] = Html::style($css, $options); } /** * Registers a CSS file. * * This method should be used for simple registration of CSS files. If you want to use features of * [[AssetManager]] like appending timestamps to the URL and file publishing options, use [[AssetBundle]] * and [[registerAssetBundle()]] instead. * * @param string $url the CSS file to be registered. * @param array $options the HTML attributes for the link tag. Please refer to [[Html::cssFile()]] for * the supported options. The following options are specially handled and are not treated as HTML attributes: * * - `depends`: array, specifies the names of the asset bundles that this CSS file depends on. * * @param string $key the key that identifies the CSS script file. If null, it will use * $url as the key. If two CSS files are registered with the same key, the latter * will overwrite the former. */ public function registerCssFile($url, $options = [], $key = null) { $url = Yii::getAlias($url); $key = $key ?: $url; $depends = ArrayHelper::remove($options, 'depends', []); if (empty($depends)) { $this->cssFiles[$key] = Html::cssFile($url, $options); } else { $this->getAssetManager()->bundles[$key] = Yii::createObject([ 'class' => AssetBundle::className(), 'baseUrl' => '', 'css' => [strncmp($url, '//', 2) === 0 ? $url : ltrim($url, '/')], 'cssOptions' => $options, 'depends' => (array) $depends, ]); $this->registerAssetBundle($key); } } /** * Registers a JS code block. * @param string $js the JS code block to be registered * @param int $position the position at which the JS script tag should be inserted * in a page. The possible values are: * * - [[POS_HEAD]]: in the head section * - [[POS_BEGIN]]: at the beginning of the body section * - [[POS_END]]: at the end of the body section * - [[POS_LOAD]]: enclosed within jQuery(window).load(). * Note that by using this position, the method will automatically register the jQuery js file. * - [[POS_READY]]: enclosed within jQuery(document).ready(). This is the default value. * Note that by using this position, the method will automatically register the jQuery js file. * * @param string $key the key that identifies the JS code block. If null, it will use * $js as the key. If two JS code blocks are registered with the same key, the latter * will overwrite the former. */ public function registerJs($js, $position = self::POS_READY, $key = null) { $key = $key ?: md5($js); $this->js[$position][$key] = $js; if ($position === self::POS_READY || $position === self::POS_LOAD) { JqueryAsset::register($this); } } /** * Registers a JS file. * * This method should be used for simple registration of JS files. If you want to use features of * [[AssetManager]] like appending timestamps to the URL and file publishing options, use [[AssetBundle]] * and [[registerAssetBundle()]] instead. * * @param string $url the JS file to be registered. * @param array $options the HTML attributes for the script tag. The following options are specially handled * and are not treated as HTML attributes: * * - `depends`: array, specifies the names of the asset bundles that this JS file depends on. * - `position`: specifies where the JS script tag should be inserted in a page. The possible values are: * * [[POS_HEAD]]: in the head section * * [[POS_BEGIN]]: at the beginning of the body section * * [[POS_END]]: at the end of the body section. This is the default value. * * Please refer to [[Html::jsFile()]] for other supported options. * * @param string $key the key that identifies the JS script file. If null, it will use * $url as the key. If two JS files are registered with the same key at the same position, the latter * will overwrite the former. Note that position option takes precedence, thus files registered with the same key, * but different position option will not override each other. */ public function registerJsFile($url, $options = [], $key = null) { $url = Yii::getAlias($url); $key = $key ?: $url; $depends = ArrayHelper::remove($options, 'depends', []); if (empty($depends)) { $position = ArrayHelper::remove($options, 'position', self::POS_END); $this->jsFiles[$position][$key] = Html::jsFile($url, $options); } else { $this->getAssetManager()->bundles[$key] = Yii::createObject([ 'class' => AssetBundle::className(), 'baseUrl' => '', 'js' => [strncmp($url, '//', 2) === 0 ? $url : ltrim($url, '/')], 'jsOptions' => $options, 'depends' => (array) $depends, ]); $this->registerAssetBundle($key); } } /** * Registers a JS code block defining a variable. The name of variable will be * used as key, preventing duplicated variable names. * * @param string $name Name of the variable * @param array|string $value Value of the variable * @param int $position the position in a page at which the JavaScript variable should be inserted. * The possible values are: * * - [[POS_HEAD]]: in the head section. This is the default value. * - [[POS_BEGIN]]: at the beginning of the body section. * - [[POS_END]]: at the end of the body section. * - [[POS_LOAD]]: enclosed within jQuery(window).load(). * Note that by using this position, the method will automatically register the jQuery js file. * - [[POS_READY]]: enclosed within jQuery(document).ready(). * Note that by using this position, the method will automatically register the jQuery js file. * * @since 2.0.14 */ public function registerJsVar($name, $value, $position = self::POS_HEAD) { $js = sprintf('var %s = %s;', $name, \yii\helpers\Json::htmlEncode($value)); $this->registerJs($js, $position, $name); } /** * Renders the content to be inserted in the head section. * The content is rendered using the registered meta tags, link tags, CSS/JS code blocks and files. * @return string the rendered content */ protected function renderHeadHtml() { $lines = []; if (!empty($this->metaTags)) { $lines[] = implode("\n", $this->metaTags); } if (!empty($this->linkTags)) { $lines[] = implode("\n", $this->linkTags); } if (!empty($this->cssFiles)) { $lines[] = implode("\n", $this->cssFiles); } if (!empty($this->css)) { $lines[] = implode("\n", $this->css); } if (!empty($this->jsFiles[self::POS_HEAD])) { $lines[] = implode("\n", $this->jsFiles[self::POS_HEAD]); } if (!empty($this->js[self::POS_HEAD])) { $lines[] = Html::script(implode("\n", $this->js[self::POS_HEAD])); } return empty($lines) ? '' : implode("\n", $lines); } /** * Renders the content to be inserted at the beginning of the body section. * The content is rendered using the registered JS code blocks and files. * @return string the rendered content */ protected function renderBodyBeginHtml() { $lines = []; if (!empty($this->jsFiles[self::POS_BEGIN])) { $lines[] = implode("\n", $this->jsFiles[self::POS_BEGIN]); } if (!empty($this->js[self::POS_BEGIN])) { $lines[] = Html::script(implode("\n", $this->js[self::POS_BEGIN])); } return empty($lines) ? '' : implode("\n", $lines); } /** * Renders the content to be inserted at the end of the body section. * The content is rendered using the registered JS code blocks and files. * @param bool $ajaxMode whether the view is rendering in AJAX mode. * If true, the JS scripts registered at [[POS_READY]] and [[POS_LOAD]] positions * will be rendered at the end of the view like normal scripts. * @return string the rendered content */ protected function renderBodyEndHtml($ajaxMode) { $lines = []; if (!empty($this->jsFiles[self::POS_END])) { $lines[] = implode("\n", $this->jsFiles[self::POS_END]); } if ($ajaxMode) { $scripts = []; if (!empty($this->js[self::POS_END])) { $scripts[] = implode("\n", $this->js[self::POS_END]); } if (!empty($this->js[self::POS_READY])) { $scripts[] = implode("\n", $this->js[self::POS_READY]); } if (!empty($this->js[self::POS_LOAD])) { $scripts[] = implode("\n", $this->js[self::POS_LOAD]); } if (!empty($scripts)) { $lines[] = Html::script(implode("\n", $scripts)); } } else { if (!empty($this->js[self::POS_END])) { $lines[] = Html::script(implode("\n", $this->js[self::POS_END])); } if (!empty($this->js[self::POS_READY])) { $js = "jQuery(function ($) {\n" . implode("\n", $this->js[self::POS_READY]) . "\n});"; $lines[] = Html::script($js); } if (!empty($this->js[self::POS_LOAD])) { $js = "jQuery(window).on('load', function () {\n" . implode("\n", $this->js[self::POS_LOAD]) . "\n});"; $lines[] = Html::script($js); } } return empty($lines) ? '' : implode("\n", $lines); } }
Save
cmd:
run