Smart IP и определение города

Аватар пользователя leha373 leha373 30 декабря 2020 в 21:49

Привет Всем! Кто нибудь пользовался модулем Smart IP? Как мне сделать блок,чтобы выводился город?
Как реализовать?Создать блок и пыхой написать. Что писать. не пойму. Спасибо

Комментарии

Аватар пользователя adano adano 31 декабря 2020 в 9:58

Что писать. не пойму.

Получаешь данные о регионе и строишь свою логику вывода.
В API модуля, обычно всегда есть примеры.

А вообще модуль плохой под РФ/СНГ и под наших операторов связи.

Аватар пользователя leha373 leha373 3 января в 19:41

Разбираю модуль Smart IP. Могу вывести код страны

   $location = \Drupal::service('smart_ip.smart_ip_location');
    $locat = $location->get('countryCode');

А как вывести город не могу понять. Прошу помощи. Подскажите.Спасибо

Аватар пользователя leha373 leha373 8 января в 21:48

Есть еще необходимость фильтровать контент в Views. Пока сделал так:
Написал Views Field Handler Plugin, создал поле в Views.

<?php

namespace Drupal\dummy\Plugin\views\field;

use Drupal\Core\Form\FormStateInterface;
use Drupal\views\Plugin\views\field\FieldPluginBase;
use Drupal\views\ResultRow;

/**
 * @ingroup views_field_handlers
 *
 * @ViewsField("dummy_created_relative")
 */

class DummyCreatedRelative extends FieldPluginBase {

  /**
   * {@inheritdoc}
   */

  public function query() {
    // We don't need to modify query for this particular example.
  }

 
  /**
   * {@inheritdoc}
   */

  public function render(ResultRow $values) {
   $location = \Drupal::service('smart_ip.smart_ip_location');
    $locat = $location->get('city');

    return [
      '#markup' => $locat,
    ];
 

  }

}

Потом с помощью модуля Views Conditional написал условие.
В типе материалов поле город у меня ссылка на термин таксономии.
Вроде все работает, но чего то мне не очень нравится решение.
Есть ли какие нибудь еще решения, фильтровать контент в зависимости от города который определился по ip адресу?