Commit 020c7513 authored by Ken Greenslade's avatar Ken Greenslade
Browse files

Issue #2911611: Update to use latest version of Openlayers JS (4.3.3)

parent 739d7db7
Loading
Loading
Loading
Loading
+72 −70
Original line number Diff line number Diff line
@@ -16,13 +16,13 @@ use Drupal\openlayers\Config;
 * @see system_settings_form()
 */
function openlayers_ui_admin_settings($form, &$form_state) {

  $form['origin'] = array(
    '#type' => 'fieldset',
    '#title' => 'Library loading configuration',
  );

  $library = libraries_detect('openlayers3');

  $current_variant = Config::get('openlayers.variant');
  if (!Openlayers::detectLibrary()) {
    $current_variant = NULL;
@@ -51,6 +51,7 @@ function openlayers_ui_admin_settings($form, &$form_state) {
    '#default_value' => Config::get('openlayers.debug'),
  );

  if (!isset($form_state['input']['op'])) {
    $form['plugin-info'] = array(
      '#type' => 'fieldset',
      '#title' => 'Plugin information',
@@ -141,6 +142,7 @@ function openlayers_ui_admin_settings($form, &$form_state) {
        '#markup' => $table,
      );
    }
  }

  $form['buttons'] = array(
    'submit' => array(
+38 −5
Original line number Diff line number Diff line
@@ -216,8 +216,38 @@ function openlayers_libraries_info() {
  }

  $info = system_get_info('module', 'openlayers');
  $version = $info['version'] ? $info['version'] : '7.x-3.x';
  $module_version = $info['version'] ? $info['version'] : '7.x-3.x';
  $module_path = drupal_get_path('module', 'openlayers');
  $library_path = libraries_get_path('openlayers3');
  $versions = scandir($library_path . '/versions'); 

  $local_variants = [];
  foreach ($versions as $key => $version) {
    $variant_path = $library_path . '/versions/' . $version;
    if (is_dir($variant_path) && substr($version, 0, 1) == 'v') { 
      $local_variants['local:' . substr($version, 1)] = [
        'name' => 'Openlayers ' . $version,
        'files' => array(
          'js' => array(
            'versions/' . $version . '/build/ol.js' => array(
              'type' => 'file',
              'weight' => 6,
              'group' => $js_css_group,
            ),
          ),
          'css' => array(
            'versions/' . $version . '/css/ol.css' => array(
              'type' => 'file',
              'weight' => 4,
              'group' => $js_css_group,
            ),
          ),
        ),
      ];
    }
  }

  ksort($local_variants);

  $libraries['openlayers3_integration'] = array(
    'name' => 'Openlayers 3 Drupal integration files',
@@ -319,16 +349,18 @@ function openlayers_libraries_info() {
        'timeout' => 10,
      ),
    ),
    'variants' => array(),
    'variants' => [],
    'dependencies' => array(
      'openlayers3_integration',
    ),
  );

  if ($version = Openlayers::getLocalLibraryVersion()) {
  if ($local_version = Openlayers::getLocalLibraryVersion()) {
    unset($libraries['openlayers3']['library path']);
    $libraries['openlayers3']['variants']['local:' . $version] = array(
      'name' => 'Openlayers ' . $version,
    $libraries['openlayers3']['variants'] = $local_variants;

    $libraries['openlayers3']['variants']['local:' . $local_version] = array(
      'name' => 'Openlayers ' . $local_version,
      'files' => array(
        'js' => array(
          'build/ol.js' => array(
@@ -346,6 +378,7 @@ function openlayers_libraries_info() {
        ),
      ),
    );

  }

  return $libraries;
+8 −4
Original line number Diff line number Diff line
@@ -250,14 +250,14 @@ class Openlayers {
   */
  public static function getLibraryVersion() {
    $variant = Config::get('openlayers.variant');

//dpm($variant);
    if (strpos($variant, 'local-') !== FALSE) {
      $version = self::getLocalLibraryVersion();
    }
    else {
      $version = Config::get('openlayers.variant', NULL);
    }

//dpm($version);
    return $version;
  }

@@ -269,6 +269,7 @@ class Openlayers {
   */
  public static function getLocalLibraryVersion() {
    $version = FALSE;
//dpm([libraries_get_path('openlayers3')]);
    if ($path = libraries_get_path('openlayers3')) {
      $library = libraries_detect('openlayers3');
      if (!$library) {
@@ -280,11 +281,13 @@ class Openlayers {
        'lines' => 3,
      );
      $library['library path'] = $path;
//dpm($options);
//dpm(libraries_get_version($library, $options));
      if ($version = libraries_get_version($library, $options)) {
        $version = substr($version, 1);
      }
    }

//dpm($version);
    return $version;
  }

@@ -409,11 +412,12 @@ class Openlayers {
    $attached = array();

    if (!self::detectLibrary()) {
      global $base_url;
      $configuration = array(
        'errorMessage' => t('Unable to load the Openlayers JS library variant,
          please <a href="@openlayers_admin">update your settings</a> and select
          a valid variant of the library.',
        array('@openlayers_admin' => '/admin/structure/openlayers')),
        array('@openlayers_admin' => $base_url . '/admin/structure/openlayers')),
      );
      \OpenlayersDrupal::service('openlayers.Types')->createInstance('Error', $configuration)->init();