The post code is in the controller below. I have also attached the view.
message/messageController
<?php
class ComposeController extends Controller
{
public $defaultAction = 'compose';
public function actionCompose($id = null) {
$message = new Message();
if (Yii::app()->request->getPost('Message')) {
[b]$receiverName = Yii::app()->request->getPost('receiver');[/b]
$message->attributes = Yii::app()->request->getPost('Message');
$message->sender_id = Yii::app()->user->getId();
if ($message->save()) {
Yii::app()->user->setFlash('messageModule', MessageModule::t('Message has been sent'));
$this->redirect($this->createUrl('inbox/'));
}
else if ($message->hasErrors('receiver_id')) {
$message->receiver_id = null;
$receiverName = '';
}
} else {
if ($id) {
$receiver = call_user_func(array(call_user_func(array(Yii::app()->getModule('message')->userModel, 'model')), 'findByPk'), $id);
if ($receiver) {
$receiverName = call_user_func(array($receiver, Yii::app()->getModule('message')->getNameMethod));
$message->receiver_id = $receiver->id;
}
}
}
$this->render(Yii::app()->getModule('message')->viewPath . '/compose', array('model' => $message, 'receiverName' => isset($receiverName) ? $receiverName : null));
}
}
compose view
<?php $this->pageTitle = Yii::app()->name . ’ - ’ . MessageModule::t(“Compose Message”); ?>
<?php
$this->breadcrumbs = array(
MessageModule::t("Messages"),
MessageModule::t("Compose"),
);
?>
<?php $this->renderPartial(Yii::app()->getModule(‘message’)->viewPath . ‘/_navigation’); ?>
<h2><?php echo MessageModule::t(‘Compose New Message’); ?></h2>
<div class="form">
<?php
$form = $this->beginWidget('CActiveForm', array(
'id' => 'message-form',
'enableAjaxValidation' => false,
));
?>
<p class="note"><?php echo MessageModule::t('Fields with <span class="required">*</span> are required.'); ?></p>
<?php echo $form->errorSummary($model); ?>
<div class="row">
<?php echo $form->labelEx($model, 'receiver_id'); ?>
<?php
$this->widget('zii.widgets.jui.CJuiAutoComplete', array(
'name' => 'receiver',
'model' => $model,
'value' => "$receiverName",
'source' => $this->createUrl('suggest/user'),
// additional javascript options for the autocomplete plugin
'options' => array(
'showAnim' => 'fold',
'select' => "js: function(event, ui) {
console.log(ui.item);
$('#PMessages_receiver_id').val(ui.item['id']);
}"
),
));
?>
<?php echo $form->hiddenField($model, ‘receiver_id’); ?>
<?php echo $form->error($model, ‘receiver_id’); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model, 'subject'); ?>
<?php echo $form->textField($model, ‘subject’); ?>
<?php echo $form->error($model, ‘subject’); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model, 'body'); ?>
<?php echo $form->textArea($model, ‘body’); ?>
<?php echo $form->error($model, ‘body’); ?>
</div>
<div class="row buttons">
<?php echo CHtml::submitButton(MessageModule::t("Send")); ?>
</div>
<?php $this->endWidget(); ?>
</div>
<?php $this->renderPartial(Yii::app()->getModule(‘message’)->viewPath . ‘/_suggest’); ?>