<?php

/**
 * @class Controller
 * @brief Clase básica para los controladores de la aplicación.
 *
 * @package application.components
 */
class Controller extends CController {

    /**
     * @var string the default layout for the controller view. Defaults to '//layouts/column1',
     * meaning using a single column layout. See 'protected/views/layouts/column1.php'.
     */
    public $layout = '//layouts/main';

    /**
     * @var array context menu items. This property will be assigned to {@link CMenu::items}.
     */
    public $menu = array();

    /**
     * @var array the breadcrumbs of the current page. The value of this property will
     * be assigned to {@link CBreadcrumbs::links}. Please refer to {@link CBreadcrumbs::links}
     * for more details on how to specify this property.
     */
    public $breadcrumbs = array();

    /**
     * @brief Valida uno o más modelos y genera el resultado en formato JSON.
     * @param mixed $models instancia de un modelo o un array de modelos 
     * @param string $ajaxId identificador AJAX que se comparará con $_POST['ajax']
     */
    protected function performAjaxValidation($models, $ajaxId) {
        Yii::trace('Validación AJAX de modelo', 'application.components.Controller');
        if (isset($_POST['ajax']) && $_POST['ajax'] === $ajaxId) {
            $result = CActiveForm::validate($models);
            Yii::trace(CVarDumper::dumpAsString($result), 'application.components.Controller');
            echo $result;
            Yii::app()->end();
        }
    }

}