Commit e7f1b315 by larnu

Spanish docs Theming

parent 39714b89
......@@ -106,7 +106,7 @@ Visualizar datos
* **TBD** [Proveedores de datos](output-data-providers.md)
* **TBD** [Widgets de datos](output-data-widgets.md)
* **TBD** [Trabajar con scripts de cliente](output-client-scripts.md)
* **TBD** [Utilización de temas](output-theming.md)
* [Temas](output-theming.md)
Seguridad
......
Temas
=====
> Nota: Esta sección está en desarrollo.
Un tema (theme) es un directorio de archivos y de vistas (views) y layouts. Cada archivo de este directorio
sobrescribe el archivo correspondiente de una aplicación cuando se renderiza. Una única aplicación puede usar
múltiples temas para que pueden proporcionar experiencias totalmente diferentes. Solo se puede haber un único tema
activo.
> Nota: Los temas no están destinados a ser redistribuidos ya que están demasiado ligados a la aplicación. Si se
quiere redistribuir una apariencia personalizada, se puede considerar la opción de
[asset bundles](structure-assets.md) de archivos CSS y Javascript.
Configuración de un Tema
------------------------
La configuración de un tema se especifica a través del componente `view` de la aplicación. Para establecer que un tema
trabaje con vistas de aplicación básicas, la configuración de la aplicación debe contener lo siguiente:
```php
'components' => [
'view' => [
'theme' => [
'pathMap' => ['@app/views' => '@app/themes/basic'],
'baseUrl' => '@web/themes/basic',
],
],
],
```
En el ejemplo anterior, el `pathMap` define un mapa (map) de las rutas a las que se aplicará el tema mientras que
`baseUrl` define la URL base para los recursos a los que hacen referencia los archivos del tema.
En nuestro caso `pathMap` es `['@app/views' => '@app/themes/basic']`. Esto significa que cada vista de `@app/views`
primero se buscará en `@app/themes/basic` y si existe, se usará la vista del directorio del tema en lugar de la vista
original.
Por ejemplo, con la configuración anterior, la versión del tema para la vista `@app/views/site/index.php` será
`@app/themes/basic/site/index.php`. Básicamente se reemplaza `@app/views` en `@app/views/site/index.php` por
`@app/themes/basic`.
### Temas para Módulos
Para utilizar temas en los módulos, el `pathMap` debe ser similar al siguiente:
```php
'components' => [
'view' => [
'theme' => [
'pathMap' => [
'@app/views' => '@app/themes/basic',
'@app/modules' => '@app/themes/basic/modules', // <-- !!!
],
],
],
],
```
Esto permite aplicar el tema a `@app/modules/blog/views/comment/index.php` con la vista
`@app/themes/basic/modules/blog/views/comment/index.php`.
### Temas para Widgets
Para utilizar un tema en una vista que se encuentre en `@app/widgets/currency/views/index.php`, se debe aplicar la
siguiente configuración para el componente vista, tema:
```php
'components' => [
'view' => [
'theme' => [
'pathMap' => ['@app/widgets' => '@app/themes/basic/widgets'],
],
],
],
```
Con la configuración anterior, se puede crear una versión de la vista `@app/widgets/currency/index.php` para que se
aplique el tema en `@app/themes/basic/widgets/currency/index.php`.
Uso de Multiples Rutas
----------------------
Es posible mapear una única ruta a múltiples rutas de temas. Por ejemplo:
```php
'pathMap' => [
'@app/views' => [
'@app/themes/christmas',
'@app/themes/basic',
],
]
```
En este caso, primero se buscara la vista en `@app/themes/christmas/site/index.php`, si no se encuentra, se intentará
en `@app/themes/basic/site/index.php`. Si la vista no se encuentra en ninguna de rutas especificadas, se usará la
vista de aplicación.
Esta capacidad es especialmente útil si se quieren sobrescribir algunas rutas temporal o condicionalmente.
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment