Russian TYPO3 community Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community  

Вернуться   Russian TYPO3 community > Обсуждение общих технических вопросов > Общие вопросы

Ответ
 
Опции темы Опции просмотра
Старый 19.08.2011, 18:28   #1
_3AMnoTEX_
Новенький
 
Регистрация: 31.01.2011
Сообщений: 15
По умолчанию Multiple Content + DCD GoogleMap?

Есть у меня на странице элемент - вкладочки (экстеншн jfmulticontent). Захотелось мне добавить вкладочку, внутри которой будет карта (екстеншн dcdgooglemap). Но когда я открываю вкладку, карты нет.
Может, кто сталкивался с этой проблемой?
_3AMnoTEX_ вне форума   Ответить с цитированием
Старый 22.08.2011, 23:12   #2
_3AMnoTEX_
Новенький
 
Регистрация: 31.01.2011
Сообщений: 15
По умолчанию

Я написал письмо разработчику Multiple Content Jurgen Furrer'у. Он подкинул ссылочку, куда копать. Как я и подозревал, проблема кроется в jQuery (мой вольный перевод):

Почему Google Map не работает, если его поместить в скрытую (неактивную) вкладку?
Любой компонент, требующий вычисления его размеров при иницилизации, не будет работать в скрываемой вкладке, потому что сама панель вкладки скрыта посредством свойства "display: none", так что любые элементы внутри будут создаваться в большинстве браузеров с нулевыми размерами.
Эту неприятность легко обойти.
Скрывать неактивные вкладки надо за границами экрана:
Код:
.ui-tabs .ui-tabs-hide {
    position: absolute;
    left: -10000px;
}
Карту Google maps можно показыватькаждый раз, когда показывается вкладка:
Код:
$('#example').bind('tabsshow', function(event, ui) {
    if (ui.panel.id == "map-tab") {
        resizeMap();
    }
});
resizeMap() вызывает функцию checkResize() Google Maps для нужной карты.

Итак, файл css я поправил, работает.
файл лежит по этому пути:
/ext/jfmulticontent/res/jquery/css/theme-1.8.14/jquery-ui-1.8.14.custom.css

Но вот как на отдельно взятую страницу воткнуть функцию jQuery, я не знаю
Буду пока искать...
_3AMnoTEX_ вне форума   Ответить с цитированием
Старый 23.08.2011, 09:25   #3
Андрей Аксенов
Senior Member
 
Регистрация: 12.04.2008
Адрес: Россия, Москва
Сообщений: 706
Отправить сообщение для Андрей Аксенов с помощью ICQ Отправить сообщение для Андрей Аксенов с помощью Skype™
По умолчанию

А куда на "отдельно взятую страницу воткнуть функцию jQuery" нужно? При помощи TS разве не получится?
Андрей Аксенов вне форума   Ответить с цитированием
Старый 23.08.2011, 12:05   #4
_3AMnoTEX_
Новенький
 
Регистрация: 31.01.2011
Сообщений: 15
По умолчанию

Пробовал через TsConfig в настройках страницы - что-то не получилось, и вообще прочитал, что TsConfig предназначен для настройки бэкенда.
Через TypoScript в шаблоне добавить получается, но скрипт добавляется на все страницы с этим шаблоном..
_3AMnoTEX_ вне форума   Ответить с цитированием
Старый 23.08.2011, 12:30   #5
Андрей Аксенов
Senior Member
 
Регистрация: 12.04.2008
Адрес: Россия, Москва
Сообщений: 706
Отправить сообщение для Андрей Аксенов с помощью ICQ Отправить сообщение для Андрей Аксенов с помощью Skype™
По умолчанию

Естественно на все страницы, так шаблон нужно сделать именно для этой страницы, а на страницах ниже убрать этот код...
Что-то вроде такого в Настройках шаблона TS для данной страницы написать:
PHP код:
page.headerData {
    
199 HTML
    199.value 
= <script type="text/javascript">...</script>
    } 
А на страница ниже убрать этот код проще некуда:
PHP код:
page.headerData.199 
все...
Андрей Аксенов вне форума   Ответить с цитированием
Старый 28.08.2011, 17:33   #6
_3AMnoTEX_
Новенький
 
Регистрация: 31.01.2011
Сообщений: 15
По умолчанию

Приведенные решения не работают, как надо, я смог заставить работать только "родные" карты Google (не typo3 extension) с фиксированным размером.
Итак, вот на чем я остановился:
в файле /ext/jfmulticontent/res/jquery/css/theme-1.8.16/jquery-ui-1.8.16.custom.css
меняю стили (без этого вообще работать отказывается):
Код:
/*.ui-tabs .ui-tabs-hide { display: none !important; }*/
.ui-tabs .ui-tabs-hide { position: absolute; left: -10000px; }
вставляю "родную" google map (plain HTML):
Код HTML:
<div id="gmap_world" style="width:600px; height:500px"></div>
и скрипт:
Код:
page.headerData {
    199 = HTML
    199.value (
<script type="text/javascript"
    src="http://maps.googleapis.com/maps/api/js?sensor=false">
</script>
<script type="text/javascript">
        window.onload = function () {
          initialize();
        }
</script>
<script type="text/javascript">
  function initialize() {
    var myOptions = {
      zoom: 2,
      center: new google.maps.LatLng(32.51717143645802, -8.7890625),
      mapTypeId: google.maps.MapTypeId.SATELLITE
    };
    var map = new google.maps.Map(document.getElementById("gmap_world"), myOptions);
  }
</script>
)}
_3AMnoTEX_ вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[TS] Удобный CONTENT Sergey M Nikitin Мастер-класс 2 22.09.2009 09:25
Стандартные шаблоны и CSS Styled Content Игорь Ф. Общие вопросы 9 18.09.2009 16:14
Content Item (Flexible Content) на всех страницах thebat Общие вопросы 4 27.03.2008 17:42
Объясните как работает "Show content from this page instead:" Илья Общие вопросы 5 19.06.2006 13:01
Как сделать так, что бы ###CONTENT### отрабатывал, находясь в подключаемом HTML? Юрий Сегеда Общие вопросы 2 11.11.2005 20:53


Часовой пояс GMT +4, время: 10:25.


Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot

Хостинг и техническая поддержка: TYPO3 Лаборатория