Joomla 1.5 Проблемы с Cufon. Как поставить русский шрифт?

Тема в разделе "Изменение шаблона (кастомизация)", создана пользователем =Raven=, 02.07.2010.

  1. =Raven=
    Offline

    =Raven= Недавно здесь

    Регистрация:
    02.07.2010
    Сообщения:
    19
    Симпатии:
    0
    Пол:
    Мужской
    Здравствуйте, уважаемые гуру джумлы!
    Пытаюсь русифицировать шаблон ТР Resto Plazza, но наткнулся на проблему: в главном меню (где шрифты прописью) русский текст не отображается. Явно шрифт не поддерживает кириллицу. Проблема частично решаема отключением cufon в настройках шаблона, но с отключенным cufon шрифты становятся, мягко говоря, убоги (огромные и квадратные), и это не есть решение проблемы. Решение подсказал один человек в комментах одного из сайтов по джумле:
    Только я не смог разобраться, как ПРАВИЛЬНО сгенерить скрипт, и где его потом прописать! А человек давно не был онлайн, чтобы спросить. Может кто-нибудь из вас мне подскажет, как это сделать? Спасибо!
     
    Последнее редактирование: 02.07.2010
  2.  
  3. woojin
    Offline

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

    Регистрация:
    31.05.2009
    Сообщения:
    3 209
    Симпатии:
    335
    Пол:
    Мужской
    сначала читаем тут: http://html-css.info/2009/10/cufon-font-html-css/

    потом выбираем:
    Uppercase Basic Latin uppercase letters (A-Z). (26 glyphs)
    Lowercase Basic Latin lowercase letters (a-z). (26 glyphs)
    Numerals Basic Latin digits (0-9). (10 glyphs)
    Punctuation Basic Latin punctuation (!@#%...). (33 glyphs)
    Basic Latin Basic Latin glyphs within the Unicode range 0x0020 to 0x007E. (95 glyphs)
    Russian Alphabet A refined selection of Cyrillic characters commonly used in the Russian language. (66 glyphs)

    дальше по тексту из ссылки всё работает, а вообще по экспериментируй, но запомни чем большее количиство символов ты выберешь тем дольше у тебя будет обрабатыватся страничка

    не забываем благодарить
     
    =Raven= нравится это.
  4. =Raven=
    Offline

    =Raven= Недавно здесь

    Регистрация:
    02.07.2010
    Сообщения:
    19
    Симпатии:
    0
    Пол:
    Мужской
  5. =Raven=
    Offline

    =Raven= Недавно здесь

    Регистрация:
    02.07.2010
    Сообщения:
    19
    Симпатии:
    0
    Пол:
    Мужской
    Разобрался, как генерить, нужно ещё сюда галочку поставить:

    The EULAs of these fonts allow Web Embedding (without Adobe Flash)
     
  6. woojin
    Offline

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

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

    внимательнее надо быть!!!!!;)
     
  7. =Raven=
    Offline

    =Raven= Недавно здесь

    Регистрация:
    02.07.2010
    Сообщения:
    19
    Симпатии:
    0
    Пол:
    Мужской
    Теперь насчёт правильного подключения. Я вроде нашел файл, где к шаблону подключаются шрифты cufon, это файл js.gzip.php, и место, где они по моему мнению задействованы - строка 100 ($jsGZIP[] = $jsPath.DS."cufon".DS."|".$font.".font.js|all"; ):
    Код (PHP):
    1. <?php
    2.  
    3.  /*
    4. =================================================
    5. # Filename : js.gzip.php
    6. # Description : Gzip Loader for all js files
    7. # Author : TemplatePlazza
    8. # Author Url : http://www.templateplazza.com
    9. # Copyright (C) 2009 TemplatePlazza.com
    10. # All rights reserved.
    11. =================================================
    12. */
    13. if (extension_loaded('zscripts') && !ini_get('zscripts.output_compression')) @ob_start('ob_gzhandler');
    14. header('Content-type: application/x-javascript; charset: UTF-8');
    15. header('Cache-Control: must-revalidate');
    16. header('Expires: ' . gmdate('D, d M Y H:i:s', time() + (3600*60)) . ' GMT');
    17.  
    18. define('DS', DIRECTORY_SEPARATOR);
    19. define('PATH_ROOT', dirname(__FILE__) . DS);
    20.  
    21. if(!empty($_GET))
    22. {
    23.     foreach($_GET as $key => $val)
    24.     {
    25.         unset($_GET[$key]);
    26.         $val = (substr($val, 0, 4) == 'amp;') ? substr($val, 4) : $val;
    27.         $key = (substr($key, 0, 4) == 'amp;') ? substr($key, 4) : $key;
    28.         $_GET[$key] = $val;
    29.     }
    30. }
    31.  
    32. $jsPath = PATH_ROOT;
    33.  
    34. //js path | js file name | js browser1
    35. //js browser = "all" for all browser, "browser1,browser2,..." for defined various browser only
    36. //IE = msie 6
    37. //IE with various version = msie parent version or full version, e.g. "msie 6" or "msie 5.5" or "msie 5.0.1"
    38. //IE 4 = msie 4
    39. //IE 5 = msie 5
    40. //IE 6 = msie 6
    41. //IE 7 = msie 7
    42. //IE 7 = msie 7
    43. //Opera = opera
    44. //Opera with various version = opera/version, e.g. "opera/9.10"
    45. //Firefox = firefox
    46. //Firefox with various version = firefox/version, e.g. "firefox/2.0.0.14"
    47. // usage $jsGZIP[] = $jsPath."|js2.js|msie 6,msie 7";
    48. // usage $jsGZIP[] = $jsPath."|js1.js|all";
    49.  
    50. $cfc = (!empty($_GET['cfc'])) ? $_GET['cfc'] : null;
    51. $cfmb = (!empty($_GET['cfmb'])) ? $_GET['cfmb'] : null;
    52. $cfacc = (!empty($_GET['cfacc'])) ? $_GET['cfacc'] : null;
    53. $cfmf = (!empty($_GET['cfmf'])) ? $_GET['cfmf'] : null;
    54. $cftpp = (!empty($_GET['cftpp'])) ? $_GET['cftpp'] : null;
    55. $cftpps = (!empty($_GET['cftpps'])) ? $_GET['cftpps'] : null;
    56. $cftpc = (!empty($_GET['cftpc'])) ? $_GET['cftpc'] : null;
    57. $cftpcs = (!empty($_GET['cftpcs'])) ? $_GET['cftpcs'] : null;
    58.  
    59. /*
    60. $cftmtl = (!empty($_GET['cftmtl'])) ? $_GET['cftmtl'] : null;
    61. $cftmtlf = (!empty($_GET['cftmtlf'])) ? $_GET['cftmtlf'] : null;
    62. $cftmtls = (!empty($_GET['cftmtls'])) ? $_GET['cftmtls'] : null;
    63. $cftmtlsf = (!empty($_GET['cftmtlsf'])) ? $_GET['cftmtlsf'] : null;
    64. $cftmsl = (!empty($_GET['cftmsl'])) ? $_GET['cftmsl'] : null;
    65. $cftmslf = (!empty($_GET['cftmslf'])) ? $_GET['cftmslf'] : null;
    66. $cftpslst = (!empty($_GET['cftpslst'])) ? $_GET['cftpslst'] : null;
    67. $cftpslstf = (!empty($_GET['cftpslstf'])) ? $_GET['cftpslstf'] : null;
    68. */
    69.  
    70. //$cftpa = (!empty($_GET['cftpa'])) ? $_GET['cftpa'] : null;
    71. //$cftpaf = (!empty($_GET['cftpaf'])) ? $_GET['cftpaf'] : null;
    72.  
    73. $jsGZIP[] = $jsPath."|template.js|all";
    74.  
    75. if(!empty($_GET['cfc']) || !empty($_GET['cfmb']) || !empty($_GET['cftpmenu']) || !empty($_GET['cfacc']) )
    76. {
    77.     //load cufon js
    78.     $jsGZIP[] = $jsPath.DS."cufon".DS."|cufon-yui.js|all";
    79. }
    80.  
    81. $fonts = array();
    82. $arrF = array('cfacc', 'cfc', 'cftpp', 'cftpps', 'cftpc', 'cftpcs');
    83. foreach( $arrF as $f )
    84. {
    85.     if(!empty($_GET[$f]))
    86.     {
    87.         $fonts[$$f] = true;
    88.     }
    89. }
    90.  
    91. if(!empty($_GET['cfmb']))
    92. {
    93.     $fonts[$cfmf] = true;
    94. }
    95.  
    96. if(count($fonts))
    97. {
    98.     foreach($fonts as $f => $true)
    99.     {
    100.         $font = str_replace(" ", "", strtolower($f));
    101.         $jsGZIP[] = $jsPath.DS."cufon".DS."|".$font.".font.js|all";
    102.     }
    103. }
    104.  
    105. foreach($jsGZIP as $GZIP) {
    106.     $js = explode("|", $GZIP);
    107.     if($js[2]=="all") {
    108.         if(file_exists($js[0].$js[1])) include($js[0].$js[1]);
    109.     } else {
    110.         $browsers = explode(",", $js[2]);
    111.         $loadThisJS = false;
    112.         foreach($browsers as $browser) {
    113.             if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), $browser) !== false) {
    114.                 $loadThisJS = true;
    115.             }
    116.         }
    117.         if($loadThisJS == true) {
    118.             if(file_exists($js[0].$js[1])) include($js[0].$js[1]);
    119.         }
    120.     }
    121. }
    122.  
    123. if(!empty($cfc)) echo "Cufon.replace('.contentheading, .contentpageopen, .componentheading', { fontFamily: '".$cfc."' });\n";
    124. if(!empty($cfmb)) echo "Cufon.replace('.cufontag', { fontFamily: '".$cfmf."' });\n";
    125. if(!empty($cfacc)) echo "Cufon.replace('.tpaccordiontoggler, .tpaccordiontoggler-active', { fontFamily: '".$cfacc."' });\n";
    126. if(!empty($cftpp)) echo "Cufon.replace('.tpparenttitle', { fontFamily: '".$cftpp."' });\n";
    127. if(!empty($cftpps)) echo "Cufon.replace('.tpsubtitle', { fontFamily: '".$cftpps."' });\n";
    128. if(!empty($cftpc)) echo "Cufon.replace('.tpchildtitle, .dropxtdchildmenu', { fontFamily: '".$cftpc."' });\n";
    129. if(!empty($cftpcs)) echo "Cufon.replace('.tpchildsubtitle', { fontFamily: '".$cftpcs."' });\n";
    130.  
    131. /*
    132. if(!empty($_GET['cftpa']))
    133. {
    134.     echo    "Cufon.replace('.tpaccordiontoggler', { fontFamily: '".$cftpaf."' });\n";
    135. }
    136. */
    137.  
    138. ?>

    Я кинул в папку с остальными скриптами свой, дав ему имя Mistral.font.js, но ничего не вышло... А ведь по идее он тоже должен был включиться?
     
  8. woojin
    Offline

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

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

    из какой то директории просматриваются все шрифты от CUFON и их имена втосятся в определенную переменную, так вот попробуй найди это место в исходнике и напиши
    echo 'этот шрифт называется'.$name_of_type;
    устественно эта строка должна быть в цикле закрузки/перебора шрифтов
    и посмотри есть ли в этом списке твой шрифт
     
  9. =Raven=
    Offline

    =Raven= Недавно здесь

    Регистрация:
    02.07.2010
    Сообщения:
    19
    Симпатии:
    0
    Пол:
    Мужской
    Имён почему-то нет нигде (я смотрел во всех файлах шаблона!), но я нашел в том же файле это место:
    Код (PHP):
    1. if(!empty($cfc)) echo "Cufon.replace('.contentheading, .contentpageopen, .componentheading', { fontFamily: '".$cfc."' });\n";
    2. if(!empty($cfmb)) echo "Cufon.replace('.cufontag', { fontFamily: '".$cfmf."' });\n";
    3. if(!empty($cfacc)) echo "Cufon.replace('.tpaccordiontoggler, .tpaccordiontoggler-active', { fontFamily: '".$cfacc."' });\n";
    4. if(!empty($cftpp)) echo "Cufon.replace('.tpparenttitle', { fontFamily: '".$cftpp."' });\n";
    5. if(!empty($cftpps)) echo "Cufon.replace('.tpsubtitle', { fontFamily: '".$cftpps."' });\n";
    6. if(!empty($cftpc)) echo "Cufon.replace('.tpchildtitle, .dropxtdchildmenu', { fontFamily: '".$cftpc."' });\n";
    7. if(!empty($cftpcs)) echo "Cufon.replace('.tpchildsubtitle', { fontFamily: '".$cftpcs."' });\n";
     
  10. woojin
    Offline

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

    Регистрация:
    31.05.2009
    Сообщения:
    3 209
    Симпатии:
    335
    Пол:
    Мужской
    это больше похоже на присвоение шрифта конкретному тегу или ID'шнику или еще чему либо

    ну ка же нету?

    а это тагда что: - очень похоже на подбор шрифтовых скриптов
    //load cufon js
    $jsGZIP[] = $jsPath.DS."cufon".DS."|cufon-yui.js|all";

    и это: - а ту обратите внимание на INCLUDE
    foreach($jsGZIP as $GZIP) {
    $js = explode("|", $GZIP);
    if($js[2]=="all") {
    if(file_exists($js[0].$js[1])) include($js[0].$js[1]);
    } else {
    $browsers = explode(",", $js[2]);
    $loadThisJS = false;
    foreach($browsers as $browser) {
    if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), $browser) !== false) {
    $loadThisJS = true;
    }
    }
    if($loadThisJS == true) {
    if(file_exists($js[0].$js[1])) include($js[0].$js[1]);
    }
    }
    }
     
  11. =Raven=
    Offline

    =Raven= Недавно здесь

    Регистрация:
    02.07.2010
    Сообщения:
    19
    Симпатии:
    0
    Пол:
    Мужской
    Я понял, что в папке cufon идет перебор скриптов, имеющих имена .font.js, а эта строка if(!empty($cftpp)) echo "Cufon.replace('.tpparenttitle', { fontFamily: '".$cftpp."' });\n"; походу вставляет нужный мне шрифт через класс .tpparenttitle
    Что-то запутался я с $js[0] и $js[1].
    PS Я php занимаюсь чуть более недели, ещё плохо на нем мыслю...:(
     
    Последнее редактирование: 02.07.2010
  12. woojin
    Offline

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

    Регистрация:
    31.05.2009
    Сообщения:
    3 209
    Симпатии:
    335
    Пол:
    Мужской
    вот именно в месте пребора я и предлагал поставить проверку на чтение Вашего скрипта-шрифта!!!!
     
  13. =Raven=
    Offline

    =Raven= Недавно здесь

    Регистрация:
    02.07.2010
    Сообщения:
    19
    Симпатии:
    0
    Пол:
    Мужской
    Вставил сюда:
    Код (PHP):
    1. foreach($jsGZIP as $GZIP) {
    2.     $js = explode("|", $GZIP);
    3.     if($js[2]=="all") {
    4.         if(file_exists($js[0].$js[1])) include($js[0].$js[1]);
    5.     } else {
    6.         $browsers = explode(",", $js[2]);
    7.         $loadThisJS = false;
    8.         foreach($browsers as $browser) {
    9.             if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), $browser) !== false) {
    10.                 $loadThisJS = true;
    11.             }
    12.         }
    13.         if($loadThisJS == true) {
    14.             if(file_exists($js[0].$js[1])) include($js[0].$js[1]);
    15.            
    16.         }
    17.        echo 'этот шрифт называется'.$name_of_type;
    18.     }
    19.  
    20. }

    А как проверить? Запустить?
    Запустил в phpDesigner 7, вот что выдало:
    /** * TemplatePlazza Javascript * TemplatePlazza.com **/ function setlayout(){ var sysmsg = document.getElementById('system-message'); if(sysmsg){ var timer = hideWarning.delay(12000); var size = $('system-message').getSize(); var sizex = (screen.width - size['size']['x'])/2; var wint = ((screen.height - size['size']['y'])/2)-200; $('system-message').setStyle("left", sizex + "px"); $('system-message').setStyle("top", wint + "px"); $('system-message').addEvent('click', function(event){ hideWarning(); }); } function hideWarning(){ var fx = new Fx.Styles($('system-message'),{duration: 200,wait: false,transition: Fx.Transitions.Quad.easeOut }); var msgs = $('system-message').getStyle('visibility'); if(msgs == "visible" || msgs == "inherit"){ fx.start({ 'opacity': [1, 0] }); } } var tooltips = new Tips($$('.tooltips'),{ initialize:function(){ this.fx = new Fx.Style(this.toolTip, 'opacity', {duration: 500, wait: false}).set(0); }, onShow: function(toolTip){ this.fx.start(1); }, onHide: function(toolTip){ this.fx.start(0); } }); } window.addEvent('domready', function(){ setlayout(); });
     
  14. woojin
    Offline

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

    Регистрация:
    31.05.2009
    Сообщения:
    3 209
    Симпатии:
    335
    Пол:
    Мужской
    это текст JS скрипта , это не то, т.к. текст JS-шрифта совсем другой, пробуйте вставить в другое место, я к примеру проверяю или в NuSphere, это в очень сложных ситуациях, или просто копирую в какой нибудь каталог на локальном сервере (к примеру TEST) и запускаю от туда
     
  15. =Raven=
    Offline

    =Raven= Недавно здесь

    Регистрация:
    02.07.2010
    Сообщения:
    19
    Симпатии:
    0
    Пол:
    Мужской
    Всё тоже самое. Если вставлять в другое место - выдаёт ошибку! А нельзя этот шрифт как-то по другому прописать?
     
  16. woojin
    Offline

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

    Регистрация:
    31.05.2009
    Сообщения:
    3 209
    Симпатии:
    335
    Пол:
    Мужской
    по той ссылке которую я тебе давал там написано как и куда вставлять подключение JS-скрипта-шрифта для его отображения на сайте, читай внимательнее
     
  17. =Raven=
    Offline

    =Raven= Недавно здесь

    Регистрация:
    02.07.2010
    Сообщения:
    19
    Симпатии:
    0
    Пол:
    Мужской
    А так, как в статье не подключается, наверное другие записи мешают... Тупик какой-то...:(
     
  18. woojin
    Offline

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

    Регистрация:
    31.05.2009
    Сообщения:
    3 209
    Симпатии:
    335
    Пол:
    Мужской
    посмотреть бы на INDEX.PHP изнутри
    и узнать в каом месте у тебя что лежит, т.е. структуру каталогов шаблона
     
  19. =Raven=
    Offline

    =Raven= Недавно здесь

    Регистрация:
    02.07.2010
    Сообщения:
    19
    Симпатии:
    0
    Пол:
    Мужской
    Прикладываю архив
    Посмотреть вложение resto_plazza.rar
    Только у меня там в шаблоне в этом архиве куфон отключен, незнаю, сохраняться ли настройки..
    :D млин, туплю, настройки же в модулях! Кстати, модули нужны?
     
    Последнее редактирование: 02.07.2010
  20. woojin
    Offline

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

    Регистрация:
    31.05.2009
    Сообщения:
    3 209
    Симпатии:
    335
    Пол:
    Мужской
    сейчас поглядим
     
  21. woojin
    Offline

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

    Регистрация:
    31.05.2009
    Сообщения:
    3 209
    Симпатии:
    335
    Пол:
    Мужской
    смотри как подключал я
    Код (PHP):
    1. <script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
    2. <script type="text/javascript" src="js/cufon-yui.js"></script>
    3.  
    4. <script type="text/javascript" src="js/B52_400-Include.font.js"></script>
    5. <script type="text/javascript">
    6.     Cufon.replace('h1', { fontFamily: 'B52', color: '#00F' });
    7.     Cufon.replace('.neutra', {color: '#00F' } ); // С помощью jquery можно обращаться и по классам
    8. </script>


    название файла шрифта B52.ttf

    в таком виде у меня всё прекрасно работало
     

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

Загрузка...