Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

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


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" />

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

 
Изменено пользователем 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

Ссылка на комменирий
Погделиться на других сайих


9 часов назад, AlexDW сказал:

показываете правки кода опций, а на скрине ошибки в самом названии товаров

Подскажите ггде искать?

Ссылка на комменирий
Погделиться на других сайих


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 года спустя...

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

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

 

Изменено пользователем fortoonas
Ссылка на комменирий
Погделиться на других сайих


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.