You are here

function csc_city_data_install in Country, State and City Fields 8

Implements hook_install().

File

csc_city_data/csc_city_data.install, line 13
Here we are importing city data from csv.

Code

function csc_city_data_install() {
  $module_handler = \Drupal::service('module_handler');
  $module_path = $module_handler
    ->getModule('csc_city_data')
    ->getPath();

  // Importando os dados dos paises.
  $array = $fields = [];
  $i = 0;
  $handle = @fopen($module_path . '/cities.csv', "r");
  if ($handle) {
    while (($row = fgetcsv($handle, 4096)) !== FALSE) {
      if (empty($fields)) {
        $fields = $row;
        continue;
      }
      foreach ($row as $k => $value) {
        $array[$i][$fields[$k]] = $value;
      }
      $i++;
    }
    if (!feof($handle)) {
      echo "Error: unexpected fgets() fail\n";
    }
    fclose($handle);
  }

  // Criando um registro na entidade country para cada pais importado.
  if (is_array($array) && count($array) > 0) {
    foreach ($array as $city) {
      $new_city = CityList::create([
        'id' => $city['id'],
        'name' => $city['name'],
        'state_id' => $city['state_id'],
      ]);
      $new_city
        ->save();
    }
  }
}