class AmpAnalytics in Analytics 8
Provides AMP analytics.
Plugin annotation
@AnalyticsService(
id = "amp_analytics",
label = @Translation("AMP Analytics"),
multiple = true,
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\analytics\Plugin\ServicePluginBase implements ServicePluginInterface uses PluginDependencyTrait, StringTranslationTrait
- class \Drupal\analytics_amp\Plugin\AnalyticsService\AmpAnalytics
- class \Drupal\analytics\Plugin\ServicePluginBase implements ServicePluginInterface uses PluginDependencyTrait, StringTranslationTrait
Expanded class hierarchy of AmpAnalytics
File
- analytics_amp/
src/ Plugin/ AnalyticsService/ AmpAnalytics.php, line 18
Namespace
Drupal\analytics_amp\Plugin\AnalyticsServiceView source
class AmpAnalytics extends ServicePluginBase {
/**
* {@inheritdoc}
*/
public function defaultConfiguration() {
return [
'type' => NULL,
'config_url' => '',
'config_json' => [],
];
}
/**
* {@inheritdoc}
*/
public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
$form['type'] = [
'#title' => t('Type'),
'#type' => 'select',
'#default_value' => $this->configuration['type'],
'#options' => [
// @todo Add support for all options.
'adobeanalytics' => t('Adobe Analytics'),
'googleanalytics' => t('Google Analytics'),
],
'#required' => TRUE,
];
$form['config_url'] = [
'#title' => t('Remote configuration JSON URL'),
'#type' => 'textfield',
'#default_value' => $this->configuration['config_url'],
'#placeholder' => 'https://example.com/analytics.config.json',
];
$form['config_json'] = [
'#title' => t('Inline configuration JSON'),
'#type' => 'textarea',
'#default_value' => $this->configuration['config_json'],
'#description' => t('See the <a href="https://www.ampproject.org/docs/reference/extended/amp-analytics.html">amp-analytics documentation</a> for example configuration values.'),
'#element_validate' => [
[
get_class($this),
'validateJson',
],
],
];
return $form;
}
/**
* {@inheritdoc}
*/
public function getOutput() {
if (\Drupal::service('router.amp_context')
->isAmpRoute()) {
return $this
->getAmpOutput($this->configuration);
}
}
protected function elementValidateConfigUrl(array &$element, FormStateInterface $form_state) {
$value = $element['#value'];
if ($value == '') {
return;
}
elseif (\Drupal::service('stream_wrapper_manager')
->isValidUri($value)) {
// Allow file URIs like public:://config.json.
return;
}
elseif (!UrlHelper::isExternal($value)) {
$form_state
->setError($element, $this
->t('Not a valid URL.'));
}
}
protected function elementValidateConfigJson(array &$element, FormStateInterface $form_state) {
$value = $element['#value'];
if ($value == '') {
return;
}
elseif (is_string($value)) {
// Otherwise attempt to convert the value to JSON.
$data = json_decode($value, TRUE);
if (json_last_error()) {
$form_state
->setError($element, $this
->t('%name is not valid JSON.', [
'%name' => $element['#title'],
]));
}
elseif ($element['#required'] && empty($data)) {
$form_state
->setError($element, $this
->t('%name is required.', [
'%name' => $element['#title'],
]));
}
else {
// @todo This should attempt to validate the top-level keys.
$form_state
->setValueForElement($element, $data);
}
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
AmpAnalytics:: |
public | function |
Form constructor. Overrides ServicePluginBase:: |
|
AmpAnalytics:: |
public | function |
Gets default configuration for this plugin. Overrides ServicePluginBase:: |
|
AmpAnalytics:: |
protected | function | ||
AmpAnalytics:: |
protected | function | ||
AmpAnalytics:: |
public | function |
Returns the output of the analytics service. Overrides ServicePluginBase:: |
|
DependencyTrait:: |
protected | property | The object's dependencies. | |
DependencyTrait:: |
protected | function | Adds multiple dependencies. | |
DependencyTrait:: |
protected | function | Adds a dependency. | |
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
3 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
PluginDependencyTrait:: |
protected | function | Calculates and adds dependencies of a specific plugin instance. | 1 |
PluginDependencyTrait:: |
protected | function | Calculates and returns dependencies of a specific plugin instance. | |
PluginDependencyTrait:: |
protected | function | Wraps the module handler. | 1 |
PluginDependencyTrait:: |
protected | function | Wraps the theme handler. | 1 |
ServicePluginBase:: |
protected | property | ||
ServicePluginBase:: |
protected | property | The ID of the service config entity using this plugin. | |
ServicePluginBase:: |
public | function |
Calculates dependencies for the configured plugin. Overrides DependentPluginInterface:: |
|
ServicePluginBase:: |
public | function |
Determines if the current service can track the current request. Overrides ServicePluginInterface:: |
|
ServicePluginBase:: |
public | function | Build an <amp-analytics> tag for output on an amp-enabled page request. | |
ServicePluginBase:: |
public | function |
Overrides ServicePluginInterface:: |
|
ServicePluginBase:: |
public | function |
Gets this plugin's configuration. Overrides ConfigurableInterface:: |
|
ServicePluginBase:: |
public | function |
Returns the label of the analytics service. Overrides ServicePluginInterface:: |
|
ServicePluginBase:: |
public | function |
Gets the current service config entity ID that is using this plugin. Overrides ServicePluginInterface:: |
|
ServicePluginBase:: |
public | function | ||
ServicePluginBase:: |
public | function |
Sets the configuration for this plugin instance. Overrides ConfigurableInterface:: |
|
ServicePluginBase:: |
public | function |
Sets the current service config entity ID that is using this plugin. Overrides ServicePluginInterface:: |
|
ServicePluginBase:: |
public | function |
Form submission handler. Overrides PluginFormInterface:: |
|
ServicePluginBase:: |
public | function |
Form validation handler. Overrides PluginFormInterface:: |
|
ServicePluginBase:: |
public static | function | Form element validation callback for a JSON textarea field. | |
ServicePluginBase:: |
public | function |
Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides PluginBase:: |
|
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |