Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yii2
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
PSDI Army
yii2
Commits
927e9ddd
Commit
927e9ddd
authored
Nov 06, 2013
by
Alexander Makarov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Refactored View
parent
74620754
Hide whitespace changes
Inline
Side-by-side
Showing
76 changed files
with
520 additions
and
487 deletions
+520
-487
main.php
apps/advanced/backend/views/layouts/main.php
+1
-1
error.php
apps/advanced/backend/views/site/error.php
+1
-1
index.php
apps/advanced/backend/views/site/index.php
+1
-1
login.php
apps/advanced/backend/views/site/login.php
+1
-1
passwordResetToken.php
apps/advanced/frontend/views/emails/passwordResetToken.php
+1
-1
main.php
apps/advanced/frontend/views/layouts/main.php
+1
-1
about.php
apps/advanced/frontend/views/site/about.php
+1
-1
contact.php
apps/advanced/frontend/views/site/contact.php
+1
-1
error.php
apps/advanced/frontend/views/site/error.php
+1
-1
index.php
apps/advanced/frontend/views/site/index.php
+1
-1
login.php
apps/advanced/frontend/views/site/login.php
+1
-1
requestPasswordResetToken.php
...dvanced/frontend/views/site/requestPasswordResetToken.php
+1
-1
resetPassword.php
apps/advanced/frontend/views/site/resetPassword.php
+1
-1
signup.php
apps/advanced/frontend/views/site/signup.php
+1
-1
main.php
apps/basic/views/layouts/main.php
+1
-1
about.php
apps/basic/views/site/about.php
+1
-1
contact.php
apps/basic/views/site/contact.php
+1
-1
error.php
apps/basic/views/site/error.php
+1
-1
index.php
apps/basic/views/site/index.php
+1
-1
login.php
apps/basic/views/site/login.php
+1
-1
template.md
docs/guide/template.md
+1
-1
view.md
docs/guide/view.md
+2
-2
Module.php
extensions/debug/Module.php
+1
-1
index.php
extensions/debug/views/default/index.php
+1
-1
toolbar.php
extensions/debug/views/default/toolbar.php
+1
-1
view.php
extensions/debug/views/default/view.php
+1
-1
main.php
extensions/debug/views/layouts/main.php
+1
-1
Generator.php
extensions/gii/Generator.php
+1
-1
form.php
extensions/gii/generators/controller/form.php
+1
-1
controller.php
...nsions/gii/generators/controller/templates/controller.php
+1
-1
view.php
extensions/gii/generators/controller/templates/view.php
+2
-2
form.php
extensions/gii/generators/crud/form.php
+1
-1
controller.php
extensions/gii/generators/crud/templates/controller.php
+1
-1
search.php
extensions/gii/generators/crud/templates/search.php
+1
-1
_form.php
extensions/gii/generators/crud/templates/views/_form.php
+2
-2
_search.php
extensions/gii/generators/crud/templates/views/_search.php
+2
-2
create.php
extensions/gii/generators/crud/templates/views/create.php
+2
-2
index.php
extensions/gii/generators/crud/templates/views/index.php
+2
-2
update.php
extensions/gii/generators/crud/templates/views/update.php
+2
-2
view.php
extensions/gii/generators/crud/templates/views/view.php
+2
-2
form.php
extensions/gii/generators/form/form.php
+1
-1
action.php
extensions/gii/generators/form/templates/action.php
+1
-1
form.php
extensions/gii/generators/form/templates/form.php
+2
-2
form.php
extensions/gii/generators/model/form.php
+1
-1
model.php
extensions/gii/generators/model/templates/model.php
+1
-1
form.php
extensions/gii/generators/module/form.php
+1
-1
controller.php
extensions/gii/generators/module/templates/controller.php
+1
-1
module.php
extensions/gii/generators/module/templates/module.php
+1
-1
view.php
extensions/gii/generators/module/templates/view.php
+1
-1
diff.php
extensions/gii/views/default/diff.php
+1
-1
index.php
extensions/gii/views/default/index.php
+1
-1
view.php
extensions/gii/views/default/view.php
+1
-1
files.php
extensions/gii/views/default/view/files.php
+1
-1
results.php
extensions/gii/views/default/view/results.php
+1
-1
generator.php
extensions/gii/views/layouts/generator.php
+1
-1
main.php
extensions/gii/views/layouts/main.php
+1
-1
Application.php
framework/yii/base/Application.php
+1
-1
View.php
framework/yii/base/View.php
+3
-402
CaptchaValidator.php
framework/yii/captcha/CaptchaValidator.php
+1
-1
classes.php
framework/yii/classes.php
+1
-0
BooleanValidator.php
framework/yii/validators/BooleanValidator.php
+1
-1
CompareValidator.php
framework/yii/validators/CompareValidator.php
+1
-1
EmailValidator.php
framework/yii/validators/EmailValidator.php
+1
-1
InlineValidator.php
framework/yii/validators/InlineValidator.php
+1
-1
NumberValidator.php
framework/yii/validators/NumberValidator.php
+1
-1
RangeValidator.php
framework/yii/validators/RangeValidator.php
+1
-1
RegularExpressionValidator.php
framework/yii/validators/RegularExpressionValidator.php
+1
-1
RequiredValidator.php
framework/yii/validators/RequiredValidator.php
+1
-1
StringValidator.php
framework/yii/validators/StringValidator.php
+1
-1
UrlValidator.php
framework/yii/validators/UrlValidator.php
+1
-1
Validator.php
framework/yii/validators/Validator.php
+1
-1
AssetBundle.php
framework/yii/web/AssetBundle.php
+4
-4
View.php
framework/yii/web/View.php
+430
-0
layout.php
tests/unit/data/views/layout.php
+1
-1
rawlayout.php
tests/unit/data/views/rawlayout.php
+2
-1
AssetBundleTest.php
tests/unit/framework/web/AssetBundleTest.php
+1
-1
No files found.
apps/advanced/backend/views/layouts/main.php
View file @
927e9ddd
...
...
@@ -6,7 +6,7 @@ use yii\bootstrap\NavBar;
use
yii\widgets\Breadcrumbs
;
/**
* @var $this \yii\
base
\View
* @var $this \yii\
web
\View
* @var $content string
*/
AppAsset
::
register
(
$this
);
...
...
apps/advanced/backend/views/site/error.php
View file @
927e9ddd
...
...
@@ -3,7 +3,7 @@
use
yii\helpers\Html
;
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var string $name
* @var string $message
* @var Exception $exception
...
...
apps/advanced/backend/views/site/index.php
View file @
927e9ddd
<?php
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
*/
$this
->
title
=
'My Yii Application'
;
?>
...
...
apps/advanced/backend/views/site/login.php
View file @
927e9ddd
...
...
@@ -3,7 +3,7 @@ use yii\helpers\Html;
use
yii\widgets\ActiveForm
;
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var yii\widgets\ActiveForm $form
* @var app\models\LoginForm $model
*/
...
...
apps/advanced/frontend/views/emails/passwordResetToken.php
View file @
927e9ddd
...
...
@@ -2,7 +2,7 @@
use
yii\helpers\Html
;
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var common\models\User $user;
*/
...
...
apps/advanced/frontend/views/layouts/main.php
View file @
927e9ddd
...
...
@@ -7,7 +7,7 @@ use yii\widgets\Breadcrumbs;
use
frontend\widgets\Alert
;
/**
* @var $this \yii\
base
\View
* @var $this \yii\
web
\View
* @var $content string
*/
AppAsset
::
register
(
$this
);
...
...
apps/advanced/frontend/views/site/about.php
View file @
927e9ddd
...
...
@@ -2,7 +2,7 @@
use
yii\helpers\Html
;
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
*/
$this
->
title
=
'About'
;
$this
->
params
[
'breadcrumbs'
][]
=
$this
->
title
;
...
...
apps/advanced/frontend/views/site/contact.php
View file @
927e9ddd
...
...
@@ -4,7 +4,7 @@ use yii\widgets\ActiveForm;
use
yii\captcha\Captcha
;
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var yii\widgets\ActiveForm $form
* @var app\models\ContactForm $model
*/
...
...
apps/advanced/frontend/views/site/error.php
View file @
927e9ddd
...
...
@@ -3,7 +3,7 @@
use
yii\helpers\Html
;
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var string $name
* @var string $message
* @var Exception $exception
...
...
apps/advanced/frontend/views/site/index.php
View file @
927e9ddd
<?php
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
*/
$this
->
title
=
'My Yii Application'
;
?>
...
...
apps/advanced/frontend/views/site/login.php
View file @
927e9ddd
...
...
@@ -3,7 +3,7 @@ use yii\helpers\Html;
use
yii\widgets\ActiveForm
;
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var yii\widgets\ActiveForm $form
* @var app\models\LoginForm $model
*/
...
...
apps/advanced/frontend/views/site/requestPasswordResetToken.php
View file @
927e9ddd
...
...
@@ -3,7 +3,7 @@ use yii\helpers\Html;
use
yii\widgets\ActiveForm
;
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var yii\widgets\ActiveForm $form
* @var common\models\User $model
*/
...
...
apps/advanced/frontend/views/site/resetPassword.php
View file @
927e9ddd
...
...
@@ -3,7 +3,7 @@ use yii\helpers\Html;
use
yii\widgets\ActiveForm
;
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var yii\widgets\ActiveForm $form
* @var common\models\User $model
*/
...
...
apps/advanced/frontend/views/site/signup.php
View file @
927e9ddd
...
...
@@ -3,7 +3,7 @@ use yii\helpers\Html;
use
yii\widgets\ActiveForm
;
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var yii\widgets\ActiveForm $form
* @var common\models\User $model
*/
...
...
apps/basic/views/layouts/main.php
View file @
927e9ddd
...
...
@@ -5,7 +5,7 @@ use yii\bootstrap\NavBar;
use
yii\widgets\Breadcrumbs
;
/**
* @var $this \yii\
base
\View
* @var $this \yii\
web
\View
* @var $content string
*/
app\config\AppAsset
::
register
(
$this
);
...
...
apps/basic/views/site/about.php
View file @
927e9ddd
...
...
@@ -2,7 +2,7 @@
use
yii\helpers\Html
;
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
*/
$this
->
title
=
'About'
;
$this
->
params
[
'breadcrumbs'
][]
=
$this
->
title
;
...
...
apps/basic/views/site/contact.php
View file @
927e9ddd
...
...
@@ -4,7 +4,7 @@ use yii\widgets\ActiveForm;
use
yii\captcha\Captcha
;
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var yii\widgets\ActiveForm $form
* @var app\models\ContactForm $model
*/
...
...
apps/basic/views/site/error.php
View file @
927e9ddd
...
...
@@ -3,7 +3,7 @@
use
yii\helpers\Html
;
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var string $name
* @var string $message
* @var Exception $exception
...
...
apps/basic/views/site/index.php
View file @
927e9ddd
<?php
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
*/
$this
->
title
=
'My Yii Application'
;
?>
...
...
apps/basic/views/site/login.php
View file @
927e9ddd
...
...
@@ -3,7 +3,7 @@ use yii\helpers\Html;
use
yii\widgets\ActiveForm
;
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var yii\widgets\ActiveForm $form
* @var app\models\LoginForm $model
*/
...
...
docs/guide/template.md
View file @
927e9ddd
...
...
@@ -10,7 +10,7 @@ a custom template engines by reconfiguring this component's behavior:
[
'components'
=>
[
'view'
=>
[
'class'
=>
'yii\
base
\View'
,
'class'
=>
'yii\
web
\View'
,
'renderers'
=>
[
'tpl'
=>
[
'class'
=>
'yii\renderers\SmartyViewRenderer'
,
...
...
docs/guide/view.md
View file @
927e9ddd
...
...
@@ -113,7 +113,7 @@ to learn more refer to [Using template engines](template.md) section of the guid
Using View object in templates
------------------------------
An instance of
`yii\
base
\View`
component is available in view templates as
`$this`
variable. Using it in templates you
An instance of
`yii\
web
\View`
component is available in view templates as
`$this`
variable. Using it in templates you
can do many useful things including setting page title and meta, registering scripts and accessing the context.
### Setting page title
...
...
@@ -342,7 +342,7 @@ Customizing View component
--------------------------
Since view is also an application component named
`view`
you can replace it with your own component that extends
from
`yii\base\View`
. It can be done via application configuration file such as
`config/web.php`
:
from
`yii\base\View`
or
`yii\web\View`
. It can be done via application configuration file such as
`config/web.php`
:
```
php
return
[
...
...
extensions/debug/Module.php
View file @
927e9ddd
...
...
@@ -9,7 +9,7 @@ namespace yii\debug;
use
Yii
;
use
yii\base\Application
;
use
yii\
base
\View
;
use
yii\
web
\View
;
use
yii\web\HttpException
;
/**
...
...
extensions/debug/views/default/index.php
View file @
927e9ddd
...
...
@@ -3,7 +3,7 @@
use
yii\helpers\Html
;
/**
* @var \yii\
base
\View $this
* @var \yii\
web
\View $this
* @var array $manifest
*/
...
...
extensions/debug/views/default/toolbar.php
View file @
927e9ddd
<?php
/**
* @var \yii\
base
\View $this
* @var \yii\
web
\View $this
* @var \yii\debug\Panel[] $panels
* @var string $tag
*/
...
...
extensions/debug/views/default/view.php
View file @
927e9ddd
...
...
@@ -5,7 +5,7 @@ use yii\bootstrap\ButtonGroup;
use
yii\helpers\Html
;
/**
* @var \yii\
base
\View $this
* @var \yii\
web
\View $this
* @var array $summary
* @var string $tag
* @var array $manifest
...
...
extensions/debug/views/layouts/main.php
View file @
927e9ddd
<?php
/**
* @var \yii\
base
\View $this
* @var \yii\
web
\View $this
* @var string $content
*/
use
yii\helpers\Html
;
...
...
extensions/gii/Generator.php
View file @
927e9ddd
...
...
@@ -11,7 +11,7 @@ use Yii;
use
ReflectionClass
;
use
yii\base\InvalidConfigException
;
use
yii\base\Model
;
use
yii\
base
\View
;
use
yii\
web
\View
;
/**
...
...
extensions/gii/generators/controller/form.php
View file @
927e9ddd
<?php
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var yii\widgets\ActiveForm $form
* @var yii\gii\generators\controller\Generator $generator
*/
...
...
extensions/gii/generators/controller/templates/controller.php
View file @
927e9ddd
...
...
@@ -5,7 +5,7 @@ use yii\helpers\Inflector;
/**
* This is the template for generating a controller class file.
*
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var yii\gii\generators\controller\Generator $generator
*/
...
...
extensions/gii/generators/controller/templates/view.php
View file @
927e9ddd
...
...
@@ -2,7 +2,7 @@
/**
* This is the template for generating an action view file.
*
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var yii\gii\generators\controller\Generator $generator
* @var string $action the action ID
*/
...
...
@@ -10,7 +10,7 @@
echo
"<?php
\n
"
;
?>
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
*/
<?=
"?>"
?>
...
...
extensions/gii/generators/crud/form.php
View file @
927e9ddd
<?php
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var yii\widgets\ActiveForm $form
* @var yii\gii\generators\crud\Generator $generator
*/
...
...
extensions/gii/generators/crud/templates/controller.php
View file @
927e9ddd
...
...
@@ -5,7 +5,7 @@ use yii\helpers\StringHelper;
/**
* This is the template for generating a CRUD controller class file.
*
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var yii\gii\generators\crud\Generator $generator
*/
...
...
extensions/gii/generators/crud/templates/search.php
View file @
927e9ddd
...
...
@@ -5,7 +5,7 @@ use yii\helpers\StringHelper;
/**
* This is the template for generating a CRUD controller class file.
*
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var yii\gii\generators\crud\Generator $generator
*/
...
...
extensions/gii/generators/crud/templates/views/_form.php
View file @
927e9ddd
...
...
@@ -4,7 +4,7 @@ use yii\helpers\Inflector;
use
yii\helpers\StringHelper
;
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var yii\gii\generators\crud\Generator $generator
*/
...
...
@@ -22,7 +22,7 @@ use yii\helpers\Html;
use yii\widgets\ActiveForm;
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var
<?=
ltrim
(
$generator
->
modelClass
,
'\\'
)
?>
$model
* @var yii\widgets\ActiveForm $form
*/
...
...
extensions/gii/generators/crud/templates/views/_search.php
View file @
927e9ddd
...
...
@@ -4,7 +4,7 @@ use yii\helpers\Inflector;
use
yii\helpers\StringHelper
;
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var yii\gii\generators\crud\Generator $generator
*/
...
...
@@ -15,7 +15,7 @@ use yii\helpers\Html;
use yii\widgets\ActiveForm;
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var
<?=
ltrim
(
$generator
->
searchModelClass
,
'\\'
)
?>
$model
* @var yii\widgets\ActiveForm $form
*/
...
...
extensions/gii/generators/crud/templates/views/create.php
View file @
927e9ddd
...
...
@@ -4,7 +4,7 @@ use yii\helpers\Inflector;
use
yii\helpers\StringHelper
;
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var yii\gii\generators\crud\Generator $generator
*/
...
...
@@ -14,7 +14,7 @@ echo "<?php\n";
use yii\helpers\Html;
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var
<?=
ltrim
(
$generator
->
modelClass
,
'\\'
)
?>
$model
*/
...
...
extensions/gii/generators/crud/templates/views/index.php
View file @
927e9ddd
...
...
@@ -4,7 +4,7 @@ use yii\helpers\Inflector;
use
yii\helpers\StringHelper
;
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var yii\gii\generators\crud\Generator $generator
*/
...
...
@@ -18,7 +18,7 @@ use yii\helpers\Html;
use
<?=
$generator
->
indexWidgetType
===
'grid'
?
"yii
\\
grid
\\
GridView"
:
"yii
\\
widgets
\\
ListView"
?>
;
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var yii\data\ActiveDataProvider $dataProvider
* @var
<?=
ltrim
(
$generator
->
searchModelClass
,
'\\'
)
?>
$searchModel
*/
...
...
extensions/gii/generators/crud/templates/views/update.php
View file @
927e9ddd
...
...
@@ -4,7 +4,7 @@ use yii\helpers\Inflector;
use
yii\helpers\StringHelper
;
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var yii\gii\generators\crud\Generator $generator
*/
...
...
@@ -16,7 +16,7 @@ echo "<?php\n";
use yii\helpers\Html;
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var
<?=
ltrim
(
$generator
->
modelClass
,
'\\'
)
?>
$model
*/
...
...
extensions/gii/generators/crud/templates/views/view.php
View file @
927e9ddd
...
...
@@ -4,7 +4,7 @@ use yii\helpers\Inflector;
use
yii\helpers\StringHelper
;
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var yii\gii\generators\crud\Generator $generator
*/
...
...
@@ -17,7 +17,7 @@ use yii\helpers\Html;
use yii\widgets\DetailView;
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var
<?=
ltrim
(
$generator
->
modelClass
,
'\\'
)
?>
$model
*/
...
...
extensions/gii/generators/form/form.php
View file @
927e9ddd
<?php
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var yii\widgets\ActiveForm $form
* @var yii\gii\generators\form\Generator $generator
*/
...
...
extensions/gii/generators/form/templates/action.php
View file @
927e9ddd
...
...
@@ -5,7 +5,7 @@ use yii\helpers\Inflector;
/**
* This is the template for generating an action view file.
*
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var yii\gii\generators\form\Generator $generator
*/
...
...
extensions/gii/generators/form/templates/form.php
View file @
927e9ddd
...
...
@@ -2,7 +2,7 @@
/**
* This is the template for generating an action view file.
*
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var yii\gii\generators\form\Generator $generator
*/
...
...
@@ -13,7 +13,7 @@ use yii\helpers\Html;
use yii\widgets\ActiveForm;
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var
<?=
$generator
->
modelClass
?>
$model
* @var ActiveForm $form
*/
...
...
extensions/gii/generators/model/form.php
View file @
927e9ddd
<?php
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var yii\widgets\ActiveForm $form
* @var yii\gii\generators\form\Generator $generator
*/
...
...
extensions/gii/generators/model/templates/model.php
View file @
927e9ddd
...
...
@@ -2,7 +2,7 @@
/**
* This is the template for generating the model class of a specified table.
*
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var yii\gii\generators\model\Generator $generator
* @var string $tableName full table name
* @var string $className class name
...
...
extensions/gii/generators/module/form.php
View file @
927e9ddd
<?php
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var yii\widgets\ActiveForm $form
* @var yii\gii\generators\module\Generator $generator
*/
...
...
extensions/gii/generators/module/templates/controller.php
View file @
927e9ddd
...
...
@@ -2,7 +2,7 @@
/**
* This is the template for generating a controller class within a module.
*
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var yii\gii\generators\module\Generator $generator
*/
echo
"<?php
\n
"
;
...
...
extensions/gii/generators/module/templates/module.php
View file @
927e9ddd
...
...
@@ -2,7 +2,7 @@
/**
* This is the template for generating a module class file.
*
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var yii\gii\generators\module\Generator $generator
*/
$className
=
$generator
->
moduleClass
;
...
...
extensions/gii/generators/module/templates/view.php
View file @
927e9ddd
<?php
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var yii\gii\generators\module\Generator $generator
*/
?>
...
...
extensions/gii/views/default/diff.php
View file @
927e9ddd
<?php
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var mixed $diff
*/
?>
...
...
extensions/gii/views/default/index.php
View file @
927e9ddd
...
...
@@ -2,7 +2,7 @@
use
yii\helpers\Html
;
/**
* @var $this \yii\
base
\View
* @var $this \yii\
web
\View
* @var $content string
* @var yii\gii\Generator[] $generators
* @var yii\gii\Generator $activeGenerator
...
...
extensions/gii/views/default/view.php
View file @
927e9ddd
...
...
@@ -6,7 +6,7 @@ use yii\gii\components\ActiveField;
use
yii\gii\CodeFile
;
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var yii\gii\Generator $generator
* @var string $id
* @var yii\widgets\ActiveForm $form
...
...
extensions/gii/views/default/view/files.php
View file @
927e9ddd
...
...
@@ -4,7 +4,7 @@ use yii\helpers\Html;
use
yii\gii\CodeFile
;
/**
* @var $this \yii\
base
\View
* @var $this \yii\
web
\View
* @var $generator \yii\gii\Generator
* @var CodeFile[] $files
* @var array $answers
...
...
extensions/gii/views/default/view/results.php
View file @
927e9ddd
<?php
/**
* @var yii\
base
\View $this
* @var yii\
web
\View $this
* @var yii\gii\Generator $generator
* @var string $results
* @var boolean $hasError
...
...
extensions/gii/views/layouts/generator.php
View file @
927e9ddd
...
...
@@ -2,7 +2,7 @@
use
yii\helpers\Html
;
/**
* @var $this \yii\
base
\View
* @var $this \yii\
web
\View
* @var $content string
* @var yii\gii\Generator[] $generators
* @var yii\gii\Generator $activeGenerator
...
...
extensions/gii/views/layouts/main.php
View file @
927e9ddd
...
...
@@ -4,7 +4,7 @@ use yii\bootstrap\Nav;
use
yii\helpers\Html
;
/**
* @var $this \yii\
base
\View
* @var $this \yii\
web
\View
* @var $content string
*/
$asset
=
yii\gii\GiiAsset
::
register
(
$this
);
...
...
framework/yii/base/Application.php
View file @
927e9ddd
...
...
@@ -471,7 +471,7 @@ abstract class Application extends Module
'formatter'
=>
[
'class'
=>
'yii\base\Formatter'
],
'i18n'
=>
[
'class'
=>
'yii\i18n\I18N'
],
'urlManager'
=>
[
'class'
=>
'yii\web\UrlManager'
],
'view'
=>
[
'class'
=>
'yii\
base
\View'
],
'view'
=>
[
'class'
=>
'yii\
web
\View'
],
]);
}
...
...
framework/yii/base/View.php
View file @
927e9ddd
...
...
@@ -9,9 +9,6 @@ namespace yii\base;
use
Yii
;
use
yii\helpers\FileHelper
;
use
yii\helpers\Html
;
use
yii\web\JqueryAsset
;
use
yii\web\AssetBundle
;
use
yii\widgets\Block
;
use
yii\widgets\ContentDecorator
;
use
yii\widgets\FragmentCache
;
...
...
@@ -21,9 +18,6 @@ use yii\widgets\FragmentCache;
*
* View provides a set of methods (e.g. [[render()]]) for rendering purpose.
*
* @property \yii\web\AssetManager $assetManager The asset manager. Defaults to the "assetManager" application
* component.
*
* @author Qiang Xue <qiang.xue@gmail.com>
* @since 2.0
*/
...
...
@@ -38,14 +32,6 @@ class View extends Component
*/
const
EVENT_END_PAGE
=
'endPage'
;
/**
* @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'
;
/**
* @event ViewEvent an event that is triggered by [[renderFile()]] right before it renders a view file.
*/
const
EVENT_BEFORE_RENDER
=
'beforeRender'
;
...
...
@@ -55,40 +41,6 @@ class View extends Component
const
EVENT_AFTER_RENDER
=
'afterRender'
;
/**
* 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
;
/**
* 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 ViewContextInterface the context under which the [[renderFile()]] method is being invoked.
*/
public
$context
;
...
...
@@ -136,46 +88,6 @@ class View extends Component
* @internal
*/
public
$dynamicPlaceholders
=
[];
/**
* @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
;
/**
...
...
@@ -516,29 +428,8 @@ class View extends Component
FragmentCache
::
end
();
}
private
$_assetManager
;
/**
* 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
;
}
/**
* Marks the beginning of a
n HTML
page.
* Marks the beginning of a page.
*/
public
function
beginPage
()
{
...
...
@@ -549,301 +440,11 @@ class View extends Component
}
/**
* Marks the ending of a
n HTML
page.
* Marks the ending of a page.
*/
public
function
endPage
()
{
$this
->
trigger
(
self
::
EVENT_END_PAGE
);
$content
=
ob_get_clean
();
foreach
(
array_keys
(
$this
->
assetBundles
)
as
$bundle
)
{
$this
->
registerAssetFiles
(
$bundle
);
}
echo
strtr
(
$content
,
[
self
::
PH_HEAD
=>
$this
->
renderHeadHtml
(),
self
::
PH_BODY_BEGIN
=>
$this
->
renderBodyBeginHtml
(),
self
::
PH_BODY_END
=>
$this
->
renderBodyEndHtml
(),
]);
unset
(
$this
->
metaTags
,
$this
->
linkTags
,
$this
->
css
,
$this
->
cssFiles
,
$this
->
js
,
$this
->
jsFiles
);
}
/**
* 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
*/
private
function
registerAssetFiles
(
$name
)
{
if
(
!
isset
(
$this
->
assetBundles
[
$name
]))
{
return
;
}
$bundle
=
$this
->
assetBundles
[
$name
];
foreach
(
$bundle
->
depends
as
$dep
)
{
$this
->
registerAssetFiles
(
$dep
);
}
$bundle
->
registerAssetFiles
(
$this
);
unset
(
$this
->
assetBundles
[
$name
]);
}
/**
* 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
;
}
/**
* Marks the position of an HTML head section.
*/
public
function
head
()
{
echo
self
::
PH_HEAD
;
}
/**
* Registers the named asset bundle.
* All dependent asset bundles will be registered.
* @param string $name the name of the asset bundle.
* @param integer|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.
* @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 a 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 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.
* @param string $url the CSS file to be registered.
* @param array $options the HTML attributes for the link tag.
* @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
)
{
$key
=
$key
?:
$url
;
$this
->
cssFiles
[
$key
]
=
Html
::
cssFile
(
$url
,
$options
);
}
/**
* Registers a JS code block.
* @param string $js the JS code block to be registered
* @param integer $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_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
)
{
JqueryAsset
::
register
(
$this
);
}
}
/**
* Registers a JS file.
* Please note that when this file depends on other JS files to be registered before,
* for example jQuery, you should use [[registerAssetBundle]] instead.
* @param string $url the JS file to be registered.
* @param array $options the HTML attributes for the script tag. A special option
* named "position" is supported which specifies where the JS script tag should be inserted
* in a page. The possible values of "position" 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.
*
* @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, the latter
* will overwrite the former.
*/
public
function
registerJsFile
(
$url
,
$options
=
[],
$key
=
null
)
{
$position
=
isset
(
$options
[
'position'
])
?
$options
[
'position'
]
:
self
::
POS_END
;
unset
(
$options
[
'position'
]);
$key
=
$key
?:
$url
;
$this
->
jsFiles
[
$position
][
$key
]
=
Html
::
jsFile
(
$url
,
$options
);
}
/**
* 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
);
}
$request
=
Yii
::
$app
->
getRequest
();
if
(
$request
instanceof
\yii\web\Request
&&
$request
->
enableCsrfValidation
)
{
$lines
[]
=
Html
::
tag
(
'meta'
,
''
,
[
'name'
=>
'csrf-var'
,
'content'
=>
$request
->
csrfVar
]);
$lines
[]
=
Html
::
tag
(
'meta'
,
''
,
[
'name'
=>
'csrf-token'
,
'content'
=>
$request
->
getCsrfToken
()]);
}
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
]),
[
'type'
=>
'text/javascript'
]);
}
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
]),
[
'type'
=>
'text/javascript'
]);
}
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.
* @return string the rendered content
*/
protected
function
renderBodyEndHtml
()
{
$lines
=
[];
if
(
!
empty
(
$this
->
jsFiles
[
self
::
POS_END
]))
{
$lines
[]
=
implode
(
"
\n
"
,
$this
->
jsFiles
[
self
::
POS_END
]);
}
if
(
!
empty
(
$this
->
js
[
self
::
POS_END
]))
{
$lines
[]
=
Html
::
script
(
implode
(
"
\n
"
,
$this
->
js
[
self
::
POS_END
]),
[
'type'
=>
'text/javascript'
]);
}
if
(
!
empty
(
$this
->
js
[
self
::
POS_READY
]))
{
$js
=
"jQuery(document).ready(function(){\n"
.
implode
(
"
\n
"
,
$this
->
js
[
self
::
POS_READY
])
.
"
\n
});"
;
$lines
[]
=
Html
::
script
(
$js
,
[
'type'
=>
'text/javascript'
]);
}
return
empty
(
$lines
)
?
''
:
implode
(
"
\n
"
,
$lines
);
ob_end_flush
();
}
}
framework/yii/captcha/CaptchaValidator.php
View file @
927e9ddd
...
...
@@ -96,7 +96,7 @@ class CaptchaValidator extends Validator
* Returns the JavaScript needed for performing client-side validation.
* @param \yii\base\Model $object the data object being validated
* @param string $attribute the name of the attribute to be validated.
* @param \yii\
base
\View $view the view object that is going to be used to render views or view files
* @param \yii\
web
\View $view the view object that is going to be used to render views or view files
* containing a model form with this validator applied.
* @return string the client-side validation script.
*/
...
...
framework/yii/classes.php
View file @
927e9ddd
...
...
@@ -213,6 +213,7 @@ return [
'yii\web\User'
=>
YII_PATH
.
'/web/User.php'
,
'yii\web\UserEvent'
=>
YII_PATH
.
'/web/UserEvent.php'
,
'yii\web\VerbFilter'
=>
YII_PATH
.
'/web/VerbFilter.php'
,
'yii\web\View'
=>
YII_PATH
.
'/web/View.php'
,
'yii\web\XmlResponseFormatter'
=>
YII_PATH
.
'/web/XmlResponseFormatter.php'
,
'yii\web\YiiAsset'
=>
YII_PATH
.
'/web/YiiAsset.php'
,
'yii\widgets\ActiveField'
=>
YII_PATH
.
'/widgets/ActiveField.php'
,
...
...
framework/yii/validators/BooleanValidator.php
View file @
927e9ddd
...
...
@@ -79,7 +79,7 @@ class BooleanValidator extends Validator
* Returns the JavaScript needed for performing client-side validation.
* @param \yii\base\Model $object the data object being validated
* @param string $attribute the name of the attribute to be validated.
* @param \yii\
base
\View $view the view object that is going to be used to render views or view files
* @param \yii\
web
\View $view the view object that is going to be used to render views or view files
* containing a model form with this validator applied.
* @return string the client-side validation script.
*/
...
...
framework/yii/validators/CompareValidator.php
View file @
927e9ddd
...
...
@@ -179,7 +179,7 @@ class CompareValidator extends Validator
* @param \yii\base\Model $object the data object being validated
* @param string $attribute the name of the attribute to be validated
* @return string the client-side validation script
* @param \yii\
base
\View $view the view object that is going to be used to render views or view files
* @param \yii\
web
\View $view the view object that is going to be used to render views or view files
* containing a model form with this validator applied.
* @throws InvalidConfigException if CompareValidator::operator is invalid
*/
...
...
framework/yii/validators/EmailValidator.php
View file @
927e9ddd
...
...
@@ -119,7 +119,7 @@ class EmailValidator extends Validator
* Returns the JavaScript needed for performing client-side validation.
* @param \yii\base\Model $object the data object being validated
* @param string $attribute the name of the attribute to be validated.
* @param \yii\
base
\View $view the view object that is going to be used to render views or view files
* @param \yii\
web
\View $view the view object that is going to be used to render views or view files
* containing a model form with this validator applied.
* @return string the client-side validation script.
*/
...
...
framework/yii/validators/InlineValidator.php
View file @
927e9ddd
...
...
@@ -79,7 +79,7 @@ class InlineValidator extends Validator
*
* @param \yii\base\Model $object the data object being validated
* @param string $attribute the name of the attribute to be validated.
* @param \yii\
base
\View $view the view object that is going to be used to render views or view files
* @param \yii\
web
\View $view the view object that is going to be used to render views or view files
* containing a model form with this validator applied.
* @return string the client-side validation script. Null if the validator does not support
* client-side validation.
...
...
framework/yii/validators/NumberValidator.php
View file @
927e9ddd
...
...
@@ -114,7 +114,7 @@ class NumberValidator extends Validator
* Returns the JavaScript needed for performing client-side validation.
* @param \yii\base\Model $object the data object being validated
* @param string $attribute the name of the attribute to be validated.
* @param \yii\
base
\View $view the view object that is going to be used to render views or view files
* @param \yii\
web
\View $view the view object that is going to be used to render views or view files
* containing a model form with this validator applied.
* @return string the client-side validation script.
*/
...
...
framework/yii/validators/RangeValidator.php
View file @
927e9ddd
...
...
@@ -81,7 +81,7 @@ class RangeValidator extends Validator
* Returns the JavaScript needed for performing client-side validation.
* @param \yii\base\Model $object the data object being validated
* @param string $attribute the name of the attribute to be validated.
* @param \yii\
base
\View $view the view object that is going to be used to render views or view files
* @param \yii\
web
\View $view the view object that is going to be used to render views or view files
* containing a model form with this validator applied.
* @return string the client-side validation script.
*/
...
...
framework/yii/validators/RegularExpressionValidator.php
View file @
927e9ddd
...
...
@@ -78,7 +78,7 @@ class RegularExpressionValidator extends Validator
* Returns the JavaScript needed for performing client-side validation.
* @param \yii\base\Model $object the data object being validated
* @param string $attribute the name of the attribute to be validated.
* @param \yii\
base
\View $view the view object that is going to be used to render views or view files
* @param \yii\
web
\View $view the view object that is going to be used to render views or view files
* containing a model form with this validator applied.
* @return string the client-side validation script.
*/
...
...
framework/yii/validators/RequiredValidator.php
View file @
927e9ddd
...
...
@@ -102,7 +102,7 @@ class RequiredValidator extends Validator
* Returns the JavaScript needed for performing client-side validation.
* @param \yii\base\Model $object the data object being validated
* @param string $attribute the name of the attribute to be validated.
* @param \yii\
base
\View $view the view object that is going to be used to render views or view files
* @param \yii\
web
\View $view the view object that is going to be used to render views or view files
* containing a model form with this validator applied.
* @return string the client-side validation script.
*/
...
...
framework/yii/validators/StringValidator.php
View file @
927e9ddd
...
...
@@ -142,7 +142,7 @@ class StringValidator extends Validator
* Returns the JavaScript needed for performing client-side validation.
* @param \yii\base\Model $object the data object being validated
* @param string $attribute the name of the attribute to be validated.
* @param \yii\
base
\View $view the view object that is going to be used to render views or view files
* @param \yii\
web
\View $view the view object that is going to be used to render views or view files
* containing a model form with this validator applied.
* @return string the client-side validation script.
*/
...
...
framework/yii/validators/UrlValidator.php
View file @
927e9ddd
...
...
@@ -115,7 +115,7 @@ class UrlValidator extends Validator
* Returns the JavaScript needed for performing client-side validation.
* @param \yii\base\Model $object the data object being validated
* @param string $attribute the name of the attribute to be validated.
* @param \yii\
base
\View $view the view object that is going to be used to render views or view files
* @param \yii\
web
\View $view the view object that is going to be used to render views or view files
* containing a model form with this validator applied.
* @return string the client-side validation script.
* @see \yii\Web\ActiveForm::enableClientValidation
...
...
framework/yii/validators/Validator.php
View file @
927e9ddd
...
...
@@ -215,7 +215,7 @@ abstract class Validator extends Component
*
* @param \yii\base\Model $object the data object being validated
* @param string $attribute the name of the attribute to be validated.
* @param \yii\
base
\View $view the view object that is going to be used to render views or view files
* @param \yii\
web
\View $view the view object that is going to be used to render views or view files
* containing a model form with this validator applied.
* @return string the client-side validation script. Null if the validator does not support
* client-side validation.
...
...
framework/yii/web/AssetBundle.php
View file @
927e9ddd
...
...
@@ -10,7 +10,7 @@ namespace yii\web;
use
Yii
;
use
yii\base\InvalidConfigException
;
use
yii\base\Object
;
use
yii\
base
\View
;
use
yii\
web
\View
;
/**
* AssetBundle represents a collection of asset files, such as CSS, JS, images.
...
...
@@ -97,12 +97,12 @@ class AssetBundle extends Object
*/
public
$css
=
[];
/**
* @var array the options that will be passed to [[\yii\
base
\View::registerJsFile()]]
* @var array the options that will be passed to [[\yii\
web
\View::registerJsFile()]]
* when registering the JS files in this bundle.
*/
public
$jsOptions
=
[];
/**
* @var array the options that will be passed to [[\yii\
base
\View::registerCssFile()]]
* @var array the options that will be passed to [[\yii\
web
\View::registerCssFile()]]
* when registering the CSS files in this bundle.
*/
public
$cssOptions
=
[];
...
...
@@ -140,7 +140,7 @@ class AssetBundle extends Object
/**
* Registers the CSS and JS files with the given view.
* @param \yii\
base
\View $view the view that the asset files are to be registered with.
* @param \yii\
web
\View $view the view that the asset files are to be registered with.
*/
public
function
registerAssetFiles
(
$view
)
{
...
...
framework/yii/web/View.php
0 → 100644
View file @
927e9ddd
<?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\helpers\FileHelper
;
use
yii\helpers\Html
;
use
yii\web\JqueryAsset
;
use
yii\web\AssetBundle
;
use
yii\widgets\Block
;
use
yii\widgets\ContentDecorator
;
use
yii\widgets\FragmentCache
;
/**
* View represents a view object in the MVC pattern.
*
* View provides a set of methods (e.g. [[render()]]) for rendering purpose.
*
* @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
{
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
;
/**
* 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
;
/**
* 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
;
}
/**
* Marks the ending of an HTML page.
*/
public
function
endPage
()
{
$this
->
trigger
(
self
::
EVENT_END_PAGE
);
$content
=
ob_get_clean
();
foreach
(
array_keys
(
$this
->
assetBundles
)
as
$bundle
)
{
$this
->
registerAssetFiles
(
$bundle
);
}
echo
strtr
(
$content
,
[
self
::
PH_HEAD
=>
$this
->
renderHeadHtml
(),
self
::
PH_BODY_BEGIN
=>
$this
->
renderBodyBeginHtml
(),
self
::
PH_BODY_END
=>
$this
->
renderBodyEndHtml
(),
]);
unset
(
$this
->
metaTags
,
$this
->
linkTags
,
$this
->
css
,
$this
->
cssFiles
,
$this
->
js
,
$this
->
jsFiles
);
}
/**
* 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
*/
private
function
registerAssetFiles
(
$name
)
{
if
(
!
isset
(
$this
->
assetBundles
[
$name
]))
{
return
;
}
$bundle
=
$this
->
assetBundles
[
$name
];
foreach
(
$bundle
->
depends
as
$dep
)
{
$this
->
registerAssetFiles
(
$dep
);
}
$bundle
->
registerAssetFiles
(
$this
);
unset
(
$this
->
assetBundles
[
$name
]);
}
/**
* 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
;
}
/**
* Marks the position of an HTML head section.
*/
public
function
head
()
{
echo
self
::
PH_HEAD
;
}
/**
* Registers the named asset bundle.
* All dependent asset bundles will be registered.
* @param string $name the name of the asset bundle.
* @param integer|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.
* @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 a 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 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.
* @param string $url the CSS file to be registered.
* @param array $options the HTML attributes for the link tag.
* @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
)
{
$key
=
$key
?:
$url
;
$this
->
cssFiles
[
$key
]
=
Html
::
cssFile
(
$url
,
$options
);
}
/**
* Registers a JS code block.
* @param string $js the JS code block to be registered
* @param integer $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_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
)
{
JqueryAsset
::
register
(
$this
);
}
}
/**
* Registers a JS file.
* Please note that when this file depends on other JS files to be registered before,
* for example jQuery, you should use [[registerAssetBundle]] instead.
* @param string $url the JS file to be registered.
* @param array $options the HTML attributes for the script tag. A special option
* named "position" is supported which specifies where the JS script tag should be inserted
* in a page. The possible values of "position" 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.
*
* @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, the latter
* will overwrite the former.
*/
public
function
registerJsFile
(
$url
,
$options
=
[],
$key
=
null
)
{
$position
=
isset
(
$options
[
'position'
])
?
$options
[
'position'
]
:
self
::
POS_END
;
unset
(
$options
[
'position'
]);
$key
=
$key
?:
$url
;
$this
->
jsFiles
[
$position
][
$key
]
=
Html
::
jsFile
(
$url
,
$options
);
}
/**
* 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
);
}
$request
=
Yii
::
$app
->
getRequest
();
if
(
$request
instanceof
\yii\web\Request
&&
$request
->
enableCsrfValidation
)
{
$lines
[]
=
Html
::
tag
(
'meta'
,
''
,
[
'name'
=>
'csrf-var'
,
'content'
=>
$request
->
csrfVar
]);
$lines
[]
=
Html
::
tag
(
'meta'
,
''
,
[
'name'
=>
'csrf-token'
,
'content'
=>
$request
->
getCsrfToken
()]);
}
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
]),
[
'type'
=>
'text/javascript'
]);
}
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
]),
[
'type'
=>
'text/javascript'
]);
}
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.
* @return string the rendered content
*/
protected
function
renderBodyEndHtml
()
{
$lines
=
[];
if
(
!
empty
(
$this
->
jsFiles
[
self
::
POS_END
]))
{
$lines
[]
=
implode
(
"
\n
"
,
$this
->
jsFiles
[
self
::
POS_END
]);
}
if
(
!
empty
(
$this
->
js
[
self
::
POS_END
]))
{
$lines
[]
=
Html
::
script
(
implode
(
"
\n
"
,
$this
->
js
[
self
::
POS_END
]),
[
'type'
=>
'text/javascript'
]);
}
if
(
!
empty
(
$this
->
js
[
self
::
POS_READY
]))
{
$js
=
"jQuery(document).ready(function(){\n"
.
implode
(
"
\n
"
,
$this
->
js
[
self
::
POS_READY
])
.
"
\n
});"
;
$lines
[]
=
Html
::
script
(
$js
,
[
'type'
=>
'text/javascript'
]);
}
return
empty
(
$lines
)
?
''
:
implode
(
"
\n
"
,
$lines
);
}
}
tests/unit/data/views/layout.php
View file @
927e9ddd
<?php
/**
* @var $this \yii\
base
\View
* @var $this \yii\
web
\View
* @var $content string
*/
?>
...
...
tests/unit/data/views/rawlayout.php
View file @
927e9ddd
<?php
/**
* @var $this \yii\
base
\View
* @var $this \yii\
web
\View
*/
?><?php
$this
->
beginPage
();
?>
1
<?php
$this
->
head
();
?>
2
<?php
$this
->
beginBody
();
?>
3
<?php
$this
->
endBody
();
?>
4
<?php
$this
->
endPage
();
?>
\ No newline at end of file
tests/unit/framework/web/AssetBundleTest.php
View file @
927e9ddd
...
...
@@ -8,7 +8,7 @@
namespace
yiiunit\framework\web
;
use
Yii
;
use
yii\
base
\View
;
use
yii\
web
\View
;
use
yii\web\AssetBundle
;
use
yii\web\AssetManager
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment