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

Нет адаптивного дизайна модуля Сезонные цены

СообщениеДобавлено: 04 авг 2019, 10:31
TRE
Просьба разрабочику поправить дизайн модуля "Сезонные цены". Адаптивности именно этого модуля нет вообще.

При просмотре на мобильных устройствах таблица сезонных цен не трансформируется в один столбец, но вылезает вправо, за экран и рушит полностью разметку страницы "Добавить объявление".

У меня 1.29.2 Про, тема Базис, но такая "беда" во всех темах и версиях - можно убедиться даже на демо онлайн.

Могу поправить и сам, но это нужно всем, т.к. портит "товарный вид" в век, когда мобильные устройства превалируют у клиентов.

Спасибо заранее!

Re: Нет адаптивного дизайна модуля Сезонные цены

СообщениеДобавлено: 04 авг 2019, 14:12
Xpycm
Спасибо, что описываете недочёты.

Решение:
Файл themes\basis\views\modules\seasonalprices\views\_table_guest.php
вместо:
Код: Выделить всё
'value' => 'CHtml::encode($data["name_".Yii::app()->language])' 

вставьте:
Код: Выделить всё
'value' => '(isset($data->["name_".Yii::app()->language]) && !empty($name = $data->["name_".Yii::app()->language])) ? $name : "-"'


ниже в этом же файле после:
Код: Выделить всё
'id' => 'apartment-seasonal-prices-grid'

вставьте:
Код: Выделить всё
'htmlOptions' => array('class' => 'grid-view table-responsive'), 


В файле \themes\basis\views\modules\seasonalprices\views\_form.php
Код: Выделить всё
$urlParams['apId'] = $apartment->id

замените на:
Код: Выделить всё
$urlParams['apId'] = ($apartment->id) ?? 0


Должно стать лучше

Re: Нет адаптивного дизайна модуля Сезонные цены

СообщениеДобавлено: 04 авг 2019, 17:39
TRE
Благодарю за оперативный ответ!

Но последняя замена строчки $urlParams['apId'] = ($apartment->id) ?? 0; вызывает остановку скрипта. Где-то ошибка. Проверьте, пож-та, у себя.

У меня PHP 5.6, не седьмой.

Полагаю, что нужно также сократить формат даты в полях "от" и "до" до числового (10.03) по (21.11) - например. Вместо названия месяца словом.
Тогда пользовательское название сезона прекрасно поместится в первый столбец.

Re: Нет адаптивного дизайна модуля Сезонные цены

СообщениеДобавлено: 06 авг 2019, 10:02
Foton
Здравствуйте
Попробуйте $urlParams['apId'] = isset($apartment->id) ? $apartment->id : 0;

Re: Нет адаптивного дизайна модуля Сезонные цены

СообщениеДобавлено: 06 авг 2019, 10:47
TRE
Foton писал(а):Здравствуйте
Попробуйте $urlParams['apId'] = isset($apartment->id) ? $apartment->id : 0;


Спасибо, попробовал, с этой строчкой скрипт работает, но нет вывода поля "название сезона", там пусто.

Т.Е. ВОПРОС ТЕМЫ НЕ РЕШЕН.

И еще разработчикам: нет автоматического контроля, если пользователь введет ошибочно сезонные цены, перекрывающие по календарю друг друга.

Re: Нет адаптивного дизайна модуля Сезонные цены

СообщениеДобавлено: 24 май 2020, 23:55
Dmitry
что-то я совсем зарылся с тестированием и никак руки не дойдут до плотного изучения Yii (да еще и везде лезет инфа для Yii2, которая еще больше сбивает с толку).

Спасайте! Хочу избавить своих пользователей от излишних обязательных "кричащих" полей при заполнении объявления и в модуле Сезонные цены мне очень нужно, чтобы у поля "Наименование сезона *" для каждого сезона было заполнено значением по умолчанию, например, "-", то есть так же как "Минимальный срок аренды" устанавливается по дефолту "0"
Подскажите в каком направлении рыть?
На примере Dolphin или Atlas (уже даже не знаю - глаза разбегаются между темами, но от Делфина возникает ощущение сырости и уже начинаю всерьез думать о переориентации на Атлас... хотя может я его просто мало тестировал :-[ )

И еще рдин вопрос по этой же теме - есть минимальный срока аренды, который в этом модуле заполняется, а как им можно воспользоваться? То есть найти тех у кого 0 или 1, чтобы можно было вывести объявления для тех кто хочет арендовать на сутки и меньше? Он же не только для ограничения бронирования при по кнопке "бронировать"?

Re: Нет адаптивного дизайна модуля Сезонные цены

СообщениеДобавлено: 25 май 2020, 08:12
Xpycm
Файлы protected/modules/apartments/controllers/backend/MainController.php и protected/modules/userads/controllers/MainController.php
После
Код: Выделить всё
$seasonalPricesModel = new Seasonalprices

вставьте:
Код: Выделить всё
$seasonalPricesModel->setDefaults(); 


В файле protected/modules/seasonalprices/models/Seasonalprices.php
Код: Выделить всё
public function setDefaults()
{
    foreach (
Lang::getActiveLangs() as $lang) {
        
$this->{'name_' $lang} = '-';
    }


Теме Atlas на данный момент уже почти 6 лет. В ней априори уже не может быть критических ошибок.

Минимальный срок аренды сейчас только для отображения в ценах. Никаких ограничений при бронировании это не накладывает

Re: Нет адаптивного дизайна модуля Сезонные цены

СообщениеДобавлено: 25 май 2020, 20:08
Dmitry
Спасибо! Но тут одна категория людей осталась не учтённой, причем самая уязвимая, это гости. И у администратора и у зарегистрированных пользователей поле при создании теперь не ругается (отображается скромный "-"). Кто не поленится - придумает более сложное название своим сезонам :-)
Думаю, что совсем не лишним было бы так же сделать в "коробочном" варианте.

Только сейчас обратил внимание, что в этом модуле нет красных звездочек (обязательные для заполнения поля) около надписи "От / До" что-то типа "От * / До *" или хотя бы одну общую "От / До *"

Offtop:
Спасибо за оперативное решение в теме про шаблонные вставки {...} - так заработало, но в коде не хватает пары мелочей: <?php в начале и ?> в конце.

Re: Нет адаптивного дизайна модуля Сезонные цены

СообщениеДобавлено: 26 май 2020, 08:44
Xpycm
Файл protected/modules/guestad/controllers/MainController.php
после
Код: Выделить всё
$seasonalPricesModel = null;

добавьте:
Код: Выделить всё
if (issetModule('seasonalprices')) {
    $seasonalPricesModel = new Seasonalprices;
    $seasonalPricesModel->setDefaults();
}


В коробочный вариант на данный момент добавлять не планируем, потому что подобных обращений больше не было.

Файл themes/НАЗВАНИЕ_ТЕМЫ/views/modules/seasonalprices/views/_form.php
Замените
Код: Выделить всё
<?php echo CHtml::activeLabel($seasonalPricesModel, 'dateEnd', array('class' => 'noblock')); ?>

на
Код: Выделить всё
<?php echo CHtml::activeLabel($seasonalPricesModel'dateEnd', array('class' => 'noblock''required' => $seasonalPricesModel->isAttributeRequired('date_end'))); ?>