/** * @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); } } } }
public function run($args) { $this->templatePath = dirname(__FILE__) . '/ocrud'; parent::run($args); }