Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Знак вопроса при сокращении названия товара в корзине.


Recommended Posts

Спойлер

1.png.a44d2159f3ad3d282695b4667962dc10.png

Такая проблемка обранужилась.
с тем учетом что используются:

/catalog/controller/common/cart.php
utf8_strlen  utf8_substr

            foreach ($product['option'] as $option) {
                if ($option['type'] != 'file') {
                    $value = $option['value'];
                } else {
                    $upload_info = $this->model_tool_upload->getUploadByCode($option['value']);

                    if ($upload_info) {
                        $value = $upload_info['name'];
                    } else {
                        $value = '';
                    }
                }

                $option_data[] = array(
                    'name'  => $option['name'],
                    'value' => (utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value),
                    'type'  => $option['type']
                );

Файл cart.twig в кодировке utf-8 без BOM -> на хостинге в настройках PHP стоит AddDefaultCharset-UTF8

 

<meta charset="UTF-8" />

я уже руки опустил, не знаю куда дальше копать

 
Змінено користувачем Feldeshi
Надіслати
Поділитися на інших сайтах


3 години назад, Feldeshi сказав:
  Показати вміст

1.png.a44d2159f3ad3d282695b4667962dc10.png

Такая проблемка обранужилась.
с тем учетом что используются:

/catalog/controller/common/cart.php
utf8_strlen  utf8_substr


            foreach ($product['option'] as $option) {
                if ($option['type'] != 'file') {
                    $value = $option['value'];
                } else {
                    $upload_info = $this->model_tool_upload->getUploadByCode($option['value']);

                    if ($upload_info) {
                        $value = $upload_info['name'];
                    } else {
                        $value = '';
                    }
                }

                $option_data[] = array(
                    'name'  => $option['name'],
                    'value' => (utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value),
                    'type'  => $option['type']
                );

Файл cart.twig в кодировке utf-8 без BOM -> на хостинге в настройках PHP стоит AddDefaultCharset-UTF8

 


<meta charset="UTF-8" />

я уже руки опустил, не знаю куда дальше копать

 

UTF8 без BOOM

Надіслати
Поділитися на інших сайтах


41 минуту назад, nikifalex сказал:

короче ищите везде substr( для начала

Просто какбы те файлы не трогал изначально чистый движок ставил... Есть ли смысл там искать 

Надіслати
Поділитися на інших сайтах


35 минут назад, nikifalex сказал:

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

просто в файле cart.php нет больше ничего связанного с utf8_strlen 

 

Спойлер

1.jpg.e9baaa509561316c6c0cccd32f09e10d.jpg

что самое мне не понятное что некоторые продукты нормально смотрятся в корзине а некоторые с знаком.

Надіслати
Поділитися на інших сайтах


модификатор какой-то вносит изменения в cart.php или в самом шаблоне обрезается название

Надіслати
Поділитися на інших сайтах


UPD: Использовал один модуль который как я увидел делает некрасивую вещь)

	<file path="catalog/controller/common/cart.php">
		<operation>
			<search><![CDATA[$data['text_items'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total, $this->session->data['currency']));]]></search>
			<add position="replace"><![CDATA[
				$data['text_items'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), null);
			]]></add>
		</operation>
		<operation>
			<search><![CDATA[$data['products'][] = array(]]></search>
			<add position="before"><![CDATA[
				$c_words = 30;
				$product['name'] = strlen($product['name']) > $c_words ? substr($product['name'],0,$c_words)."..." : $product['name'];
			]]></add>
		</operation>
	</file>	

Теперь я понял почему я просто в файлах найти не мог, пошел методом тыка и стал отключать модификаторы по одному, и проблема пропала не сложным методом вычислил модификатор залез в его установщик. НУ думаю теперь если utf8_ дописать должно заработать нормально. 

Надіслати
Поділитися на інших сайтах


3 минуты назад, thentru сказал:

модификатор какой-то вносит изменения в cart.php или в самом шаблоне обрезается название

Вы на 2 минуты раньше меня подумали) круто :)
Opencart раньше не использовал, попросили друзья сайт суши им сделать.

Змінено користувачем Feldeshi
Надіслати
Поділитися на інших сайтах


Всем спасибо, тему можно закрывать, проблему решил.
Кому может пригодится в таблице oc_modification нашел нужный мне модификатор и поправил 

strlen($product['name']) > $c_words ? substr($product

в
 

utf8_strlen($product['name']) > $c_words ? utf8_substr($product
Спойлер

1.jpg.7a486280a9c4078134ba08a2dbfe8486.jpg

 

Змінено користувачем Feldeshi
Надіслати
Поділитися на інших сайтах


  • 2 years later...

Добавлю, что utf8_strlen  utf8_substr это  пользовательские методы хелпера Opencart, которые находятся в файле system\helper\utf8.php
К примеру:
 

function utf8_strlen($string) {
     return mb_strlen($string);
}

 

Змінено користувачем fortoonas
Надіслати
Поділитися на інших сайтах


  • 1 year later...

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.