Перейти к содержанию
Artice

Обрезаются русские слова в личном кабинете [решено]

Рекомендуемые сообщения

Здравствуйте,

Поставил потестировать на denwer.

Есть ошибка в профиле пользователя в кабинете.

Если имя и фамилия на русском, то после регистрации остаются только первые буквы имени и фамилии. В админке этот же пользователь исправляется и отображается корректно до следующего изменения данных в личном кабинете.

Та же ситуация и с адресом на русском.

С латиницей проблем нет.

В версии ocStore 0.1.5 подобного поведения не наблюдается.

post-4638-0-35671900-1295175930_thumb.jpg

Поделиться сообщением


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

Здравствуйте,

Поставил потестировать на denwer.

Есть ошибка в профиле пользователя в кабинете.

Если имя и фамилия на русском, то после регистрации остаются только первые буквы имени и фамилии. В админке этот же пользователь исправляется и отображается корректно до следующего изменения данных в личном кабинете.

Та же ситуация и с адресом на русском.

С латиницей проблем нет.

В версии ocStore 0.1.5 подобного поведения не наблюдается.

Настройки пхп покажите.

Поделиться сообщением


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

Есть ошибка в профиле пользователя в кабинете.

Если имя и фамилия на русском, то после регистрации остаются только первые буквы имени и фамилии. В админке этот же пользователь исправляется и отображается корректно до следующего изменения данных в личном кабинете.

В версии ocStore 0.1.5 подобного поведения не наблюдается.

Заметил в 0.1.6 аналогичную проблему, откатился на 0.1.5.

P.S. Заранее прощу прощения, возможно вопрос не в нужную ветку,

но интересует появится ли в OC возможность выводить изображение товара анимированным GIF?

Поделиться сообщением


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

Заметил в 0.1.6 аналогичную проблему, откатился на 0.1.5.

P.S. Заранее прощу прощения, возможно вопрос не в нужную ветку,

но интересует появится ли в OC возможность выводить изображение товара анимированным GIF?

Не получается воспроизвести. Дайте больше входных данных.

Настройки php? Сторонние модули? И скажите последовательность действий как воспроизвести ошибку.

Поделиться сообщением


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

Настройки пхп покажите.

Прикрепляю php.ini

С одними и теми же настройками в 1.5 все ОК а в 1.6 глюк

Я ставил на денвер чистый ocStore 1.6 ( и одновременно 1.5), заводил нового пользователя магазина с русскими - имя фамилия. После чего в кабинете входил в изменение данных и видел только первые буквы в 1.6 и нормальные имя-фамилия в 1.5

php_htaccess.zip

Поделиться сообщением


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

Прикрепляю php.ini

С одними и теми же настройками в 1.5 все ОК а в 1.6 глюк

Я ставил на денвер чистый ocStore 1.6 ( и одновременно 1.5), заводил нового пользователя магазина с русскими - имя фамилия. После чего в кабинете входил в изменение данных и видел только первые буквы в 1.6 и нормальные имя-фамилия в 1.5

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

Поделиться сообщением


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

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

Скорее всего потому, что ты не поменял свои данные в личном кабинете

Поделиться сообщением


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

PHP Version 5.2.12

Дайте ссылку на магазин И вывод phpinfo(), хотя бы в личку.. Посмотрю. У меня не получается воспроизвести у себя. Ни на php 5.2 ни на 5.3

Поделиться сообщением


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

Дайте ссылку на магазин И вывод phpinfo(), хотя бы в личку.. Посмотрю. У меня не получается воспроизвести у себя. Ни на php 5.2 ни на 5.3

Онлайн магазина пока нет, заброшу базовый opencart на хостинг в течении ближайших нескольких дней. Если ошибка будет - пришлю ссылку обязательно.

Сегодня проверил на свежескачанном xampp lite. Все что поменял в конфигурации дистрибутива - включил в php.ini php_curl.dll.

ocStore 0.1.6 - результат тот же. Обрезает русские слова в кабинете.

Поделиться сообщением


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

Сообщения об ошибках пишем в соответствующем разделе.

Перенесено из темы https://opencartforum.com/topic/1280-вышел-ocstore-v016-opencart-1493/

Поделиться сообщением


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

На денвере в локалке аналогичная проблема.

Залил на хостинг, проблема исчезла.

Поделиться сообщением


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

Аналогичная проблема.

Версия 0.1.6, без доп модулей, устанавливал на Денвер

Поделиться сообщением


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

проблема решена :)

в этом виновата функция strtolower

В файле catalog\model\account\customer.php

Удалите или закомментируйте

		$data['firstname'] = ucwords(strtolower(trim($data['firstname'])));
		$data['lastname'] = ucwords(strtolower(trim($data['lastname'])));
у меня это 29 и 30 строка

чуть не забыл, это проблема проявляется сразу при регистрации пользователя

поэтому в этом же файле удалите или закомментируйте

		$data['firstname'] = ucwords(strtolower(trim($data['firstname'])));
		$data['lastname'] = ucwords(strtolower(trim($data['lastname'])));
		$data['company'] = ucwords(strtolower(trim($data['company'])));
		$data['address_1'] = ucwords(strtolower(trim($data['address_1'])));
		$data['address_2'] = ucwords(strtolower(trim($data['address_2'])));
		$data['city'] = ucwords(strtolower(trim($data['city'])));
у меня это с 5 по 10 строку

Поделиться сообщением


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

проблема решена :)

Не хочется огорчать, но вопрос все еще открытый.

Потому что вот это размышление:

в этом виновата функция strtolower

в корне неверное.

<?php

/* trim() -> убирает пробелы с обоих сторон строки */
$myVar1 = " aaaФвалФвЛДОПЛДыло   ";
echo "myVar1: "<pre>".$myVar1."</pre>"<br />";
echo "myVar1 trim`ed: "<pre>".trim($myVar1)."</pre>"<br />";

/* strtolower -> приводит строку к нижнему регистру */
$myVar2 = " aaaФвалФвЛДОПЛДыло   ";
echo "myVar2: "<pre>".$myVar2."</pre>"<br />";
echo "myVar2 trim`ed + strtolower`ed: "<pre>".strtolower(trim($myVar2))."</pre>"<br />";

/* ucwords -> приводит ПЕРВЫЙ символ строки к ВЕРХНЕМУ регистру */
$myVar3 = " aaaФвалФвЛДОПЛДыло   ";
echo "myVar3: "<pre>".$myVar3."</pre>"<br />";
echo "myVar3 trim`ed + strtolower`ed + ucwords`ed: "<pre>".ucwords(strtolower(trim($myVar3)))."</pre>"<br />";

?>

Поделиться сообщением


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

проблема решена :)

в этом виновата функция strtolower

В файле catalog\model\account\customer.php

Удалите или закомментируйте

		$data['firstname'] = ucwords(strtolower(trim($data['firstname'])));
		$data['lastname'] = ucwords(strtolower(trim($data['lastname'])));
у меня это 29 и 30 строка

чуть не забыл, это проблема проявляется сразу при регистрации пользователя

поэтому в этом же файле удалите или закомментируйте

		$data['firstname'] = ucwords(strtolower(trim($data['firstname'])));
		$data['lastname'] = ucwords(strtolower(trim($data['lastname'])));
		$data['company'] = ucwords(strtolower(trim($data['company'])));
		$data['address_1'] = ucwords(strtolower(trim($data['address_1'])));
		$data['address_2'] = ucwords(strtolower(trim($data['address_2'])));
		$data['city'] = ucwords(strtolower(trim($data['city'])));
у меня это с 5 по 10 строку

Хм ... гипотетически возможно. Так как эти поля появились в 1.9.3 - но на UNIX хостингах того не должно быть. Проверял у себя - все работает как надо.

Попробуй заменить вот на этот код:

$data['firstname'] = mb_convert_case( trim( $data['firstname'] ), MB_CASE_TITLE, "UTF-8");
$data['lastname'] = mb_convert_case( trim( $data['lastname'] ), MB_CASE_TITLE, "UTF-8");

И отпишись плиз. Чем скорее тем лучше. Сегодня хочу 0.1.7 выложить с модулем 1С и патчем для SMS уведомлений.

Поделиться сообщением


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

Не хочется огорчать, но вопрос все еще открытый.

Потому что вот это размышление:

в корне неверное.

<?php

/* trim() -> убирает пробелы с обоих сторон строки */
$myVar1 = " aaaФвалФвЛДОПЛДыло   ";
echo "myVar1: "<pre>".$myVar1."</pre>"<br />";
echo "myVar1 trim`ed: "<pre>".trim($myVar1)."</pre>"<br />";

/* strtolower -> приводит строку к нижнему регистру */
$myVar2 = " aaaФвалФвЛДОПЛДыло   ";
echo "myVar2: "<pre>".$myVar2."</pre>"<br />";
echo "myVar2 trim`ed + strtolower`ed: "<pre>".strtolower(trim($myVar2))."</pre>"<br />";

/* ucwords -> приводит ПЕРВЫЙ символ строки к ВЕРХНЕМУ регистру */
$myVar3 = " aaaФвалФвЛДОПЛДыло   ";
echo "myVar3: "<pre>".$myVar3."</pre>"<br />";
echo "myVar3 trim`ed + strtolower`ed + ucwords`ed: "<pre>".ucwords(strtolower(trim($myVar3)))."</pre>"<br />";

?>

Теоретически, при использовании UTF-8 это может криво работать. Корректнее использовать mb_* функции работы со строками.

Поделиться сообщением


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

Не хочется огорчать, но вопрос все еще открытый.

Потому что вот это размышление:

в корне неверное.

<?php

/* trim() -> убирает пробелы с обоих сторон строки */
$myVar1 = " aaaФвалФвЛДОПЛДыло   ";
echo "myVar1: "<pre>".$myVar1."</pre>"<br />";
echo "myVar1 trim`ed: "<pre>".trim($myVar1)."</pre>"<br />";

/* strtolower -> приводит строку к нижнему регистру */
$myVar2 = " aaaФвалФвЛДОПЛДыло   ";
echo "myVar2: "<pre>".$myVar2."</pre>"<br />";
echo "myVar2 trim`ed + strtolower`ed: "<pre>".strtolower(trim($myVar2))."</pre>"<br />";

/* ucwords -> приводит ПЕРВЫЙ символ строки к ВЕРХНЕМУ регистру */
$myVar3 = " aaaФвалФвЛДОПЛДыло   ";
echo "myVar3: "<pre>".$myVar3."</pre>"<br />";
echo "myVar3 trim`ed + strtolower`ed + ucwords`ed: "<pre>".ucwords(strtolower(trim($myVar3)))."</pre>"<br />";

?>

почему в корне не верно?

при установки скрипта на Денвер проблема именно в этом..

и вообще есть ли смысл в этой операции?

почему тогда при редактировании адресов доставки это не используется?

Поделиться сообщением


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

Теоретически, при использовании UTF-8 это может криво работать. Корректнее использовать mb_* функции работы со строками.

согласен, только не еще раз повторю не вижу смысла в этой операции, зачем заморачиваться на этом?

Поделиться сообщением


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

согласен, только не еще раз повторю не вижу смысла в этой операции, зачем заморачиваться на этом?

Любо глазу :) Так проверь плиз. работает или нет?

Поделиться сообщением


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

Любо глазу :) Так проверь плиз. работает или нет?

вечером проверю, сейчас не могу..

но из сборки это надо убрать :) или тогда добавлять в редактирование адресов :)

Поделиться сообщением


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

вечером проверю, сейчас не могу..

но из сборки это надо убрать :) или тогда добавлять в редактирование адресов :)

Это понятное дело :) И адреса тоже поправил :)

Поделиться сообщением


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

Хм, узаю ocStore v0.1.6 на удаленном хостинге и вроде не заметил пока, этих косяков...

Поделиться сообщением


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

$data['firstname'] = mb_convert_case( trim( $data['firstname'] ), MB_CASE_TITLE, "UTF-8");
$data['lastname'] = mb_convert_case( trim( $data['lastname'] ), MB_CASE_TITLE, "UTF-8");

Работает

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

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

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