Jump to content
demvlg

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

Recommended Posts

Какой встроенной функцией в 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":""}

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

Цитата

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

Спасибо

Share this post


Link to post
Share on other sites
$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'];

 

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

 

Share this post


Link to post
Share on other sites
23 часа назад, demvlg сказал:

"country":"RU"

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

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

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

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

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

Share this post


Link to post
Share on other sites
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;

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×