Регионы - отображение не кодом, а названиемС проверкой для РФ на совпадение названий региона и города.
Joomla 1.5.22 & VirtueMart 1.1.5 stableJoomla 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";
и приличная часть вышеизложенной "простыни" не нужна.