Русский OsCommerce

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Решение проблемы с кодировкой в боксе отзывов, Решение проблемы от непрограммера :-)
Fredi
сообщение 3.5.2018, 12:22
Сообщение #1


Админ
Иконка группы

Группа: ADMIN
Сообщений: 5818
Регистрация: 24.4.2002
Из: Ашкелон
Пользователь №: 2
Имя, Фамилия: Ф. Ф. Рубинштейн
Откуда:Ashkelon, IL.
ПО твоего магазина:OsCommerce



Много времени мне не удавалось решить проблему с ошибкой в боксе отзывов.
Она появилась давно. Сначала после перехода на UTF-8 и ее как-то криво/косо удавалось решить на базе советов которые размещали на нашем форуме.

Однако, после перехода на обновленные версии серверного ПО, например на: Версия PHP - 5.6.36 и MySQL 5.6.38, английское описание отображалось в текстах бокса отзывов корректно, а вот на русском языке - некорректно. Там высвечивались те самые знаменитые вопросики в квадратиках.
Попытка решить проблему на основе рекомендаций была безуспешна. Попытка применения разных советов приводила вообще к остановке сервера.
Ну вот пришлось лезть в эту проблему самому и решать ее наверное "неправильными" методами.
Тем не менее, давайте посмотрим. Так было до коррекции:

Прикрепленный файл  104250.jpg ( 24,84 килобайт ) Кол-во скачиваний: 10
Прикрепленный файл  114455.jpg ( 14,1 килобайт ) Кол-во скачиваний: 12


А вот так стало после:

Прикрепленный файл  114830.jpg ( 23,39 килобайт ) Кол-во скачиваний: 11
Прикрепленный файл  114707.jpg ( 12,79 килобайт ) Кол-во скачиваний: 13


Что для этого пришлось сделать???

Открываем файл /includes/modules/boxes/bm_reviews.php (версия OSC 2.3.4.1)
Ищем строку №50

Код
        $rand_review_text = tep_break_string(tep_output_string_protected($rand_review['reviews_text']), 15, '-<br />');


И заменяем ее на это:
Код
        $rand_review_text = tep_break_string(tep_output_string_protected($rand_review['reviews_text']), 35, '-<br />');


То есть просто изменяем длину укороченной строки с 15 символов на 35. Этого оказывается достаточно, что бы наш скрипт умудрился прочитать более менее корректно то, что там написано, причем на русском языке! Думаю, что он проглотит теперь и многие другие языки, так как читал о проблемах с турецким.

Вы наверное обратили внимание, что попутно там изменился цвет звездочек, да еще они и вращаться начали, что надеюсь привлечет внимание посетителей.
Для отображения звездочек используется Шрифт Awesome и цвет по умолчанию - черный. Ну черная звездочка, это как то не очень. Поэтому,ее цвет можно поменять на любой другой который нравится вам.
Как это сделать?

Залазим в файл /includes/functions/html_output.php и кое что в нем меняем:

Ищем код: примерно строка 407, 408.
Код
    $stars = str_repeat('<span class="fas fa-star"></span>', (int)$rating);
    $stars .= str_repeat('<span class="far fa-star"></span>', 5-(int)$rating);


И заменяем их на это:
Код
     $stars = str_repeat('<span class="fas fa-star fa-spin" style="color:58a862"></span>', (int)$rating);
    $stars .= str_repeat('<span class="far fa-star fa-spin" style="color:58a862"></span>', 5-(int)$rating);


Добавочка fa-spin заставляет звездочки крутиться, а добавка style="color:58a862" перекрашивает звездочки в другой цвет. Можно с цветом проще:
style="color:red" перекрасит ваши звезды в красный. rolleyes.gif

Всех с весенними праздниками!

Перейти в начало страницы
 
+Цитировать сообщение

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 30.5.2020, 13:37