Project

General

Profile

« Previous | Next » 

Revision ba706bf0

Added by Andreas Kohlbecker about 11 years ago

solving #3254 (geoserver hardcoded in openlayers_map.js)

View differences:

7.x/modules/cdm_dataportal/settings.php
41 41
  "cdm_dataportal_media_maxRows" => 1,
42 42
);
43 43

  
44
define('EDIT_MAPSERVER_V1_URI', 'http://edit.africamuseum.be/edit_wp5/v1'); // fall back server is http://edit.br.fgov.be
45
define('EDIT_MAPSERVER_V11_URI', 'http://edit.africamuseum.be/edit_wp5/v1.1'); // fall back server is http://edit.br.fgov.be
46
define('DISTRIBUTION_TEXTDATA_DISPLAY_ON_TOP', 'distribution_textdata_on_top');
44
/* ---- MAP SETTING CONSTANTS ---- */
45
/**
46
 * @var array of URIs eg. http://edit.africamuseum.be"
47
 *   An options array
48
 */
49
define('EDIT_MAPSERVER_URI', serialize(
50
    array(
51
      'http://edit.africamuseum.be'=>'Primary (http://edit.africamuseum.be)',
52
      'http://edit.br.fgov.be'=>'Secondary (http://edit.br.fgov.be)',
53
    )
54
  )
55
);
56
define('EDIT_MAPSERVER_PATH', '/edit_wp5');
57
/**
58
 * @var array of versions eg. "v1.2"
59
 *   An options array
60
 */
61
define('EDIT_MAPSERVER_VERSION', serialize(
62
    array(
63
      'v1' => 'v1' ,
64
      'v1.1' => 'v1.1',
65
      'v1.2_dev' => 'v1.2_dev'
66
    )
67
  )
68
);
69
define('EDIT_MAPSERVER_URI_DEFAULT', 'http://edit.africamuseum.be');
70
define('EDIT_MAPSERVER_VERSION_DEFAULT', 'v1.1');
47 71

  
48 72
// --- Taxon profile settings --- /
49 73
define('LAYOUT_SETTING_PREFIX', 'layout_');
......
55 79
    'glue' => ' ',
56 80
  )));
57 81

  
82
define('DISTRIBUTION_TEXTDATA_DISPLAY_ON_TOP', 'distribution_textdata_on_top');
83

  
84

  
58 85
/**
59 86
 * @todo document this function
60 87
 */
......
1305 1332
  /*
1306 1333
  GEO SERVER
1307 1334
  */
1308
  $form['geoserver'] = array(
1335
  $form['edit_map_server'] = array(
1309 1336
    '#type' => 'fieldset',
1310
    '#title' => t('Geo Server Settings'),
1337
    '#tree' => true,
1338
    '#title' => t('EDIT map service'),
1311 1339
    '#collapsible' => TRUE,
1312 1340
    '#collapsed' => TRUE,
1313 1341
    '#description' => t('Configuration and selection of your geo server.
1314 1342
      The Geo Server is responsible for generating the maps.'),
1315 1343
  );
1316 1344

  
1317
  $form['geoserver']['edit_map_server'] = array(
1345
  $current_geoserver_settings = get_edit_map_service_settings();
1346

  
1347
  $form['edit_map_server']['base_uri'] = array(
1318 1348
    '#type' => 'select',
1319
    '#title' => t('Geoservice access point URL') . ':',
1320
    '#default_value' => variable_get('edit_map_server', EDIT_MAPSERVER_V11_URI),
1321
    '#options' => array(
1322
      EDIT_MAPSERVER_V1_URI => 'EDIT Map Server v1',
1323
      EDIT_MAPSERVER_V11_URI => 'EDIT Map Server v1.1',
1324
      'ALTERNATIVE' => '-- Alternative URL --',
1325
    ),
1326
    '#description' => t('Select the Map Server you want the data portal to
1327
      connect. If you want to introduce a custom address just select the
1328
      Alternative URL value and fill the field Geoservice Access Point
1329
      - Alternative URL with the custom ip address.'),
1349
    '#title' => t('EDIT map service') . ':',
1350
    '#default_value' => $current_geoserver_settings['base_uri'],
1351
    '#options' => unserialize(EDIT_MAPSERVER_URI),
1352
    '#description' => t('Select the EDIT map server you want to use within your data portal.'),
1330 1353
  );
1331

  
1332
  $form['geoserver']['edit_map_server_alternative'] = array(
1333
    '#type' => 'textfield',
1334
    '#title' => t('Geoservice access point - alternative URL') . ':',
1335
    '#default_value' => variable_get('edit_map_server_alternative', ''),
1336
    '#description' => t('Alternative URL of a EDIT Map Service to be used by
1337
      this portal. You must choose the option <i>-- Alternative URL --</i> in
1338
      the chooser above to enable this url.'),
1354
  $form['edit_map_server']['version'] = array(
1355
      '#type' => 'select',
1356
      '#title' => t('Version') . ':',
1357
      '#default_value' => $current_geoserver_settings['version'],
1358
      '#options' => unserialize(EDIT_MAPSERVER_VERSION),
1359
      '#description' => t('The version of the EDIT map services'),
1339 1360
  );
1340 1361

  
1341 1362
  /*
......
1420 1441
      and can only be used with the EDIT map service version 1.1 or above.'),
1421 1442
  );
1422 1443

  
1423
  $edit_mapserver_version = getEDITMapServiceVersionNumber();
1444
  $edit_mapserver_version = get_edit_map_service_version_number();
1424 1445
  if ($edit_mapserver_version < 1.1) {
1425 1446
    $form['map_image']['#description'] = '<div class="messages warning">' . t("The selected EDIT map service version has to small version number: $edit_mapserver_version") . '</div>'
1426 1447
      . $form['map_image']['#description'];
......
1707 1728
}
1708 1729

  
1709 1730
/**
1710
 * @todo document this function.
1731
 * Returns an associative array of the currently chosen settings for the EDIT map service or the defaults as
1732
 * specified in EDIT_MAPSERVER_URI_DEFAULT and EDIT_MAPSERVER_VERSION_DEFAULT:
1733
 *  - base_uri: the protocol and host part , e.g.: http://edit.africamuseum.be
1734
 *  - version: the version, e.g.: v1.1
1735
 *
1736
 * @return array
1737
 *    An associative array of the currently chosen settings for the EDIT map service or the defaults.
1711 1738
 */
1712
function getEDITMapServiceURI() {
1713

  
1714
  if (variable_get('edit_map_server', FALSE) == 'ALTERNATIVE') {
1715
    return (variable_get('edit_map_server_alternative', FALSE));
1716
  }
1717
  elseif (variable_get('edit_map_server', FALSE)) {
1718
    return variable_get('edit_map_server', FALSE);
1719
  }
1720
  else {
1721
    return EDIT_MAPSERVER_V1_URI;
1739
function get_edit_map_service_settings() {
1740

  
1741
  $settings = variable_get('edit_map_server', array(
1742
      'base_uri' => EDIT_MAPSERVER_URI_DEFAULT,
1743
      'version' => EDIT_MAPSERVER_VERSION_DEFAULT
1744
      )
1745
  );
1746
  // replace old non tree like settings by default
1747
  // TODO to be removed after release 3.1.5
1748
  if(!is_array($settings)){
1749
    variable_del('edit_map_server');
1750
    return get_edit_map_service_settings();
1722 1751
  }
1723 1752

  
1753
  return $settings;
1724 1754
}
1725 1755

  
1726 1756
/**
1727
 * @todo document this function.
1757
 * Returns the full edit map service URI e.g.: http://edit.africamuseum.be/edit_wp5/v1.1
1758
 *
1759
 * @return string
1760
 *   The full edit map service URI e.g.: http://edit.africamuseum.be/edit_wp5/v1.1
1761
 */
1762
function get_edit_map_service_full_uri() {
1763
  $settings = get_edit_map_service_settings();
1764
  return $settings['base_uri'] . EDIT_MAPSERVER_PATH .  '/' . $settings['version'];
1765
}
1766

  
1767

  
1768
/**
1769
 * Returns the version number of the currently selected edit mapserver as a float
1728 1770
 *
1729 1771
 * @return float
1730 1772
 *   The version number of the currently selected edit mapserver as a float.
1731 1773
 *   Returns 0 on error.
1732 1774
 */
1733
function getEDITMapServiceVersionNumber() {
1775
function get_edit_map_service_version_number() {
1734 1776

  
1735
  $pattern = '/v([\d\.]+)$/';
1777
  $pattern = '/v([\d\.]+).*$/';
1736 1778

  
1737
  $url = getEDITMapServiceURI();
1738
  preg_match($pattern, $url, $matches, PREG_OFFSET_CAPTURE, 3);
1779
  $settings = get_edit_map_service_settings();
1780
  preg_match($pattern, $settings['version'], $matches, PREG_OFFSET_CAPTURE);
1739 1781
  if (isset($matches[1])) {
1740 1782
    // Convert string to float.
1741 1783
    $version = 1 + $matches[1][0] - 1;
......
1743 1785
  }
1744 1786
  else {
1745 1787
    // Report error.
1746
    drupal_set_message(t(" Invalid version number in EDIT map service URL: '!edit_mapserver'", array('!edit_mapserver' => variable_get('edit_map_server', EDIT_MAPSERVER_V1_URI))), 'warning');
1788
    drupal_set_message(t(" Invalid EDIT map service version number: '!version'",
1789
        array(
1790
          '!version' => $settings['version'],
1791
          'warning')
1792
        )
1793
      );
1747 1794
    return 0;
1748 1795
  }
1749 1796
}
1750 1797

  
1751 1798
/**
1752
 * returns the array of selected items in a options array
1799
 * Returns the array of selected items in a options array
1753 1800
 *
1754 1801
 * @param array $options
1755 1802
 *   An options array as generated by a form element like checkoxes, select ...,

Also available in: Unified diff