Добавить класс к body

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

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

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

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

Добавить класс к body

Сообщение Aleksander » 19 мар 2016, 13:44

Добрый день.
Подскажите, как добавить класс к body при отображении списка объявлений с картой?
Aleksander
Гражданин
Гражданин
 
Сообщения: 90
Зарегистрирован: 19 ноя 2015, 10:22
Очки репутации: 13

Re: Добавить класс к body

Сообщение Koduc » 24 мар 2016, 03:31

Тут надо понимать такую вещь - что изменение отображения списка объявлений (если переключает пользователь кнопочками) - происходит без перезагрузки страницы, перезагружается только отдельный блок на странице.
Со всеми вытекающими..
Если вопрос актуален при таком раскладе - напишите, скину javascript код для добавления/удаления класса у body
-- Меньше знаешь - крепче спишь --
Аватара пользователя
Koduc
Ведущий разработчик
Ведущий разработчик
 
Сообщения: 902
Зарегистрирован: 28 дек 2011, 09:11
Очки репутации: 20

Re: Добавить класс к body

Сообщение Aleksander » 24 мар 2016, 11:55

Код наподобие такого в файле widgetApartments_list.php ?
Код: Выделить всё
$('#list_map_block').each(function(){
            $(
'body').addClass('maps-list');        
            });      

А нет что нибудь из вариантов php, как в шаблоне atlas?
Код: Выделить всё
echo ($this->htmlPageId == 'index') ? 'b_mainpage' $this->htmlPageId;  

То что с картой будет перезагрузка полностью страницы - оно так и надо, а то как то не хотелось бы, чтобы клиент видел как сайт ломается из одного вида в другой. *SCRATCH*
Aleksander
Гражданин
Гражданин
 
Сообщения: 90
Зарегистрирован: 19 ноя 2015, 10:22
Очки репутации: 13

Re: Добавить класс к body

Сообщение Koduc » 25 мар 2016, 09:13

Если именно через php, то можно попробовать такой вариант.
Файл /protected/components/Controller.php
Добавляем там вначале где идут определения переменных новую переменную, например: public $isMapShow = false;
(по умолчанию false обязательно).
В файле /themes/classic/views/modules/apartments/views/widgetApartments_list.php
ТАм в самом начале есть строка: $modeListShow = $this->modeListShow ? $this->modeListShow : User::getModeListShow();
После нее добавляем:
Код: Выделить всё
if($modeListShow == 'map'$this->isMapShow true;  


НУ и теперь правим файл где у нас лежит body: /themes/classic/views/layouts/main.php
И вместо <body> вписываем что-то типа такого:
Код: Выделить всё
<body class="<?php echo $this->isMapShow "body-class-with-map" ""?>">
-- Меньше знаешь - крепче спишь --
Аватара пользователя
Koduc
Ведущий разработчик
Ведущий разработчик
 
Сообщения: 902
Зарегистрирован: 28 дек 2011, 09:11
Очки репутации: 20

Re: Добавить класс к body

Сообщение Aleksander » 25 мар 2016, 11:44

Ошибка 500
Не определено свойство "ApartmentsWidget.isMapShow". *NO*
Я так понял надо еще что-то добавить в ApartmentsWidget.php?
Aleksander
Гражданин
Гражданин
 
Сообщения: 90
Зарегистрирован: 19 ноя 2015, 10:22
Очки репутации: 13

Re: Добавить класс к body

Сообщение Koduc » 26 мар 2016, 08:43

А, там через виджет, точно.
Замените $this->isMapShow на Yii::app()->controller->isMapShow
-- Меньше знаешь - крепче спишь --
Аватара пользователя
Koduc
Ведущий разработчик
Ведущий разработчик
 
Сообщения: 902
Зарегистрирован: 28 дек 2011, 09:11
Очки репутации: 20

Re: Добавить класс к body

Сообщение Aleksander » 26 мар 2016, 18:07

Здóрово! *THUMBS UP* Спасибо вам большое :-)
Aleksander
Гражданин
Гражданин
 
Сообщения: 90
Зарегистрирован: 19 ноя 2015, 10:22
Очки репутации: 13


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

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

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