Как скрыть карту в объявлениях

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

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

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

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

Как скрыть карту в объявлениях

Сообщение vanred79 » 14 дек 2014, 19:43

Добрый день! Использовал вот этот код показа карты по нажатию кнопки "Показать карту":
Код: Выделить всё


<script>
function op(obj) {
x=document.getElementById(obj);
if(x.style.display == "none") x.style.display = "block";
else x.style.display = "none"
}
</script>

<a href="/" onclick="op('div1'); return false;">Показать на карте</a></p>

<?php

    if
(($data->lat && $data->lng) || Yii::app()->user->getState('isAdmin')){
        if(param('useGoogleMap', 1)){
            ?>
            <div class="row">
                <div class="row" id="gmap">
                    <?php echo $this->actionGmap($data->id, $data); ?>
                </div>
            </div>
            <?php
        
}
        if(param('useYandexMap', 1)){
            ?>
if(param('useYandexMap', 1)){
            ?>
                        <div id="div1" style="display:none">
            <div class="row">
                <div class="row" id="ymap">
                    <?php echo $this->actionYmap($data->id, $data); ?>
                </div>
            </div></div><?php
        
}
    }
    ?>

Код скрывает и показывает нормально, но почему то карта при нажатии кнопки не открывается нормально, на ней ничего не видно (серая).
Подскажите пожалуйста, что поменять в коде, чтобы карта нормально показывалась при нажатии кнопки "Показать на карте"
Вся недвижимость Астаны у нас на сайте
vanred79
Местная знаменитость
Местная знаменитость
 
Сообщения: 660
Зарегистрирован: 02 фев 2013, 18:42
Откуда: Казахстан
Очки репутации: 2

Re: Как скрыть карту в объявлениях

Сообщение andipas » 15 дек 2014, 10:43

vanred79 писал(а):Код скрывает и показывает нормально, но почему то карта при нажатии кнопки не открывается нормально, на ней ничего не видно (серая).
Подскажите пожалуйста, что поменять в коде, чтобы карта нормально показывалась при нажатии кнопки "Показать на карте"


При скрытии карты таким образом, после ее отображения нужно ее инициализация заново. В последней версии для этого есть js функция reInitMap()
Часто задаваемые вопросы. Для правки файлов notepad++, netbeans, phpStorm. Для правки CSS firebug.
Аватара пользователя
andipas
Разработчик
Разработчик
 
Сообщения: 695
Зарегистрирован: 28 дек 2011, 22:37
Очки репутации: 30

Re: Как скрыть карту в объявлениях

Сообщение vanred79 » 15 дек 2014, 15:43

andipas писал(а):
vanred79 писал(а):Код скрывает и показывает нормально, но почему то карта при нажатии кнопки не открывается нормально, на ней ничего не видно (серая).
Подскажите пожалуйста, что поменять в коде, чтобы карта нормально показывалась при нажатии кнопки "Показать на карте"


При скрытии карты таким образом, после ее отображения нужно ее инициализация заново. В последней версии для этого есть js функция reInitMap()


Погуглил насчет использования js функция reInitMap() ничего путного не нашел :(

Есть ли метод скрытия чтобы не инициализацию заново не делать? Может ссылку кинете где можно готовые скрипты поискать
Вся недвижимость Астаны у нас на сайте
vanred79
Местная знаменитость
Местная знаменитость
 
Сообщения: 660
Зарегистрирован: 02 фев 2013, 18:42
Откуда: Казахстан
Очки репутации: 2

Re: Как скрыть карту в объявлениях

Сообщение andipas » 16 дек 2014, 15:34

vanred79 писал(а):Погуглил насчет использования js функция reInitMap() ничего путного не нашел :(

Искать нужно не в гугле, а у нас в коде, в текущей версии в файле - themes/classic/views/modules/apartments/views/_view.php

vanred79 писал(а):Есть ли метод скрытия чтобы не инициализацию заново не делать? Может ссылку кинете где можно готовые скрипты поискать

нет
Часто задаваемые вопросы. Для правки файлов notepad++, netbeans, phpStorm. Для правки CSS firebug.
Аватара пользователя
andipas
Разработчик
Разработчик
 
Сообщения: 695
Зарегистрирован: 28 дек 2011, 22:37
Очки репутации: 30

Re: Как скрыть карту в объявлениях

Сообщение vanred79 » 23 дек 2014, 18:07

Здравствуйте. Подскажите пожалуйста как вот этот код:
Код: Выделить всё
Yii::app()->clientScript->registerScript('reInitMap''
            var useYandexMap = '
.param('useYandexMap'1).';
            var useGoogleMap = '
.param('useGoogleMap'1).';
            var useOSMap = '
.param('useOSMMap'1).';

            function reInitMap(elem) {
                if($(elem).attr("href") == "#tab_6"){
                    // place code to end of queue
                    if(useGoogleMap){
                        setTimeout(function(){
                            var tmpGmapCenter = mapGMap.getCenter();

                            google.maps.event.trigger($("#googleMap")[0], "resize");
                            mapGMap.setCenter(tmpGmapCenter);

                            if (($("#gmap-panorama").length > 0)) {
                                initializeGmapPanorama();
                            }
                        }, 0);
                    }

                    if(useYandexMap){
                        setTimeout(function(){
                            ymaps.ready(function () {
                                globalYMap.container.fitToViewport();
                                globalYMap.setCenter(globalYMap.getCenter());
                            });
                        }, 0);
                    }

                    if(useOSMap){
                        setTimeout(function(){
                            L.Util.requestAnimFrame(mapOSMap.invalidateSize,mapOSMap,!1,mapOSMap._container);
                        }, 0);
                    }
                }
            }
        '
,
        
CClientScript::POS_END); 


Правильно вставить сюда:
Код: Выделить всё
if(param('useYandexMap', 1)){
            ?>
            <p><strong>Карта</strong></p>
            <div class="row">
                <div class="row" id="ymap">
                    <?php echo $this->actionYmap($data->id$data); ?>
                </div>
            </div>


Если вставить код без изменений карта не появляется :(
Вся недвижимость Астаны у нас на сайте
vanred79
Местная знаменитость
Местная знаменитость
 
Сообщения: 660
Зарегистрирован: 02 фев 2013, 18:42
Откуда: Казахстан
Очки репутации: 2

Re: Как скрыть карту в объявлениях

Сообщение Xpycm » 26 дек 2014, 09:13

Код: Выделить всё
Yii::app()->clientScript->registerScript('reInitMap''
            var useYandexMap = '
.param('useYandexMap'1).';
            var useGoogleMap = '
.param('useGoogleMap'1).';
            var useOSMap = '
.param('useOSMMap'1).';

            function reInitMap(elem) {
                if($(elem).attr("data-href") == "tab_42"){
                    // place code to end of queue
                    if(useGoogleMap){
                        setTimeout(function(){
                            var tmpGmapCenter = mapGMap.getCenter();

                            google.maps.event.trigger($("#googleMap")[0], "resize");
                            mapGMap.setCenter(tmpGmapCenter);

                            if (($("#gmap-panorama").length > 0)) {
                                initializeGmapPanorama();
                            }
                        }, 0);
                    }

                    if(useYandexMap){
                        setTimeout(function(){
                            ymaps.ready(function () {
                                globalYMap.container.fitToViewport();
                                globalYMap.setCenter(globalYMap.getCenter());
                            });
                        }, 0);
                    }

                    if(useOSMap){
                        setTimeout(function(){
                            L.Util.requestAnimFrame(mapOSMap.invalidateSize,mapOSMap,!1,mapOSMap._container);
                        }, 0);
                    }
                }
            }
        '
,
        
CClientScript::POS_END);  


Также необходимо при клике вызывать метод reInitMap и задать аттрибут data-href

Т.е будет примерно так:
Код: Выделить всё
<p onclick="reInitMap(this)" data-href="tab_42"><strong>Карта</strong></p



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

Re: Как скрыть карту в объявлениях

Сообщение vanred79 » 29 дек 2014, 09:26

Добрый день Хруст! Подскажите пожалуйста, если карту скрыть и показывать только по клику по ссылке, скорость загрузки страницы быстрее станет? Или останется неизменной?
Вся недвижимость Астаны у нас на сайте
vanred79
Местная знаменитость
Местная знаменитость
 
Сообщения: 660
Зарегистрирован: 02 фев 2013, 18:42
Откуда: Казахстан
Очки репутации: 2


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

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

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

cron