openlayers-8.x-4.x-dev/src/Plugin/Layer/InlineJS/InlineJS.php
src/Plugin/Layer/InlineJS/InlineJS.php
<?php
namespace Drupal\openlayers\Plugin\Layer\InlineJS;
use Drupal\Core\Form\FormStateInterface;
use Drupal\openlayers\Types\Layer;
/**
* FIX - Insert short comment here.
*
* @OpenlayersPlugin(
* id = "ol_layer_inlinejs",
* label = @Translation("Inline JS"),
* description = @Translation("An inline JS layer."),
* service = "openlayers.Layer:InlineJS",
* library = "openlayers-plugin-layer-inlinejs",
* is_configurable = "true",
* type = "layer"
* )
*/
class InlineJS extends Layer {
/**
* {@inheritdoc}
*/
public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
return $form;
}
/**
* {@inheritdoc}
*/
public function optionsForm(array &$form, array &$form_state) {
$attached = array();
if (module_exists('ace_editor')) {
$attached = array(
'library' => array(
array('ace_editor', 'ace'),
),
'js' => array(
drupal_get_path('module', 'openlayers') . '/js/openlayers.editor.js',
),
);
}
else {
\Drupal::service('messenger')->addMessage(
t('To get syntax highlighting, you should install the module <a href="@url1">ace_editor</a> and its <a href="@url2">library</a>.',
array(
'@url1' => 'http://drupal.org/project/ace_editor',
'@url2' => 'http://ace.c9.io/',
)),
'warning'
);
}
$form['options']['javascript'] = array(
'#type' => 'textarea',
'#title' => t('Javascript'),
'#description' => t('Javascript to evaluate. The available variable is: <em>data</em>. You must create the openlayers variable <em>layer</em>.'),
'#rows' => 15,
'#default_value' => $this->getOption('javascript'),
'#attributes' => array(
'data-editor' => 'javascript',
),
'#attached' => $attached,
);
}
}
