You are here

public function SmartIpLocation::getData in Smart IP 8.4

Same name and namespace in other branches
  1. 8.2 src/SmartIpLocation.php \Drupal\smart_ip\SmartIpLocation::getData()
  2. 8.3 src/SmartIpLocation.php \Drupal\smart_ip\SmartIpLocation::getData()

Gets all the Smart IP location data.

Parameters

bool $update: Flag to execute update user's geolocation if it is still empty. Default to TRUE.

Return value

array An array of Smart IP location data.

Overrides SmartIpLocationInterface::getData

2 calls to SmartIpLocation::getData()
SmartIpLocation::get in src/SmartIpLocation.php
Gets an item in Smart IP location data or all the Smart IP location data if supplied no parameter.
SmartIpLocation::__construct in src/SmartIpLocation.php
Constructs Smart IP location.

File

src/SmartIpLocation.php, line 175
Contains \Drupal\smart_ip\SmartIpLocation.

Class

SmartIpLocation
Implements wrapper and utility methods for Smart IP's data location.

Namespace

Drupal\smart_ip

Code

public function getData($update = FALSE) {
  if (empty($this->allData)) {
    if ($update) {
      SmartIp::updateUserLocation();
    }

    // Get current user's stored location from session.
    $data = SmartIp::getSession('smart_ip');
    $user = \Drupal::currentUser();
    if (empty($data['location']) && $user
      ->id() != 0) {

      /** @var \Drupal\user\UserData $userData */
      $userData = \Drupal::service('user.data');

      // Get current user's stored location from user_data
      $data = $userData
        ->get('smart_ip', $user
        ->id(), 'geoip_location');
    }
    if (!empty($data['location'])) {

      // Populate the Smart IP location from current user's data or session.
      $this
        ->setData($data['location']);
    }
  }
  return $this->allData;
}