Cufon и Magento: нестандартные шрифты для витрины вашего магазина

[16 июля 2019 г.]    Российская сборка Magento 2.52.2
Magento 2: модули и услуги
magereport.com: составление перечня необходимых для установки заплаток SUPEE
#1 Владимир Бонапартов
  • забанен за воровство
  • Группа: Заблокирован
  • Сообщений: 149
  • Регистрация: 23.08.2010

06.12.2010 17:06

Пытаюсь добавить свой текст на русском языке к названию товара.
в файле моей темы catalogproductview.phtml добавляю

div class="product-name">
<h1><?php echo $this->__('мой текст') ?><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></h1>
</div>

но не выводит именно русский текст. Цифры, латынь - всё отображает без проблем.

Подскажите где моя ошибка.
Заранее спасибо

P.S. сначала русский текст видно, но потом, при полной загрузке страницы, текст исчезает.

#2 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

06.12.2010 17:42

Назначение метода
$this->__
- найти локализованный вариант строки, передаваемой в качестве аргумента.
Если вам важно, чтобы ваш магазин был многоязычным, в качестве аргумента вам надо использовать англоязычный вариант строки, а русскоязычный поместить в языковой файл.
Если вашему магазину достаточно одного языка, то вся конструкция
<?php echo $this->__('мой текст') ?>
- излишняя, вместо этого можно написать:

   
<div class="product-name">
  <h1>Превед, медвед! <?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></h1>
</div> 


#3 Владимир Бонапартов
  • забанен за воровство
  • Группа: Заблокирован
  • Сообщений: 149
  • Регистрация: 23.08.2010

06.12.2010 18:11

Просмотр сообщенияДмитрий Федюк (06.12.2010 17:42) писал:

Назначение метода
$this->__
- найти локализованный вариант строки, передаваемой в качестве аргумента.
Если вам важно, чтобы ваш магазин был многоязычным, в качестве аргумента вам надо использовать англоязычный вариант строки, а русскоязычный поместить в языковой файл.
Если вашему магазину достаточно одного языка, то вся конструкция
<?php echo $this->__('мой текст') ?>
- излишняя, вместо этого можно написать:

   
<div class="product-name">
  <h1>Превед, медвед! <?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></h1>
</div> 


Благодарю!
Но, сначала русский текст видно, а потом, при полной загрузке страницы, текст исчезает. пример здесь

#4 Владимир Бонапартов
  • забанен за воровство
  • Группа: Заблокирован
  • Сообщений: 149
  • Регистрация: 23.08.2010

06.12.2010 18:22

И сразу спрошу как правильно вывести текстовое значение атрибута в названии товара.

#5 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

06.12.2010 18:35

Сделайте снимок экрана, чтобы я понял, куда смотреть на этой странице и какой текст там искать.

#6 Владимир Бонапартов
  • забанен за воровство
  • Группа: Заблокирован
  • Сообщений: 149
  • Регистрация: 23.08.2010

06.12.2010 18:39

Просмотр сообщенияДмитрий Федюк (06.12.2010 18:35) писал:

Сделайте снимок экрана, чтобы я понял, куда смотреть на этой странице и какой текст там искать.

в исходном коде рус. буквы видно

Прикрепленные изображения

  • Прикрепленное изображение: Снимок.png


#7 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

06.12.2010 19:02

Всё понятно.
У вас заголовок отображается по технологии Cufón.
Видимо, тема не включала шрифты для кириллицы.
Однако вы можете добавить их самостоятельно, если есть исходный файл шрифта (например, *.ttf).
Подробней смотрите на сайте Cufón - там написано, как работать со шрифтами.

#8 Владимир Бонапартов
  • забанен за воровство
  • Группа: Заблокирован
  • Сообщений: 149
  • Регистрация: 23.08.2010

07.12.2010 02:57

Итак, что было сделано:
В моей теме используются два шрифта Arial и Helvetica.
На оф сайте Cufon загрузил шрифты, поставил галки над Bold typeface, Basic Latin, Cyrillic Alphabet и Russian Alphabet.
Сгенерировал шрифт в формате js.
Скачал cufon-yui.js

все фалы положил в корне js/cufon/

В page.xml своей темы после
<label>All Pages</label>
<block type="page/html" name="root" output="toHtml" template="page/3columns.phtml">
<block type="page/html_head" name="head" as="head">

добавил
<action method="addJs"><script>cufon/cufon-yui.js</script></action>
<action method="addJs"><script>cufon/Arial_700.font.js</script></action>
<action method="addJs"><script>cufon/Helvetica_400.font.js</script></action>

В head.phtml своей темы добавил

<script type="text/javascript">Cufon.replace('h1, h2');</script>

Результат - 0.
Подскажите где ошибка.
Может есть принципиальная разница между Regular и Bold Type шрифтов? или что-то в коде напутал?

#9 Владимир Бонапартов
  • забанен за воровство
  • Группа: Заблокирован
  • Сообщений: 149
  • Регистрация: 23.08.2010

07.12.2010 03:56

Нашёл ошибку.
У меня подключён jQuery, начали конфликтовать.

убрал

<action method="addJs"><script>cufon/cufon-yui.js</script></action>

Конфликт пропал, русский текст появился.

P.S. Дмитрию огромное спасибо за подсказку!!!

#10 Владимир Бонапартов
  • забанен за воровство
  • Группа: Заблокирован
  • Сообщений: 149
  • Регистрация: 23.08.2010

07.12.2010 15:49

Просмотр сообщенияДмитрий Федюк (06.12.2010 19:02) писал:

Всё понятно.
У вас заголовок отображается по технологии Cufón.
Видимо, тема не включала шрифты для кириллицы.
Однако вы можете добавить их самостоятельно, если есть исходный файл шрифта (например, *.ttf).
Подробней смотрите на сайте Cufón - там написано, как работать со шрифтами.

при подключении шрифтов перестал работать Light box.

#11 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

07.12.2010 20:28

Посмотрите журнал ошибок JavaScript.

#12 Владимир Бонапартов
  • забанен за воровство
  • Группа: Заблокирован
  • Сообщений: 149
  • Регистрация: 23.08.2010

10.12.2010 17:04

Просмотр сообщенияДмитрий Федюк (07.12.2010 20:28) писал:

Посмотрите журнал ошибок JavaScript.

не пойму что пишет


Cufon is undefined
[Прерывать на этой ошибке] Cufon.registerFont({"w":200,"face":{"f..."w":180,"k":{"A":20,"T":7,"Y":7}}}});

не правильно пути указаны?

может я вообще не правильно подключил cufon?

#13 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

10.12.2010 17:53

Интерпретатор говорит вам, что на момент вызова метода Cufon.registerFont переменная Cufon не имеет значения.

#14 Владимир Бонапартов
  • забанен за воровство
  • Группа: Заблокирован
  • Сообщений: 149
  • Регистрация: 23.08.2010

10.12.2010 18:55

Буду благодарен если подскажите как это исправить.
я в этих вещах не силён ((

Заранее спасибо.

#15 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

10.12.2010 19:05

На странице товара у вас не подключена библиотека Prototype, а между тем часть вашего программного кода зависит от неё.

#16 Владимир Бонапартов
  • забанен за воровство
  • Группа: Заблокирован
  • Сообщений: 149
  • Регистрация: 23.08.2010

10.12.2010 19:23

в page.xml вроде всё подключено (в моём laout)

<action method="addJs"><script>prototype/prototype.js</script></action>
<action method="addJs" ifconfig="dev/js/deprecation"><script>prototype/deprecation.js</script></action>
<action method="addJs"><script>prototype/validation.js</script></action>

#17 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

10.12.2010 19:25

Однако на странице, картинку которой вы приводили выше, библиотеки Prototype нет.

#18 Владимир Бонапартов
  • забанен за воровство
  • Группа: Заблокирован
  • Сообщений: 149
  • Регистрация: 23.08.2010

10.12.2010 19:39

итог у меня следующий.

В page.xml своей темы добавил

<action method="addJs"><script>cufon/cufon-yui.js</script></action>
<action method="addJs"><script>cufon/Helvetica_400.font.js</script></action>

В head.phtml своей темы добавил

<script type="text/javascript">Cufon.replace('h1, h2');</script>

Prototype библиотека подключёна page.xml моей темы,

<action method="addJs"><script>prototype/prototype.js</script></action>
<action method="addJs" ifconfig="dev/js/deprecation"><script>prototype/deprecation.js</script></action>
<action method="addJs"><script>prototype/validation.js</script></action>

lightbox работает!!!,

НО! русский текст не отображается.

в firebuge ошибок нет.

смотреть здесь

#19 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

10.12.2010 19:41

По вашей ссылке - сообщение: "There has been an error processing your request".

#20 Владимир Бонапартов
  • забанен за воровство
  • Группа: Заблокирован
  • Сообщений: 149
  • Регистрация: 23.08.2010

10.12.2010 19:46

Просмотр сообщенияДмитрий Федюк (10.12.2010 19:41) писал:

По вашей ссылке - сообщение: "There has been an error processing your request".

в хроме и FF всё работает.

#21 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

10.12.2010 19:48

Теперь работает.
Но библиотека Prototype на этой странице отсутствует.
Думаю, вы сами знаете, как в этом убедиться: правая кнопка мыши и просмотр исходного кода страницы.

#22 Владимир Бонапартов
  • забанен за воровство
  • Группа: Заблокирован
  • Сообщений: 149
  • Регистрация: 23.08.2010

10.12.2010 20:07

я походу из ума выжил ))))

подключение происходит в page.xml ?

вот начало

<!--
Default layout, loads most of the pages
-->

<default translate="label" module="page">
<label>All Pages</label>
<block type="page/html" name="root" output="toHtml" template="page/3columns.phtml">

<block type="page/html_head" name="head" as="head">
<action method="addJs"><script>jquery/jquery-1.2.6.min.js</script></action>
<action method="addJs"><script>prototype/prototype.js</script></action>

#23 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

10.12.2010 20:27

Тут уже заочно не скажешь, надо весь программный код сайта видеть.

#24 Владимир Бонапартов
  • забанен за воровство
  • Группа: Заблокирован
  • Сообщений: 149
  • Регистрация: 23.08.2010

10.12.2010 21:25

я правильно понимаю, что необходимо подключить вот эти библиотеки или нет?

prototype/prototype.js
prototype/deprecation.js
prototype/validation.js

#25 Владимир Бонапартов
  • забанен за воровство
  • Группа: Заблокирован
  • Сообщений: 149
  • Регистрация: 23.08.2010

11.12.2010 15:56

Просмотр сообщенияДмитрий Федюк (10.12.2010 20:27) писал:

Тут уже заочно не скажешь, надо весь программный код сайта видеть.

а в каком файле прописываются используемые шрифты (в частности в названии продукта). В моём случае не обязательно какие-то особенные шрифты. Чем такие пляски устраивать мне проще указать на стандартные шрифты и всё

#26 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

11.12.2010 16:00

Шрифты и способы их загрузки индивидуальны для каждой темы. Спросите у разработчика вашей темы.

#27 Владимир Бонапартов
  • забанен за воровство
  • Группа: Заблокирован
  • Сообщений: 149
  • Регистрация: 23.08.2010

19.12.2010 05:05

какие именно библиотеки надо подключить?
prototype/prototype.js
prototype/deprecation.js
prototype/validation.js


или ещё какие-то?

#28 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

19.12.2010 05:15

Подключить для каких целей?

#29 Владимир Бонапартов
  • забанен за воровство
  • Группа: Заблокирован
  • Сообщений: 149
  • Регистрация: 23.08.2010

19.12.2010 15:20

для работы Lightbox

#30 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

19.12.2010 16:46

В Magento нет универсального способа отображения полномасштабных картинок товаров.
Такой способ индивидуален для конкретной темы.

Поделиться темой: