Проблема Знаки вопроса при подключении скрипта

Тема в разделе "Кодировки, ошибки отображения (крякозябры)", создана пользователем WilD_TuNa, 02.11.2015.

  1. Offline

    WilD_TuNa Недавно здесь

    Регистрация:
    02.11.2015
    Сообщения:
    4
    Симпатии:
    0
    Пол:
    Мужской
    Начну из далека. Состряпал (на локальном компе) Яндекс карту для сайта с использованием JavaScript API Яндекс. Получилось 2 файла: .html страничка и файл скрипта. Теперь нужно было прикрутить эти файлы к сайту.
    1. Вариант:
    Залил файл скрипта по адресу: /templates/ameritage_medical/js/ya_map_full.js
    С помощью плагина Sourcerer вставил код из файлика html в материал.
    Карта загружается, но вместо букв отображаются знаки вопроса:
    2. Вариант:
    Сделал один файл, те текст скрипта запихал в .html
    И уже единый код с помощью того же плагина Sourcerer вставил в материал.
    Карта загружается и все надписи отображаются как надо, но есть 2 проблемы:
    а) Возможно дело в плагине Sourcerer, но если текст кода превышает 2000 строк, то плагин это дело обработать не может. Убрать 1/3 меток с карты - не очень хорошая идея...
    б) Последующее редактирование текстовым редактором в админ панели становится практически не возможным - дикие тормоза... Куда как проще отредактировать файл скрипта на компе и перезалить его...

    Можно ли как-то сделать чтобы при использовании 1-го варианта текст нормально отображался?
    Или придется искать другой плагин для вставки кода (аналог Sourcerer) и использовать второй вариант?


    Доп. инфо.:
    Версия joomla - 2.5
    В файле .htaccess прописано AddDefaultCharset utf-8
    кодировка БД - utf-8
    Код файла .html:
    Код (CODE):
    1. <head>
    2. <link href='https://fonts.googleapis.com/css?family=Stalinist+One&subset=latin,cyrillic' rel='stylesheet' type='text/css'>
    3. <link href='https://fonts.googleapis.com/css?family=Russo+One&subset=latin,cyrillic' rel='stylesheet' type='text/css'>
    4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    5.     <title>Примеры. Метка и балун-панель.</title>
    6.     <!-- Если вы используете API локально, то в URL ресурса необходимо указывать протокол в стандартном виде (http://...)-->
    7.     <script src="//api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>
    8.     <script src="/templates/ameritage_medical/js/ya_map_full.js" type="text/javascript"></script>
    9.     <style type="text/css">
    10.         #YMapsID {
    11.             width: 750px; /*740*/
    12.             height: 600px; /*555*/
    13.         }
    14.  
    15.         .ballon_header {
    16.                 font-family: 'Stalinist One', cursive;
    17.                 font-size: 12px;
    18.                 margin-top: 0;
    19.                 margin-bottom: 10px;
    20.                 color: #7F7F7F;
    21.         }
    22.              
    23.         .ballon_body {
    24.                 font-family: 'Russo One', sans-serif;
    25.                 font-size: 13px;
    26.                 text-align: center;
    27.                 color: blue;
    28.         }
    29.      
    30.         .ballon_footer {
    31.                 font-family: 'Stalinist One', cursive;
    32.                 font-size: 10px;
    33.                 text-align: right;
    34.                 color: #bf0103;
    35.                 margin-top: 10px;
    36.                 border-top: 1px solid #D9D9D9;
    37.         }
    38.  
    39.     </style>
    40. </head>
    41.  
    42. <body>
    43. <div class="hero-unit">
    44.     <div class="container">
    45.         <div id="YMapsID"></div>
    46.     </div>
    47. </div>
    48. </body>
    49. </html>
    Часть кода скрипта (только 2 метки):
    Код (CODE):
    1. ymaps.ready(function () {
    2.     var myMap = new ymaps.Map('YMapsID', {
    3.         center: [57.354753, 37.606538],
    4.         zoom: 15,
    5.  
    6.         controls: ['smallMapDefaultSet']
    7.         }, {
    8.             searchControlProvider: 'yandex#search'
    9.         }
    10.     );    
    11.     myMap.behaviors.disable('scrollZoom');
    12.     var customItemContentLayout = ymaps.templateLayoutFactory.createClass(
    13.            '<h2 class=ballon_header>{{ properties.balloonContentHeader|raw }}</h2>' +
    14.            '<div class=ballon_body>{{ properties.balloonContentBody|raw }}</div>' +
    15.            '<div class=ballon_footer>{{ properties.balloonContentFooter|raw }}</div>'
    16.     );
    17.     var myPlacemark = new ymaps.Placemark(
    18.         [57.357519, 37.622557], {
    19.             iconContent: '<strong>Поликлиника</strong>',
    20.             hintContent: [
    21.                 '<div align="center">',
    22.                 'ГБУЗ ТО "Кашинская ЦРБ"',
    23.                 '<br/>',
    24.                 'Поликлиника',
    25.                 '</div>'
    26.             ].join(''),
    27.             balloonContentHeader: 'ГБУЗ ТО "Кашинская ЦРБ"',
    28.             balloonContentBody: [
    29.                 'Поликлиника',
    30.                 '<br/>',
    31.                 '<address>',
    32.                 'Адрес: 171640, Тверская обл., г. Кашин, ул. Вонжинская, д. 2',
    33.                 '<br/>',
    34.                 'Телефон: +7 (48234) 2-03-47',
    35.                 '</address>'
    36.             ].join(''),
    37.             balloonContentFooter: 'Расстояние до г. Тверь - 145 км.'
    38.         }, {
    39.             balloonContentLayout: customItemContentLayout,
    40.             balloonPanelMaxMapArea: 'Infinity',
    41.             preset: 'islands#redStretchyIcon'
    42.         }
    43.     );
    44.     myMap.geoObjects
    45.         .add(myPlacemark)
    46.         .add(new ymaps.Placemark([57.356146, 37.614896], {
    47.             iconContent: '<strong>Детская Поликлиника</strong>',
    48.             hintContent: [
    49.                 '<div align="center">',
    50.                 'ГБУЗ ТО "Кашинская ЦРБ"',
    51.                 '<br/>',
    52.                 'Детская Поликлиника',
    53.                 '</div>'
    54.             ].join(''),
    55.             balloonContentHeader: 'ГБУЗ ТО "Кашинская ЦРБ"',
    56.             balloonContentBody: [
    57.                 'Детская Поликлиника',
    58.                 '<br/>',
    59.                 '<address>',
    60.                 'Адрес: 171640, Тверская обл., г. Кашин, ул. Ленина, д. 4/14',
    61.                 '<br/>',
    62.                 'Телефон: +7 (48234) 2-05-62',
    63.                 '</address>'
    64.             ].join(''),
    65.             balloonContentFooter: 'Расстояние до г. Тверь - 150 км.'
    66.         }, {
    67.             balloonContentLayout: customItemContentLayout,
    68.             balloonPanelMaxMapArea: 'Infinity',
    69.             preset: 'islands#redStretchyIcon'
    70.         }));
    71. });
     

    Вложения:

    Последнее редактирование: 02.11.2015
  2.  
  3. Asylum
    Offline

    Asylum специалист

    Регистрация:
    09.02.2007
    Сообщения:
    2 569
    Симпатии:
    152
    Пол:
    Мужской
    Может его во фрейме вывести? Либо вставить Js в модуль без всяких Html. Обычно карты Гугла или Яндекса вставляю через исходный код прямо в редакторе
     
  4. shurikkan
    Offline

    shurikkan Russian Joomla! Team Команда форума

    Регистрация:
    01.09.2011
    Сообщения:
    1 856
    Симпатии:
    162
    Пол:
    Мужской
    А тебя не смутило вообще то, что автор делает?)))
    Вставляет head в середину страницы, подключает там meta и link, там же пытается установить кодировку.

    @WilD_TuNa, это CMS, а не сайт на HTML :)
    Скажи сразу какая у тебя задача стоит - так будет легче тебе помочь. Вывести внутри материала карту с метками?

    Карты добавлять на страницу материалов лучше в виде модулей. При этом в позиции модуля указывается произвольный текст (латиница, значи _ и -). В самом материале в нужном месте прописывается код стандартного плагина Joomla - loadmodule:
    {loadposition position_name}

    Все необходимые скрипты при этом подключаются в самом модуле.
     
    WilD_TuNa нравится это.
  5. Asylum
    Offline

    Asylum специалист

    Регистрация:
    09.02.2007
    Сообщения:
    2 569
    Симпатии:
    152
    Пол:
    Мужской
    В общем я вообще не понял что автор делает
     
  6. shurikkan
    Offline

    shurikkan Russian Joomla! Team Команда форума

    Регистрация:
    01.09.2011
    Сообщения:
    1 856
    Симпатии:
    162
    Пол:
    Мужской
    Ну я тоже, вроде, понял (вставляет карту с метками на страницу всех материалов сайта?). Я имею ввиду методы.
     
  7. woojin
    Offline

    woojin Местный Команда форума

    Регистрация:
    31.05.2009
    Сообщения:
    3 209
    Симпатии:
    335
    Пол:
    Мужской
    вообще всё не правильно!
    если он закинул всё в каталог с шаблонами, то и надо править шаблон напрямую

    а для вставки файлов имеется каталог images/stories до него можно добраться из любого компонента, да и вообще по умолчанию только он предназначен для загрузок и сохранения каких либо файлов

    хотя если автору нравятся "костыли" и "кресла каталки" то пускай эти файлы хоть с локального компа грузит или с файло-обменника

    P.S. модeлей с яндексами и гуглами как собак не резанных в и-нете, лучше бы их поискал и сделал как посоветовал @shurikkan
     
    WilD_TuNa нравится это.
  8. Offline

    WilD_TuNa Недавно здесь

    Регистрация:
    02.11.2015
    Сообщения:
    4
    Симпатии:
    0
    Пол:
    Мужской
    Нужно вставить карту в материал.
    Это сделано в порядке бреда. Так сказать по наитию ибо знаний не хватает...
    каюсь тут тупанул...
    Если речь про готовые модули для карт, то в большинстве своем их настройки достаточно скудны, примерно как в конструкторе яндекс карт. В платных модулях функционал пошире, но за это нужно платить...
    --- добавлено: 03.11.2015, первое сообщение размещено: 03.11.2015 ---
    Проделанная работа над ошибками:
    - Файл скрипта перенес в images/stories
    - Шрифты подключил к шаблону
    - Побрил файл html
    Код (CODE):
    1. <script src="//api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>
    2.     <script src="images/stories/ya_map_full.js" type="text/javascript"></script>
    3.     <style type="text/css">
    4.         #YMapsID {
    5.             width: 750px;
    6.             height: 600px;
    7.         }
    8.  
    9.         .ballon_header {
    10.                 font-family: 'Stalinist One', cursive;
    11.                 font-size: 12px;
    12.                 margin-top: 0;
    13.                 margin-bottom: 10px;
    14.                 color: #7F7F7F;
    15.         }
    16.              
    17.         .ballon_body {
    18.                 font-family: 'Russo One', sans-serif;
    19.                 font-size: 13px;
    20.                 text-align: center;
    21.                 color: blue;
    22.         }
    23.      
    24.         .ballon_footer {
    25.                 font-family: 'Stalinist One', cursive;
    26.                 font-size: 10px;
    27.                 text-align: right;
    28.                 color: #bf0103;
    29.                 margin-top: 10px;
    30.                 border-top: 1px solid #D9D9D9;
    31.         }
    32.  
    33.     </style>
    34.  
    35. <div class="hero-unit">
    36.     <div class="container">
    37.         <div id="YMapsID"></div>
    38.     </div>
    39. </div>
    - На основе модуля Сustom html создал новый модуль "Яндекс карта" (с позицией map1) c HTML текстом внутри
    - Вывел получившийся Модуль в материал через {loadposition map1}

    Итог: карта загрузилась, но знаки вопросов вместо текста так и остались...
     
    Последнее редактирование: 03.11.2015
  9. CB9T
    Offline

    CB9T Преподаватель по J! Команда форума

    Регистрация:
    21.05.2010
    Сообщения:
    2 461
    Симпатии:
    303
    Пол:
    Мужской
    Код (CODE):
    1. script src="images/stories/ya_map_full.js"

    Преобразуйте в различные форматы (utf-8/win-1251) и тестите
     
    WilD_TuNa нравится это.
  10. shurikkan
    Offline

    shurikkan Russian Joomla! Team Команда форума

    Регистрация:
    01.09.2011
    Сообщения:
    1 856
    Симпатии:
    162
    Пол:
    Мужской
    Можешь поточнее то? Во все материалы на сайте или в какие-то определённые?
    Тебе точно не подходит модуль ZH Yandex/Google Maps?
     
  11. Offline

    WilD_TuNa Недавно здесь

    Регистрация:
    02.11.2015
    Сообщения:
    4
    Симпатии:
    0
    Пол:
    Мужской
    Открыл в Notepad и сделал Кодировка->Преобразовать в UTF-8 - помогло

    Вообще мое решение имеет право на жизнь или опять костыли?
    Стоит ли вместо {loadposition ...} использовать сторонние плагины, позволяющие выводить модули в статьях, например Modules Anywhere?
    --- добавлено: 03.11.2015, первое сообщение размещено: 03.11.2015 ---
    Есть Яндекс карта, которую я сделал на просто на компе. Получилось 2 файла. Перый файл - html и второй - скрипт. Нужно чтобы при переходе по подпункту меню "Интерактивная карта" открывалась страница (материал в моей текущей версии) на которой была бы та самая карта...
     
  12. shurikkan
    Offline

    shurikkan Russian Joomla! Team Команда форума

    Регистрация:
    01.09.2011
    Сообщения:
    1 856
    Симпатии:
    162
    Пол:
    Мужской
    Давай ещё раз: ты работаешь с CMS. Если ты хочешь вставить на страницы сайта какие-то скрипты - это делается через модули или компоненты.
    Можешь скачать в инете болванку модуля (пустой модуль) для Joomla и вставить в неё свои скрипты и HTML.
    Далее см. выше про {loadposition}.

    см.выше

    В 90% случаев - нет.
     
  13. Offline

    WilD_TuNa Недавно здесь

    Регистрация:
    02.11.2015
    Сообщения:
    4
    Симпатии:
    0
    Пол:
    Мужской
    Ну я ж вроде так и сделал. HTML-код поправил и вставил в модуль Сustom html, который позволяет выводить html/css/js без обрезания. Файл скрипта перенес в images/stories и он подгружается оттуда. В материал Сustom html вывожу как раз через {loadposition}
    Поправил кодировку скрипта и получил это:
    --- добавлено: 03.11.2015, первое сообщение размещено: 03.11.2015 ---
    выше было только:
    с тех пор практически все было переделано... :)
     
  14. woojin
    Offline

    woojin Местный Команда форума

    Регистрация:
    31.05.2009
    Сообщения:
    3 209
    Симпатии:
    335
    Пол:
    Мужской
    а "...скрип колеса..." до сих пор слышится :)

    то что сделал в модуле это правильно - есть возможность вставить в любое место которое обрабатывается плагинами (loadposition - эта фишка из плагина берётся)
    так что пока у тебя движение в правильном направлении - но колёса смазывай ;)
     

Поделиться этой страницей

Загрузка...