Страница 1 из 1

Новое поле в "Оставить заявку"

СообщениеДобавлено: 14 май 2012, 12:07
yoght
Подскажите, пожалуйста, как добавить dropdownlist с obj_type, вместо количества комант в форме оставления заявки. Хотябы примерно, сам попробую допилить.
Изображение

Re: Новое поле в "Оставить заявку"

СообщениеДобавлено: 14 май 2012, 12:31
Xpycm
Файл protected\modules\booking\views\simpleform.php
добавьте:
Код: Выделить всё
<div class="row">
    <?php echo $form->labelEx($model,'obj_type'); ?>
    <?php echo $form->dropDownList($model,'obj_type', Apartment::getObjTypesArray(), array('class' => 'width200')); ?>
    <?php echo $form->error($model,'obj_type'); ?>
</div>


файл protected\modules\booking\models\SimpleformModel.php
Код: Выделить всё
public function attributeLabels() {
    return array(
    ...
    'obj_type' => 'Тип недвижимости',
    );
}
 


Код: Выделить всё
public function rules() {
    return array(
    ...
    array('obj_type', 'required'),
    );
}
 


Код: Выделить всё
class SimpleformModel extends CFormModel {
    ...
    public $type;
    public $obj_type;
    ... 


Получится - http://clip2net.com/s/1USdg

Ну и дальше редактируете письма-оповещения

Re: Новое поле в "Оставить заявку"

СообщениеДобавлено: 14 май 2012, 13:41
yoght
Спасибо, все работает!
И еще, как сделать чтобы в письме, вместо цифры типа недвижимости было название
Изображение

Re: Новое поле в "Оставить заявку"

СообщениеДобавлено: 14 май 2012, 13:46
Xpycm
Взять по ID название из таблицы

Re: Новое поле в "Оставить заявку"

СообщениеДобавлено: 14 май 2012, 16:02
yoght
А можете подсказать где этот запрос происходит для проля type, чтобы сделать аналогично для поля obj_type *WALL*

Re: Новое поле в "Оставить заявку"

СообщениеДобавлено: 15 май 2012, 09:59
Xpycm
protected\modules\booking\controllers\MainController.php, метод actionMainform

Код: Выделить всё

$type 
Apartment::getTypesArray();
$type array_flip($type);

$model->type array_search($model->type$type);
 


Но, это все не так очевидно, могут возникнуть ошибки в других местах.
Для такого рода доработок лучше обращайтесь к нам.

Re: Новое поле в "Оставить заявку"

СообщениеДобавлено: 21 май 2012, 22:40
reservist
А как убрать в форме заявки "обязательность" с поля, например, E-mail?

Re: Новое поле в "Оставить заявку"

СообщениеДобавлено: 22 май 2012, 11:58
Koduc
Начнем с того, что есть 2 формы бронирования. Одна "простая", там просто оставляется заявка на аренду/продажу и т.д.
Есть вторая - которая привязана именно к объявлению - то есть снять именно данную квартиру.

Обе формы лежат в /protected/modules/booking
Если править внешний вид - то /views/bookingform.php и simpleform.php (для простой формы).
Если именно правила валидации - то /models/Booking.php и SimpleformModel.php
Все правила валидации описываются в функции rules(). Если надо сделать, чтобы поле было не обязательным, то делаем его safe вместо required. Т.е. было например:
Код: Выделить всё
    public function rules() {
        return array(
            array(
'username, comment''safe'),
            array(
'phone, useremail''required'),
        );
    }
 

То делаем что-то типа такого:
Код: Выделить всё
    public function rules() {
        return array(
            array(
'username, comment, useremail''safe'),
            array(
'phone''required'),
        );
    }
 

Ну и плюс надо проверять после этого будет ли всё корректно работать, потому как при отправлении заявки на бронь происходит автоматическая регистрация пользователя, а email там необходим. Плюс оповещения на e-mail подправить возможно придется, если ошибки какие будут.