Отображение имени области, а не кода для
VM 1.1.3:
В конце файла
/classes/ps_country.php (в админке) добавить функцию:
function &get_state_by_code( $code, $c_id ) {
$_table_name = '#__{vm}_state';
$db = new ps_DB();
$state_code_type = strlen( $code );
switch ($state_code_type) {
case 2:
$state_code_type_field = 'state_2_code';
break;
case 3:
$state_code_type_field = 'state_3_code';
break;
default:
return false;
}
$db->query('SELECT `state_id`, `state_name`, `state_2_code`, `state_3_code`
FROM `'.$_table_name.'` WHERE country_id = '.$c_id.' and `'.$state_code_type_field.'` = \''.$db->getEscaped($code).'\'' );
$db->next_record();
return $db;
}
Для нормального отображения в админке в файле
order.order_print.php делаем изменения:
строка 203:
switch($field->name) {
case 'country':
require_once(CLASSPATH.'ps_country.php');
$country = new ps_country();
$dbc = $country->get_country_by_code($dbt->f($field->name));
if( $dbc !== false ) echo $dbc->f('country_name');
break;
default:
$fieldvalue = $dbt->f($field->name);
if ( is_null($fieldvalue) OR $fieldvalue == "" ) {
echo " ";
} else {
echo $fieldvalue;
}
break;
необходимо исправить на
switch($field->name) {
case 'country':
require_once(CLASSPATH.'ps_country.php');
$country = new ps_country();
$dbc = $country->get_country_by_code($dbt->f($field->name));
if( $dbc !== false ) echo $dbc->f('country_name');
$country_id=$dbc->f('country_id');
break;
case 'state':
require_once(CLASSPATH.'ps_country.php');
$state = new ps_country();
$dbs = $state->get_state_by_code($dbt->f($field->name), $country_id);
if( $dbs !== false ) echo $dbs->f('state_name');
break;
default:
$fieldvalue = $dbt->f($field->name);
if ( is_null($fieldvalue) OR $fieldvalue == "" ) {
echo " ";
} else {
echo $fieldvalue;
}
break;
строка 248, отсчитываем после добавления предыдущего куска кода:
switch($field->name) {
case 'country':
require_once(CLASSPATH.'ps_country.php');
$country = new ps_country();
$dbc = $country->get_country_by_code($dbt->f($field->name));
if( $dbc !== false ) echo $dbc->f('country_name');
break;
default:
$fieldvalue = $dbt->f($field->name);
if ( is_null($fieldvalue) OR $fieldvalue == "" ) {
echo " ";
} else {
echo $fieldvalue;
}
break;
заменить на:
switch($field->name) {
case 'country':
require_once(CLASSPATH.'ps_country.php');
$country = new ps_country();
$dbc = $country->get_country_by_code($dbt->f($field->name));
if( $dbc !== false ) echo $dbc->f('country_name');
$country_id=$dbc->f('country_id');
break;
case 'state':
require_once(CLASSPATH.'ps_country.php');
$state = new ps_country();
$dbs = $state->get_state_by_code($dbt->f($field->name), $country_id);
if( $dbs !== false ) echo $dbs->f('state_name');
break;
default:
$fieldvalue = $dbt->f($field->name);
if ( is_null($fieldvalue) OR $fieldvalue == "" ) {
echo " ";
} else {
echo $fieldvalue;
}
break;
для изменения в информации о заказе в учетной записи пользователя правим файл
/pages/accaunt.order_details.tpl.php (в шаблонах)
строка 105:
switch($field->name) {
case 'country':
require_once(CLASSPATH.'ps_country.php');
$country = new ps_country();
$dbc = $country->get_country_by_code($dbbt->f($field->name));
if( $dbc !== false ) echo $dbc->f('country_name');
break;
default:
echo $dbbt->f($field->name);
break;
заменить на:
switch($field->name) {
case 'country':
require_once(CLASSPATH.'ps_country.php');
$country = new ps_country();
$dbc = $country->get_country_by_code($dbbt->f($field->name));
if( $dbc !== false ) echo $dbc->f('country_name');
$country_id=$dbc->f('country_id');
break;
case 'state':
require_once(CLASSPATH.'ps_country.php');
$state = new ps_country();
$dbs = $state->get_state_by_code($dbbt->f($field->name), $country_id);
if( $dbs !== false ) echo $dbs->f('state_name');
break;
default:
echo $dbbt->f($field->name);
break;
строка 148:
switch($field->name) {
case 'country':
require_once(CLASSPATH.'ps_country.php');
$country = new ps_country();
$dbc = $country->get_country_by_code($dbst->f($field->name));
if( $dbc !== false ) echo $dbc->f('country_name');
break;
default:
echo $dbst->f($field->name);
break;
заменить на:
switch($field->name) {
case 'country':
require_once(CLASSPATH.'ps_country.php');
$country = new ps_country();
$dbc = $country->get_country_by_code($dbst->f($field->name));
if( $dbc !== false ) echo $dbc->f('country_name');
$country_id=$dbc->f('country_id');
break;
case 'state':
require_once(CLASSPATH.'ps_country.php');
$state = new ps_country();
$dbs = $state->get_state_by_code($dbbt->f($field->name), $country_id);
if( $dbs !== false ) echo $dbs->f('state_name');
break;
default:
echo $dbst->f($field->name);
break;
Для изменения адреса доставки, при оформлении заказа правим файл
/checkout/customer_info.tpl.php (в шаблонах)
строка 55:
$db->p("state_2_code");
echo " ";
$db->p("zip");
заменить на
$db->p("state_name");
echo ", ";
$db->p("zip");
Вроде бы всё! Надеюсь, очень, сильно!