===== Controladores =====
=== Definir el layout ===
Por defecto será column2, que muestra una columna en la derecha con el menú de acciones. Se puede cambiar por otro, que ha de estar en **views/layouts**
public $layout='//layouts/milayout';
Si se desea cambiar para una acción en particular y no para el resto, antes de hacer el render dentro de ésta, asignaremos el valor $this->layout:
$this->layout='//layouts/milayout2';
$this->render(.....)
=== Acción por defecto ===
La acción por defecto es 'index'. Para cambiarla, añadimos al principio la variable defaultAction:
public $defaultAction='create';
=== Cambiar los permisos de ejecución de una acción ===
Modificamos el método AccessRules. Para cada bloque, definimos la lista de acciones y los usuarios permitidos para esas acciones:
* Público: 'users'=>array('*')
* Cualquier usuario registrado: 'users'=>array('@')
* Un usuario determinado: 'users'=>array('admin')
* Una expresión: 'expression'=>'Yii::app()->user->roles=="PR"'
. En este caso, utilizamos un dato del usuario activo(roles), que previamente habremos guardado en el momento del login del usuario. Otro ejemplo: 'expression'=>'checkpermiso("profesor")'
. En este caso, llamamos a una función que comprueba si tenemos permiso de profesor. Esta función deberá devolver true o false. IMPORTANTE: La expresión va entre comillas simples porque no se evalúa en este momento, sino que se hará con //eval// en el momento de comprobar los permisos de ejecución.
Si necesitas un control más complejo de los permisos, consulta [[.roles]]
=== Crear una acción ===
- Creamos un método llamado actionACCION, que tendrá como parámetros aquellos datos que sea obligatorio recibir por $_GET. Por ejemplo:
function actionImprimir($id){
...
}
En este caso, la acción imprimir tendrá que ejecutarse de la forma index.php?r=entradas/imprimir&id=33
- Añadimos la acción a AccessRules para asociarle los permisos
- Si es necesario, creamos la vista correspondiente en views/controlador. (Por ejemplo: views/entradas/imprimir.php)