Перейти к содержанию
demvlg

json местоположение

Рекомендуемые сообщения

Какой встроенной функцией в IPS можно вот это

[location] => {"lat":null,"long":null,"addressLines":[null],"city":"\u0412\u043e\u043b\u0433\u043e\u0433\u0440\u0430\u0434","region":"\u0412\u043e\u043b\u0433\u043e\u0433\u0440\u0430\u0434\u0441\u043a\u0430\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u044c","country":"RU","postalCode":""}

превратить в строку типа 

Цитата

Воронеж, Воронежская область, Россия

Спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
$location = json_decode( '{"lat":null,"long":null,"addressLines":[null],"city":"\u0412\u043e\u043b\u0433\u043e\u0433\u0440\u0430\u0434","region":"\u0412\u043e\u043b\u0433\u043e\u0433\u0440\u0430\u0434\u0441\u043a\u0430\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u044c","country":"RU","postalCode":""}', TRUE );
echo $location['city'];

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет никаких "встроенных функций IPS" для этого нет, уважаемый. Есть нативные функции PHP. Внимательно читать то, что вам нужно - моя святая обязанность!

Что вам действительно нужно, так это хотя бы точно знать - чего именно вы хотите. Ну и RTFM, конечно же...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

как правило фреймворки имеют свои "оболочки" нативных функций пхп
или какие-то библиотечки, типа Carbon для времени/даты

может geoip? я могу конечно пройтись по этому объекту и собрать нативными функциями нужную мне конечную адресную строку
но не вдавался я в geoip сильно... может есть что-то geoip_get_address($json), где $json - это мой объект выше?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы не внятно описываете задачу. Что за объект? Где вы хотите получить свою строку, в шаблоне IPS? Тогда решение будет выглядеть примерно так:

{{$location = json_decode( $my_obj->geo['location'], TRUE );}}
<div>{$location['city']}, {$location['region']}, {$location['country']}</div>

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
23 часа назад, demvlg сказал:

"country":"RU"

а надо Россия...
хорошо, есть кастом филд типа адрес
для записи базы данных в отображении доступна переменная $address, которая выглядит в итоге как

23 часа назад, demvlg сказал:

Воронеж, Воронежская область, Россия

но в базе нет слова "Россия".
каким то методомв в фреймворке/нативной геофункцией оно вытягивается
 

я дополняю блок событий календаря
у события можно указать местоположение
но в стандартной верстке нет вывода этого поля
ия хз как его вывести
$event-> ?
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
print_r( \IPS\GeoLocation::buildFromJson('{"lat":null,"long":null,"addressLines":[null],"city":"\u0412\u043e\u043b\u0433\u043e\u0433\u0440\u0430\u0434","region":"\u0412\u043e\u043b\u0433\u043e\u0433\u0440\u0430\u0434\u0441\u043a\u0430\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u044c","country":"RU","postalCode":""}')->toString( ', ' ) );exit;

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В базе всё есть естественно, если у вас в строке "Russian Federation", то ищите это значение в языковом пакете и переводите как вам нужно. Или по ключу "country-RU" ищите.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×