Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

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


 Share

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

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

 
Edited by Feldeshi
Link to comment
Share on other sites


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

Link to comment
Share on other sites


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

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

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

Link to comment
Share on other sites


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

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

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

Link to comment
Share on other sites


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

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

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

 

Спойлер

1.jpg.e9baaa509561316c6c0cccd32f09e10d.jpg

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

Link to comment
Share on other sites


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

Link to comment
Share on other sites


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_ дописать должно заработать нормально. 

Link to comment
Share on other sites


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

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

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

Edited by Feldeshi
Link to comment
Share on other sites


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

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

в
 

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

1.jpg.7a486280a9c4078134ba08a2dbfe8486.jpg

 

Edited by Feldeshi
Link to comment
Share on other sites


  • 2 years later...

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

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

 

Edited by fortoonas
Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.