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

Вопросы и ответы по изменению функционала, смене дизайна, переносу сайта и т.п.

Модераторы: Xpycm, Koduc

Правила форума
ВНИМАНИЕ! Форум не является средством гарантированной поддержки клиентов и пользователей. Поэтому на быстрый ответ тут рассчитывать не нужно, как и на ответ вообще. Сотрудники отвечают по мере своих возможностей.

На форуме действует ограничение в 3 сообщения / сутки.
Если Вы хотите сказать "спасибо", то воспользуйтесь функцией "Повысить репутацию" - зелёная иконка "плюс" под ником ответившего.

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

Сообщение yoght » 14 май 2012, 12:07

Подскажите, пожалуйста, как добавить dropdownlist с obj_type, вместо количества комант в форме оставления заявки. Хотябы примерно, сам попробую допилить.
Изображение
yoght
Незнакомец
 
Сообщения: 8
Зарегистрирован: 10 фев 2012, 14:47
Очки репутации: 0

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

Сообщение Xpycm » 14 май 2012, 12:31

Файл 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

Ну и дальше редактируете письма-оповещения
Dropbox
Open Real Estate CMS: FAQ | FAQ 2 | FAQ 3
Изображение
Xpycm
Разработчик
Разработчик
 
Сообщения: 1592
Зарегистрирован: 30 дек 2011, 11:06
Откуда: Йошкар-Ола
Очки репутации: 50

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

Сообщение yoght » 14 май 2012, 13:41

Спасибо, все работает!
И еще, как сделать чтобы в письме, вместо цифры типа недвижимости было название
Изображение
yoght
Незнакомец
 
Сообщения: 8
Зарегистрирован: 10 фев 2012, 14:47
Очки репутации: 0

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

Сообщение Xpycm » 14 май 2012, 13:46

Взять по ID название из таблицы
Dropbox
Open Real Estate CMS: FAQ | FAQ 2 | FAQ 3
Изображение
Xpycm
Разработчик
Разработчик
 
Сообщения: 1592
Зарегистрирован: 30 дек 2011, 11:06
Откуда: Йошкар-Ола
Очки репутации: 50

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

Сообщение yoght » 14 май 2012, 16:02

А можете подсказать где этот запрос происходит для проля type, чтобы сделать аналогично для поля obj_type *WALL*
yoght
Незнакомец
 
Сообщения: 8
Зарегистрирован: 10 фев 2012, 14:47
Очки репутации: 0

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

Сообщение Xpycm » 15 май 2012, 09:59

protected\modules\booking\controllers\MainController.php, метод actionMainform

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

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

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


Но, это все не так очевидно, могут возникнуть ошибки в других местах.
Для такого рода доработок лучше обращайтесь к нам.
Dropbox
Open Real Estate CMS: FAQ | FAQ 2 | FAQ 3
Изображение
Xpycm
Разработчик
Разработчик
 
Сообщения: 1592
Зарегистрирован: 30 дек 2011, 11:06
Откуда: Йошкар-Ола
Очки репутации: 50

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

Сообщение reservist » 21 май 2012, 22:40

А как убрать в форме заявки "обязательность" с поля, например, E-mail?
reservist
Прохожий
 
Сообщения: 28
Зарегистрирован: 29 фев 2012, 22:08
Очки репутации: 0

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

Сообщение Koduc » 22 май 2012, 11:58

Начнем с того, что есть 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 подправить возможно придется, если ошибки какие будут.
-- Меньше знаешь - крепче спишь --
Аватара пользователя
Koduc
Ведущий разработчик
Ведущий разработчик
 
Сообщения: 902
Зарегистрирован: 28 дек 2011, 09:11
Очки репутации: 20


Вернуться в Вопросы и помощь по изменениям

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13