Возможно ли?

Тема в разделе "PHP", создана пользователем lover, 1 ноя 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. lover

    lover Создатель

    Регистр.:
    25 сен 2009
    Сообщения:
    46
    Симпатии:
    2
    есть кусок кода:
    добавляет в head строку:

    надо, чтоб он ещё внутрь тега вставил charset="utf-8", т.е.:

    Как это реализовать??
     
  2. Eihwaz

    Eihwaz

    Регистр.:
    7 окт 2007
    Сообщения:
    156
    Симпатии:
    54
    Редактируйте функцию addScript, сделайте так, чтобы она принимала еще один необязательный параметр и передавайте его при вызове функции.
     
    lover нравится это.
  3. lover

    lover Создатель

    Регистр.:
    25 сен 2009
    Сообщения:
    46
    Симпатии:
    2
    а как это сделать? где её редактировать?
     
  4. Eihwaz

    Eihwaz

    Регистр.:
    7 окт 2007
    Сообщения:
    156
    Симпатии:
    54
    Речь идет о Joomla, я ведь правильно понимаю?
     
  5. lover

    lover Создатель

    Регистр.:
    25 сен 2009
    Сообщения:
    46
    Симпатии:
    2
    о компоненте гугл карт для joomla:aga:
     
  6. Eihwaz

    Eihwaz

    Регистр.:
    7 окт 2007
    Сообщения:
    156
    Симпатии:
    54
    Честно-говоря, давно с Joomla не имел дела, сейчас просмотрел бегло, быстрое решение такое:
    Файл /libraries/joomla/document/html/renderer/head.php, 130-я строка:
    PHP:
    $strHtml .= $tab.'<script type="'.$strType.'" src="'.$strSrc.'"></script>'.$lnEnd;
    Замените на:
    PHP:
    $strHtml .= $tab.'<script type="'.$strType.'" charset="utf-8" src="'.$strSrc.'"></script>'.$lnEnd;
    Тогда всем скриптам, добавляемым через функцию addScript будет проставлен аттрибут charset.
    Если хотите сами указывать, каким скриптам проставлять этот аттрибут, а каким нет - отпишитесь, если завтра будет свободное время, напишу.
     
    lover нравится это.
  7. lover

    lover Создатель

    Регистр.:
    25 сен 2009
    Сообщения:
    46
    Симпатии:
    2
    спасибо, кодировку внутрь тега прописал, но карта всё равно в IE не грузится:( наверно дело в другом
     
  8. Eihwaz

    Eihwaz

    Регистр.:
    7 окт 2007
    Сообщения:
    156
    Симпатии:
    54
    Насколько я помню, Google использует векторный формат SVG, который IE не поддерживается (IE использует свой кривой VML).
    Хотя они (Google, то-бишь) наверняка озаботились поддержкой говнобраузера, но все-таки...
     
    lover нравится это.
  9. lover

    lover Создатель

    Регистр.:
    25 сен 2009
    Сообщения:
    46
    Симпатии:
    2
    Eihwaz, спасибо тебе большое!! Переустановил компонент и всё заработало:yahoo:
    Если будет не трудно, напиши, пожалуйста, как только тому скрипту установить кодировку!
    Ещё раз спасибо большое!
     
  10. Eihwaz

    Eihwaz

    Регистр.:
    7 окт 2007
    Сообщения:
    156
    Симпатии:
    54
    В общем и целом выглядеть должно так (не тестил нигде, проверяй на локальной машине сначала, но по-идее, должно работать как надо:(
    Файл /libraries/joomla/document/document.php ~425 строка, замени функцию addScript на:
    PHP:
    function addScript($url$type="text/javascript"$encoding=false) {
            
    // Вообще если вам нужно всегда подставлять ТОЛЬКО utf-8,
            // можно сделать по-другому: простым boolean'ом.
            // если же планируется, что может быть и другая кодировка,
            // здесь нужно сделать проверку переданного значения
            // (можно при помощи in_array(), например).
            // Сейчас я оставил только проверку на 'utf8', и в таком виде 
            // это не лучший вариант, но он нагляднее
        
    if($encoding && strtolower($encoding) == 'utf8') {
            
    $this->_scripts[$url]['type']    = $type;
            
    $this->_scripts[$url]['charset'] = $encoding;
        } else {
            
    $this->_scripts[$url] = $type;
        }
    }
    Файл /libraries/joomla/document/html/renderer/head.php ~129 строка, замени цикл foreach на этот:
    PHP:
    foreach ($document->_scripts as $strSrc => $value) {
        if(
    is_array($value)) {
            
    $strHtml .= $tab.'<script type="'.$value['type'].'" charset="'.$value['charset'].'" src="'.$strSrc.'"></script>'.$lnEnd;
        } else {
            
    $strHtml .= $tab.'<script type="'.$value.'" src="'.$strSrc.'"></script>'.$lnEnd;
        }
    }
    Теперь при вызове функции в твоем скрипте:
    PHP:
    $doc->addScript("$gmapsapi"."&hl=ru""text/javascript""utf8"); 
     
    lover нравится это.
Статус темы:
Закрыта.