/**
     * @param CActiveRecord $modelClass
     * @param CDbColumnSchema $column
     */
    public function generateActiveField($modelClass, CDbColumnSchema $column)
    {
        if ($column->isForeignKey) {
            $model = CActiveRecord::model($modelClass);
            $table = $model->getTableSchema();
            $fk = $table->foreignKeys[$column->name];
            if (strpos($fk[0], '_') !== false) {
                $ptable = explode('_', $fk[0]);
                $prexTable = $ptable[0];
                $nameTable = $ptable[1];
                $fmodel = CActiveRecord::model(ucfirst($nameTable));
                $modelTable = ucfirst($nameTable);
            } else {
                die('Error');
                $fmodel = CActiveRecord::model(ucfirst($fk[0]));
                $modelTable = ucfirst($fmodel->tableName());
            }
            $ftable = $fmodel->getTableSchema();
            $fcolumns = $fmodel->attributeNames();
            if ($column->allowNull) {
                return "echo CHtml::activeDropDownList(\$model,'{$column->name}',CHtml::listData({$modelTable}::model()->findAll(), '{$ftable->primaryKey}', '{$fcolumns[1]}'),array('prompt'=>Yii::t('App', 'Choose...')))";
            }
            return "echo CHtml::activeDropDownList(\$model,'{$column->name}',CHtml::listData({$modelTable}::model()->findAll(), '{$ftable->primaryKey}', '{$fcolumns[1]}'))";
        } else {
            if (strtoupper($column->dbType) == 'TINYINT(1)' || strtoupper($column->dbType) == 'BIT' || strtoupper($column->dbType) == 'BOOL' || strtoupper($column->dbType) == 'BOOLEAN') {
                return "echo \$form->checkBox(\$model,'{$column->name}')";
            } else {
                if (strtoupper($column->dbType) == 'DATE' || strtoupper($column->dbType) == 'TIMESTAMP') {
                    return <<<EOD
\$this->widget('zii.widgets.jui.CJuiDatePicker',
              array(
                    'model'=>'\$model',
                    'name'=>'{$modelClass}[{$column->name}]',
                    'language'=>'es',
                    //'mode'=>'imagebutton',
                    //'theme'=>'smoothness',
                    'value'=>\$model->{$column->name},
                    /*'htmlOptions'=>array('size'=>10, 'style'=>'width:80px !important'),
\t\t            'options'=>array(
\t\t             \t'showButtonPanel'=>true,
\t\t\t\t\t\t'changeYear'=>true,
              \t\t\t),*/
              \t\t)
             )
EOD;
                } elseif (strtolower($column->name) == 'descripcion' || stripos($column->dbType, 'text') !== false) {
                    return "echo \$form->textArea(\$model,'{$column->name}')";
                } else {
                    return 'echo ' . parent::generateActiveField($modelClass, $column);
                }
            }
        }
    }
示例#2
0
 public function run($args)
 {
     $this->templatePath = dirname(__FILE__) . '/ocrud';
     parent::run($args);
 }