@jackmoe: do you like this? Is it correct?
I have the following:
/ modules / groups / controllers / NewsController.php
/ modules / pages / controllers / NewsController.php
/modules/groups/NewsController.php
...
public function actionCreate()
{
if (!Yii::app()->user->checkAccess("groups.createNews"))
$this->accessDenied();
$news=new NewsGroup();
if(isset($_POST['NewsGroup']))
{
$news->attributes=$_POST['NewsGroup'];
if($this->group->addNews($news))
$this->redirect($news->getUrl($this->group));
}
$this->render('create',array(
'model'=>$news,
));
}
...
/modules/groups/views/create.php
<h1><?php echo Yii::t('groups','Create news')?></h1>
<?php $this->widget('application.components.pack.news.CCreateFormNewsWidget', array(
'model'=>$model)
);?>
/components/pack/news/CCreateFormNewsWidget.php
class CCreateFormNewsWidget extends CWidget{
public $model;
public function run(){
$this->render('_form', array('model' => $this->model));
}
}
/components/pack/news/views/_form.php
<?php $form=$this->beginWidget('CActiveForm', array(
'htmlOptions'=>array('enctype'=>'multipart/form-data'),
));?>
<div class="row">
<?php echo $form->labelEx($model,'title'); ?>
<?php echo $form->textField($model,'title',array('size'=>50,'maxlength'=>150)); ?>
<?php echo $form->error($model,'title'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'entry'); ?>
<?php echo $form->textField($model,'entry', array('size'=>50,'maxlength'=>150)); ?>
<?php echo $form->error($model,'entry'); ?>
</div>
<?php if ($this->controller->module->id == 'groups'):?>
<div class="row">
<?php echo $form->labelEx($model,'access_flag'); ?>
<?php echo $form->checkBox($model,'access_flag'); ?> <?php echo Yii::t('groups','Only members.')?>
</div>
<?php endif;?>
<div class="row buttons">
<?php echo CHtml::submitButton($model->isNewRecord ? Yii::t('news','Create') : Yii::t('news','Save')); ?>
</div>
<?php $this->endWidget(); ?>
Now i can reuse CCreateFormNewsWidget in other views.
Thanks