Вызов выглядит так:
1490542
<а href="#block-views-cities-block" data-toggle="modal" data-target="#block-views-cities-block" class="colorbox-inline">
<img src="#" alt="city"> [ [ !getGEOInfo? &type=`city` ] ]
[ [ !+gl.real.country.id:select=`122=Алматы&36=Минск`:else=` [ [ !+gl.real.region.id:select=`524925=Москва&536199=Санкт-Петербург&826294=Владимир&553899=Калуга&501165=Ростов-на-Дону&1496745=Новосибирск&578853=Уфа&703883=Крым`:else=`Москва` ] ] ` ] ]
</а>
Сниппет:
<?php
$regionId = $modx->getPlaceholder('gl.real.region.id');
$regionName = $modx->getPlaceholder('gl.real.region.name_ru');
$arrCity = array(
524894 => 'Москва',
524925 => 'Москва',
536203 => 'Санкт-Петербург',
826294 => 'Владимир',
1490542 => 'Екатеринбург',
553899 => 'Калуга',
1496745 => 'Новосибирск',
578853 => 'Уфа',
501165 => 'Ростов-на-Дону',
542415 => 'Краснодар',
487839 => 'Ставрополь',
472039 => 'Воронеж',
479119 => 'Ульяновск',
484048 => 'Казань',
499068 => 'Самара',
36 => 'Минск',
122 => 'Алматы',
703883 => 'Крым',
2027748 => 'Благовещенск',
2026639 => 'Биробиджан',
2013162 => 'Якутск',
2022890 => 'Хабаровск',
2021851 => 'Комсомольск-на-Амуре',
2121529 => 'Южно-Сахалинск',
2125072 => 'Петропавловск-Камчатский',
2123627 => 'Магадан',
2013348 => 'Владивосток',
2019528 => 'Находка',
2014006 => 'Уссурийск',
1488754 => 'Тюмень',
1490624 => 'Сургут',
524304 => 'Мурманск',
581043 => 'Архангельск',
545854 => 'Сыктывкар',
567293 => 'Махачкала'
);
$arrPhones = array(
524894 => '+7 (495) 128-11-33',
524925 => '+7 (495) 128-11-33',
536203 => '+7 (812) 603-70-74',
826294 => '+7 (4922) 49-45-95 ',
1490542 => '+7 (343) 302-08-19',
553899 => '+7 (4842) 27-86-65',
1496745 => '+7 (383) 235-97-97',
578853 => '+7 (347) 225-75-28',
501165 => '+7 (863) 333-52-96',
542415 => '+7 (861) 212-10-51',
487839 => '+7 (865) 257-76-79',
472039 => '+7 (473) 212-26-68',
479119 => '+7 (8422) 31-51-67',
484048 => '+7 (843) 207-09-57',
499068 => '+7 (846) 219-26-86',
36 => '+375(44) 794-19-17',
122 => '+7 (727) 350-61-00',
703883 => '+7 (800) 350-08-74',
2027748 => '+7 (383) 235-97-97',
2026639 => '+7 (383) 235-97-97',
2013162 => '+7 (383) 235-97-97',
2022890 => '+7 (383) 235-97-97',
2021851 => '+7 (383) 235-97-97',
2121529 => '+7 (383) 235-97-97',
2125072 => '+7 (383) 235-97-97',
2123627 => '+7 (383) 235-97-97',
2013348 => '+7 (383) 235-97-97',
2019528 => '+7 (383) 235-97-97',
2014006 => '+7 (383) 235-97-97',
1488754 => '+7 (3452) 39-65-53',
1490624 => '+7 (3452) 39-65-53',
524304 => '+7 (812) 603-70-74',
581043 => '+7 (812) 603-70-74',
545854 => '+7 (812) 603-70-74',
567293 => '+7 (863) 333-52-96'
);
$arrPrice = array(
524894 => 1,
524925 => 1,
536203 => 1,
826294 => 1,
1490542 => 1.05,
553899 => 1,
1496745 => 1.15,
578853 => 1.05,
501165 => 1.05,
542415 => 1.05,
487839 => 1.05,
472039 => 1,
479119 => 1.05,
484048 => 1.05,
499068 => 1.05,
36 => 1,
122 => 1.1,
703883 => 1.1,
2027748 => 1.32,
2026639 => 1.32,
2013162 => 1.32,
2022890 => 1.37,
2021851 => 1.37,
2121529 => 1.37,
2125072 => 1.37,
2123627 => 1.37,
2013348 => 1.37,
2019528 => 1.37,
2014006 => 1.37,
1488754 => 1.1,
1490624 => 1.15,
524304 => 1.1,
581043 => 1.1,
545854 => 1.1,
567293 => 1.15
);
$arrSesCity = array(
1 => array('Москва', '+7 (495) 128-11-33', 26, 1),
2 => array('Санкт-Петербург', '+7 (812) 603-70-74', 84, 1),
3 => array('Владимир', '+7 (4922) 49-45-95 ', 85, 1),
4 => array('Екатеринбург', '+7 (343) 302-08-19', 86, 1.05),
5 => array('Калуга', '+7 (4842) 27-86-65', 87, 1),
6 => array('Новосибирск', '+7 (383) 235-97-97', 93, 1.15),
7 => array('Уфа', '+7 (347) 225-75-28', 96, 1.05),
8 => array('Ростов-на-Дону', '+7 (863) 333-52-96', 94, 1.05),
9 => array('Краснодар', '+7 (861) 212-10-51', 694, 1.05),
10 => array('Ставрополь', '+7 (865) 257-76-79', 694, 1.05),
11 => array('Воронеж', '+7 (473) 212-26-68', 681, 1),
12 => array('Ульяновск', '+7 (8422) 31-51-67', 616, 1.05),
13 => array('Казань', '+7 (843) 207-09-57', 615, 1.05),
14 => array('Самара', '+7 (846) 219-26-86', 691, 1.05),
15 => array('Минск', '+375(44) 794-19-17', 92, 1),
16 => array('Алматы', '+7 (727) 350-61-00', 95, 1.1),
17 => array('Крым', '+7 (800) 350-08-74', 1002, 1.1),
18 => array('Благовещенск', '+7 (383) 235-97-97', 999, 1.32),
19 => array('Биробиджан', '+7 (383) 235-97-97', 999, 1.32),
20 => array('Якутск', '+7 (383) 235-97-97', 999, 1.32),
21 => array('Хабаровск', '+7 (383) 235-97-97', 999, 1.37),
22 => array('Комсомольск-на-Амуре', '+7 (383) 235-97-97', 999, 1.37),
23 => array('Южно-Сахалинск', '+7 (383) 235-97-97', 999, 1.37),
24 => array('Петропавловск-Камчатский', '+7 (383) 235-97-97', 999, 1.37),
25 => array('Магадан', '+7 (383) 235-97-97', 999, 1.37),
26 => array('Владивосток', '+7 (383) 235-97-97', 999, 1.37),
27 => array('Находка', '+7 (383) 235-97-97', 999, 1.37),
28 => array('Уссурийск', '+7 (383) 235-97-97', 999, 1.37),
29 => array('Тюмень', '+7 (3452) 39-65-53', 999, 1.1),
30 => array('Сургут', '+7 (3452) 39-65-53', 999, 1.15),
31 => array('Мурманск', '+7 (812) 603-70-74', 999, 1.1),
32 => array('Архангельск', '+7 (812) 603-70-74', 999, 1.1),
33 => array('Сыктывкар', '+7 (812) 603-70-74', 999, 1.1),
34 => array('Махачкала', '+7 (863) 333-52-96', 999, 1.15)
);
if(!empty($_SESSION['select_city'])){
$city = $arrSesCity[$_SESSION['select_city'[0];
} else if($arrCity[$regionId]){
$city = $arrCity[$regionId];
} else {
$city = 'Москва';
}
if(!empty($_SESSION['select_city'])){
$price = $arrSesCity[$_SESSION['select_city'[3];
} else if($arrPrice[$regionId]){
$price = $arrPrice[$regionId];
} else {
$price = 1;
}
if(!empty($_SESSION['select_city'])){
$phone = $arrSesCity[$_SESSION['select_city'[1];
} else if($arrPhones[$regionId]){
$phone = $arrPhones[$regionId];
} else {
$phone = '+7 (495) 128-11-33';
}
if($type == 'city') {
echo $city;
} else if($type == 'phone') {
echo $phone;
}
else if($type == 'check2') {
if (!($_SESSION['select_city_first_modal'])) {
echo 1;
$_SESSION['select_city_first_modal']=1;
}
}
else if($type =='check') {
if (!($_SESSION['select_city'])) {
switch ($city) {
case 'Москва':
$_SESSION['select_city']=1;
break;
case 'Санкт-Петербург':
$_SESSION['select_city']=2;
break;
case 'Владимир':
$_SESSION['select_city']=3;
break;
case 'Екатеринбург':
$_SESSION['select_city']=4;
break;
case 'Калуга':
$_SESSION['select_city']=5;
break;
case 'Новосибирск':
$_SESSION['select_city']=6;
break;
case 'Уфа':
$_SESSION['select_city']=7;
break;
case 'Ростов-на-Дону':
$_SESSION['select_city']=8;
break;
case 'Краснодар':
$_SESSION['select_city']=9;
break;
case 'Ставрополь':
$_SESSION['select_city']=10;
break;
case 'Воронеж':
$_SESSION['select_city']=11;
break;
case 'Ульяновск':
$_SESSION['select_city']=12;
break;
case 'Казань':
$_SESSION['select_city']=13;
break;
case 'Самара':
$_SESSION['select_city']=14;
break;
case 'Минск':
$_SESSION['select_city']=15;
break;
case 'Алматы':
$_SESSION['select_city']=16;
break;
case 'Крым':
$_SESSION['select_city']=17;
break;
case 'Благовещенск':
$_SESSION['select_city']=18;
break;
case 'Биробиджан':
$_SESSION['select_city']=19;
break;
case 'Якутск':
$_SESSION['select_city']=20;
break;
case 'Хабаровск':
$_SESSION['select_city']=21;
break;
case 'Комсомольск-на-Амуре':
$_SESSION['select_city']=22;
break;
case 'Южно-Сахалинск':
$_SESSION['select_city']=23;
break;
case 'Петропавловск-Камчатский':
$_SESSION['select_city']=24;
break;
case 'Магадан':
$_SESSION['select_city']=25;
break;
case 'Владивосток':
$_SESSION['select_city']=26;
break;
case 'Находка':
$_SESSION['select_city']=27;
break;
case 'Уссурийск':
$_SESSION['select_city']=28;
break;
case 'Тюмень':
$_SESSION['select_city']=29;
break;
case 'Сургут':
$_SESSION['select_city']=30;
break;
case 'Мурманск':
$_SESSION['select_city']=31;
break;
case 'Архангельск':
$_SESSION['select_city']=32;
break;
case 'Сыктывкар':
$_SESSION['select_city']=33;
break;
case 'Махачкала':
$_SESSION['select_city']=34;
break;
}
}
}
else if($type == 'test') {
echo $regionId.' '.$regionName;
}
else if($type == 'price') {
echo $price;
} else if($type == 'phoneF') {
$f = preg_replace ("/[^0-9+]/","",$phone);
echo $f;
} else if($type == 'id') {
if(!empty($_SESSION['select_city']) && !empty($arrSesCity[$_SESSION['select_city'[2])){
echo ($arrSesCity[$_SESSION['select_city'[2]);
} else {
echo '26';
}
}
JS обработчик:
setCity = function (id) {
var city_name = $('#block-views-cities-block').find('.act-select-city[data-id=' + id + ']').attr('data-city-name');
localStorage.setItem('city_id', id);
$.cookie('city_id', id, { expires: 120 });
localStorage.setItem('city_name', city_name);
localStorage.setItem('city_phone', city_phone);
setPhoneToHtml();
deferReload();
window.location.reload();
};
Александр Щербаков 07.04.2021 13:26 #