0 Пользователей и 1 Гость просматривают эту тему.
  • 23 Ответов
  • 4975 Просмотров
*

fsv

  • Moderator
  • 2672
  • 384 / 2
Регионы - отображение не кодом, а названием
С проверкой для РФ на совпадение названий региона и города.

Joomla 1.5.22 & VirtueMart 1.1.5 stable
Joomla 1.5.23 & VirtueMart 1.1.8 stable

Если названия города и региона совпадают, то выводится только название города без названия региона.
В РФ это:
- город «Москва» = 77 регион «Москва»
- город «Санкт-Петербург» = 78 регион «Санкт-Петербург»


На 1-м шаге заказа (основной адрес):

\components\com_virtuemart\themes\default\templates\checkout\ customer_info.tpl.php
стр.55
$db->p("state_2_code");
заменить на

для всех, кроме РФ:
$db->p("state_name");

для РФ:
if ($db->f("country_id") == '176') {
if ($db->f("state_2_code")!='77' && $db->f("state_2_code")!='78') {
$db->p("state_name");
}
}


На 1-м шаге заказа (дополнительные адреса доставок):

\components\com_virtuemart\themes\default\templates\checkout\ list_shipto_addresses.tpl.php
стр.65
echo $db->f("state_2_code"). " ";
заменить на

для всех, кроме РФ:
echo $db->f("state_name"). " ";

для РФ:
if ($db->f("country_id") == '176') {
if ($db->f("state_2_code")!='77' && $db->f("state_2_code")!='78') {
echo $db->f("state_name"). " ";
}
}

На 4-м шаге заказа:

\components\com_virtuemart\themes\default\templates\checkout\get_final_confirmation.tpl.php
МЕЖДУ  стр.52:  
  ), true );
и стр.53:
echo "</td></tr>";
вставляем:

для всех, кроме РФ:
echo $state_name;
echo "  ";
echo $db->f("zip");

для РФ:
$q = "SELECT state_2_code FROM #__{vm}_state WHERE state_2_code='".$db->f("state")."'";
$dbs->query($q);
$state_2_code = $dbs->f("state_2_code");
if ($country_id == '176') {
if ($state_2_code !='77' && $state_2_code !='78') {
echo $state_name;
echo "  ";
echo $db->f("zip");
}
else {
echo $db->f("zip");
}
}

в админке VirtueMart – Магазин – Информация о магазине - Формат адреса магазина:  убираем (если есть) {zip}


В кабинете Покупателя на странице заказа - «Управление учетной записью -> Информация о заказе»:

\components\com_virtuemart\themes\default\templates\pages\ account.order_details.tpl.php
перед примерно стр. 106
case 'country':
вставить:

case 'state':     
$dbstl = new ps_DB();
$q = "SELECT state_name FROM #__{vm}_state WHERE #__{vm}_state.country_id = ";
$q .= "(SELECT country_id FROM #__{vm}_country WHERE #__{vm}_country.country_3_code = '".$dbbt->f('country')."') ";
$q .= "AND #__{vm}_state.state_2_code = '".$dbbt->f('state')."' ";
$dbstl->query($q);
$dbstl->next_record();
echo $dbstl->f( 'state_name' );                                          
break;

перед примерно стр. 146 (до правок)
case 'country':
вставить:
то же


В приходящем Покупателю письме:

/comoponents/com_virtuemart/themes/ default /templates/order_emails/confirmation_email.tpl.php
перед примерно стр. 77
case 'country':
вставить:  см.выше (Информация о заказе)

перед примерно стр. 116 (до правок)
case 'country':
вставить:
case 'state':     
$dbstl = new ps_DB();
$q = "SELECT state_name FROM #__{vm}_state WHERE #__{vm}_state.country_id = ";
$q .= "(SELECT country_id FROM #__{vm}_country WHERE #__{vm}_country.country_3_code = '".$dbst->f('country')."') ";
$q .= "AND #__{vm}_state.state_2_code = '".$dbst->f('state')."' ";
$dbstl->query($q);
$dbstl->next_record();
echo $dbstl->f( 'state_name' );                                          
break;


В панели управления VirtueMart в информации о заказе – «Заказы – Список заказов – заказ#»:

administrator/components/com_virtuemart/html/order.order_print.php  

перед примерно стр. 225
case 'country':
вставить:
case 'state':     
$dbstl = new ps_DB();
$q = "SELECT state_name FROM #__{vm}_state WHERE #__{vm}_state.country_id = ";
$q .= "(SELECT country_id FROM #__{vm}_country WHERE #__{vm}_country.country_3_code = '".$dbt->f('country')."') ";
$q .= "AND #__{vm}_state.state_2_code = '".$dbt->f('state')."' ";
$dbstl->query($q);
$dbstl->next_record();
echo $dbstl->f( 'state_name' );                                          
break;

перед примерно стр. 263 (до правок)
case 'country':
вставить:
то же


В панели управления VirtueMart в информации о заказе – «Заказы – Список заказов – заказ# - ВИД для ПЕЧАТИ»:

administrator/components/com_virtuemart/html/order.order_printdetails.php  
перед примерно стр. 110
case 'country':
вставить:

case 'state':     
$dbstl = new ps_DB();
$q = "SELECT state_name FROM #__{vm}_state WHERE #__{vm}_state.country_id = ";
$q .= "(SELECT country_id FROM #__{vm}_country WHERE #__{vm}_country.country_3_code = '".$dbbt->f('country')."') ";
$q .= "AND #__{vm}_state.state_2_code = '".$dbbt->f('state')."' ";
$dbstl->query($q);
$dbstl->next_record();
echo $dbstl->f( 'state_name' );                                          
break;

перед примерно стр. 145 (до правок)
case 'country':
вставить:
то же

=====================================================================================================

\administrator\components\com_virtuemart\classes\ps_html.php
function dynamic_state_lists
Код
$script .= "states[".$i++."] = new Array( '".$country_3_code."','".$db->f("state_2_code")."','".addslashes($db->f("state_name"))."' );\n";
заменить на
Код
$script .= "states[".$i++."] = new Array( '".$country_3_code."','".addslashes($db->f("state_name"))."','".addslashes($db->f("state_name"))."' );\n";
и приличная часть вышеизложенной "простыни" не нужна.
« Последнее редактирование: 15.12.2012, 00:33:50 от fsv »
Веб-разработка: заказ. Только сложная и объемная разработка. Дорого.
*

vip-leonid

  • Захожу иногда
  • 71
  • 0 / 0
  • Жизнь прекрасна...
Цитировать
На 1-м шаге заказа (дополнительные адреса доставок):

\components\com_virtuemart\themes\default\templates\checkout\ list_shipto_addresses.tpl.php
стр.65
echo $db->f("state_2_code"). " ";
заменить на

для всех, кроме РФ:
echo $db->f("state_name"). " ";

для РФ:
if ($db->f("country_id") == '176') {
if ($db->f("state_2_code")!='77' && $db->f("state_2_code")!='78') {
echo $db->f("state_name"). " ";
}
}

На этом участке кода вылазеет ошибка - Название региона 2 раза. Т.е. Саратовская область Саратовская область
*

fsv

  • Moderator
  • 2672
  • 384 / 2
На этом участке кода вылазеет ошибка - Название региона 2 раза. Т.е. Саратовская область Саратовская область

- а вы обратили внимание, что это 2 варианта замены: "кроме РФ" и "для РФ".
или вы весь код скопировали?

- и вы убрали «старый» код, который был, вы писали, что здесь нашли и изменили?
echo $db->f("state_name"). " "; 

- покажите ваш измененный код
« Последнее редактирование: 14.06.2011, 16:20:10 от fsv »
Веб-разработка: заказ. Только сложная и объемная разработка. Дорого.
*

vip-leonid

  • Захожу иногда
  • 71
  • 0 / 0
  • Жизнь прекрасна...
- а вы обратили внимание, что это 2 варианта замены: "кроме РФ" и "для РФ".
или вы весь код скопировали?

- и вы убрали «старый» код, который был, вы писали, что здесь нашли и изменили?
echo $db->f("state_name"). " "; 

- покажите ваш измененный код
Извиняюсь, значит я просто неправильно понял, что это два варианта замены.
Но, все равно у меня почему-то на 1-м шаге заказа (основной адрес):

\components\com_virtuemart\themes\default\templates\checkout\ customer_info.tpl.php
стр.55

При замене кода:

Код: php
$db->p("state_2_code");

На:

Код: php
для РФ:
if ($country_id == '176') {
if ($state_2_code !='77' && $state_2_code !='78') {
$db->p("state_name");
}
}

Получается, что вместо региона пусто.
*

fsv

  • Moderator
  • 2672
  • 384 / 2
- какой город в основном адресе? если Москва или Питер, то должно быть пусто

- я испытывал только на VM 1.1.5, о чем и указал. Ваша версия?

- покажите код (файл с изменениями, только сверните)
Веб-разработка: заказ. Только сложная и объемная разработка. Дорого.
*

vip-leonid

  • Захожу иногда
  • 71
  • 0 / 0
  • Жизнь прекрасна...
- какой город в основном адресе? если Москва или Питер, то должно быть пусто

- я испытывал только на VM 1.1.5, о чем и указал. Ваша версия?

- покажите код (файл с изменениями, только сверните)

Код:

Код: php
// for state, can be used: state_name, state_2_code, state_3_code
if ($country_id == '176') {
if ($state_2_code !='77' && $state_2_code !='78') {
$db->p("state_name");
}
}             echo ", ";
             $db->p("zip");
             echo "<br /> ";
Версия:1.1.8
*

fsv

  • Moderator
  • 2672
  • 384 / 2
у меня также, все работает.
надо будет поставить 1.1.8 и посмотреть

кстати, вы не ответили, в основном адресе НЕ Москва или Питер?
Веб-разработка: заказ. Только сложная и объемная разработка. Дорого.
*

vip-leonid

  • Захожу иногда
  • 71
  • 0 / 0
  • Жизнь прекрасна...
у меня также, все работает.
надо будет поставить 1.1.8 и посмотреть

кстати, вы не ответили, в основном адресе НЕ Москва или Питер?
Нет, Энгельс, Саратовская область,

А получается: Энгельс, ,
*

vip-leonid

  • Захожу иногда
  • 71
  • 0 / 0
  • Жизнь прекрасна...
Дело в том, что я попробовал изменить, только 1-й  шаг, возможно необходимо произвести изменения во всех файлах. (Хотя, вроде все правил, все работало...)Надо подумать..
*

fsv

  • Moderator
  • 2672
  • 384 / 2
Дело в том, что я попробовал изменить, только 1-й  шаг, возможно необходимо произвести изменения во всех файлах. (Хотя, вроде все правил, все работало...)Надо подумать..

да нет, во всех файлах сразу не надо. после каждого измененного файла виден результат на определенном шаге.
поставлю 1.1.8, отпишусь

Веб-разработка: заказ. Только сложная и объемная разработка. Дорого.
*

vip-leonid

  • Захожу иногда
  • 71
  • 0 / 0
  • Жизнь прекрасна...
да нет, во всех файлах сразу не надо. после каждого измененного файла виден результат на определенном шаге.
поставлю 1.1.8, отпишусь
Огромное спасибо!

*

fsv

  • Moderator
  • 2672
  • 384 / 2
"В приходящем Покупателю письме:", во второй части заметил ошибку. Вроде смотрел, но не видел. Надо подумать.

исправил.
в 2-х местах по 1 букве перепутал.
« Последнее редактирование: 14.06.2011, 19:19:34 от fsv »
Веб-разработка: заказ. Только сложная и объемная разработка. Дорого.
*

fsv

  • Moderator
  • 2672
  • 384 / 2
проверил на Joomla 1.5.23 & VirtueMart 1.1.8 stable - все работает.
Веб-разработка: заказ. Только сложная и объемная разработка. Дорого.
*

vip-leonid

  • Захожу иногда
  • 71
  • 0 / 0
  • Жизнь прекрасна...
проверил на Joomla 1.5.23 & VirtueMart 1.1.8 stable - все работает.

Сегодня по позже ещё раз попробую проверить... Наверное это у меня какой-нибудь глюк.
*

fsv

  • Moderator
  • 2672
  • 384 / 2
Сегодня по позже ещё раз попробую проверить... Наверное это у меня какой-нибудь глюк.

Это моя ошибка. Прошу прощения.
Код изменил. Забыл обращение к базе записать, а работало, потому что в основном адресе у меня был 77 регион. Изменил на вашу ситуацию, заметил свою ошибку.

Веб-разработка: заказ. Только сложная и объемная разработка. Дорого.
*

vip-leonid

  • Захожу иногда
  • 71
  • 0 / 0
  • Жизнь прекрасна...
Это моя ошибка. Прошу прощения.
Код изменил. Забыл обращение к базе записать, а работало, потому что в основном адресе у меня был 77 регион. Изменил на вашу ситуацию, заметил свою ошибку.


Огромное Вам спасибо, за такую серьёзную проделанную работу!
*

GTpro

  • Захожу иногда
  • 102
  • 1 / 0
Спасибо!
VM 1.1.2
JLE 1.0.15
Все отлично работает!
*

bixitron

  • Осваиваюсь на форуме
  • 34
  • 1 / 0
Отличная работа, спасибо. Долго искал это решение... +1
Вот только у меня при выборе Москвы или С-Петербурга всё равно добавляет название региона к городу.
VM 1.1.9, Joomla 1.5.25
*

fsv

  • Moderator
  • 2672
  • 384 / 2
Вот только у меня при выборе Москвы или С-Петербурга всё равно добавляет название региона к городу.
VM 1.1.9, Joomla 1.5.25

Попробуйте внимательно проверить, правильно ли скопировали код.
Если все соответствует, на каком шаге ошибка (код приведите)?

Веб-разработка: заказ. Только сложная и объемная разработка. Дорого.
*

bestvinyl

  • Осваиваюсь на форуме
  • 27
  • 2 / 0
*

Airat9000

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
вот я все сделал теперь вообще страны пропали в заказе товара что за бред*?
*

fsv

  • Moderator
  • 2672
  • 384 / 2
вот я все сделал теперь вообще страны пропали в заказе товара что за бред*?

значит не "все". или больше, чем "все".
Веб-разработка: заказ. Только сложная и объемная разработка. Дорого.
*

market316

  • Новичок
  • 4
  • 0 / 0
fsv, подскажите, пожалуйста.
У меня Joomla! 1.5.25, VirtueMart 1.1.9, стоит шаблон для VirtueMart Mynxx. Я, естественно, вносил ваши изменения в файлы этого шаблона. Не помогло.
Возможно, нужно независимо от установленного шаблона менять Default? И что вы имеете ввиду, когда пишете о "приличной части вышеизложенной "простыни", чего из написанного можно не делать?

Может, кто другой знает ответ?
*

fsv

  • Moderator
  • 2672
  • 384 / 2
И что вы имеете ввиду, когда пишете о "приличной части вышеизложенной "простыни", чего из написанного можно не делать?
Это было дополнение через 1,5 года после старт-поста...
Чтобы ответить на ваш вопрос, мне надо все повторить, но можно проще:
- сначала делаете это дополнение;
-потом смотрите, что еще надо делать, а что уже не надо из того, что описано выше.


У меня Joomla! 1.5.25, VirtueMart 1.1.9, стоит шаблон для VirtueMart Mynxx. Я, естественно, вносил ваши изменения в файлы этого шаблона. Не помогло.
Возможно, нужно независимо от установленного шаблона менять Default?
Изменять надо шаблоны используемой темы VM. С вашим шаблоном не знаком. Для проверки работоспособности кода можете переключить на дефолтную тему и изменить ее. Неоднократно сталкивался с тем, насколько эти "темы" кривые, но это не значит, что и ваша такая, возможно, код отличается от дефолтного, и вы не туда перенесли.
Веб-разработка: заказ. Только сложная и объемная разработка. Дорого.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться