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

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


Recommended Posts

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

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

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

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

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

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

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

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

Link to post
Share on other sites

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

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

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

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

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

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

Link to post
Share on other sites

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

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

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

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

php_htaccess.zip

Link to post
Share on other sites

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

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

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

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

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

Скорее всего потому, что ты не поменял свои данные в личном кабинете
Link to post
Share on other sites

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

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

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

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

Link to post
Share on other sites

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

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

Link to post
Share on other sites

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

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

Link to post
Share on other sites

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

в этом виновата функция 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 строку
Link to post
Share on other sites

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

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

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

в этом виновата функция 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 />";

?>
Link to post
Share on other sites

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

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

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

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

?>

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

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

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

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

Link to post
Share on other sites

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

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

Link to post
Share on other sites

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

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

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

Link to post
Share on other sites

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

Link to post
Share on other sites

$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");

Работает

Link to post
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
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • 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.