class GoogleAnalyticsCounterFilter in Google Analytics Counter 8.3
Add filter to show google analytics counter number.
Plugin annotation
@Filter(
id = "google_analytics_counter_filter",
title = @Translation("Google Analytics Counter token"),
description = @Translation("Adds a token with pageview counts. Use <code>[gac]</code> or <code>[gac|all]</code>."),
type = Drupal\filter\Plugin\FilterInterface::TYPE_MARKUP_LANGUAGE,
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\filter\Plugin\FilterBase implements FilterInterface
- class \Drupal\google_analytics_counter\Plugin\Filter\GoogleAnalyticsCounterFilter implements ContainerFactoryPluginInterface
- class \Drupal\filter\Plugin\FilterBase implements FilterInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of GoogleAnalyticsCounterFilter
File
- src/
Plugin/ Filter/ GoogleAnalyticsCounterFilter.php, line 24
Namespace
Drupal\google_analytics_counter\Plugin\FilterView source
class GoogleAnalyticsCounterFilter extends FilterBase implements ContainerFactoryPluginInterface {
/**
* The current path.
*
* @var \Drupal\Core\Path\CurrentPathStack
*/
protected $currentPath;
/**
* An alias manager for looking up the system path and path alias.
*
* @var \Drupal\Core\Path\AliasManagerInterface
*/
protected $aliasManager;
/**
* The state where all the tokens are saved.
*
* @var \Drupal\Core\State\StateInterface
*/
protected $state;
/**
* Drupal\google_analytics_counter\GoogleAnalyticsCounterCommon definition.
*
* @var \Drupal\google_analytics_counter\GoogleAnalyticsCounterAppManagerInterface
*/
protected $appManager;
/**
* Constructs a new SiteMaintenanceModeForm.
*
* @param array $configuration
* A configuration array containing information about the plugin instance.
* @param string $plugin_id
* The plugin ID for the plugin instance.
* @param mixed $plugin_definition
* The plugin implementation definition.
* @param \Drupal\Core\Path\CurrentPathStack $current_path
* The current path.
* @param \Drupal\Core\Path\AliasManagerInterface $alias_manager
* An alias manager for looking up the system path.
* @param \Drupal\Core\State\StateInterface $state
* The state of the drupal site.
* @param \Drupal\google_analytics_counter\GoogleAnalyticsCounterAppManagerInterface $app_manager
* Google Analytics Counter App Manager object.
*/
public function __construct(array $configuration, $plugin_id, $plugin_definition, CurrentPathStack $current_path, AliasManagerInterface $alias_manager, StateInterface $state, GoogleAnalyticsCounterAppManagerInterface $app_manager) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->currentPath = $current_path;
$this->aliasManager = $alias_manager;
$this->state = $state;
$this->appManager = $app_manager;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
return new static($configuration, $plugin_id, $plugin_definition, $container
->get('path.current'), $container
->get('path.alias_manager'), $container
->get('state'), $container
->get('google_analytics_counter.app_manager'));
}
/**
* {@inheritdoc}
*/
public function process($text, $langcode) {
$text = $this
->handleText($text);
return new FilterProcessResult($text);
}
/**
* Finds 'gac' tags and replaces them by actual values.
*
* @param string $text
* String to replace.
*
* @return mixed
* Replaced string.
*/
private function handleText($text) {
$matchlink = [];
$original_match = [];
// This allows more than one pipe sign (|) ...
// does not hurt and leaves room for possible extension.
preg_match_all("/(\\[)gac[^\\]]*(\\])/s", $text, $matches);
foreach ($matches[0] as $match) {
// Keep original value(s).
$original_match[] = $match;
// Display the page views.
// [gac] will detect the current node's count.
//
// [gac|all] displays the totalsForAllResults for the given time period,
// assuming cron has been run. Otherwise will print N/A.
//
// [gac|1234] displays the page views for node/1234. // Currently not working.
//
// [gac|node/1234] displays the page views for node/1234. // Currently not working.
//
// [gac|path/to/page] displays the pages views for path/to/page. // Currently not working.
switch ($match) {
case '[gac]':
$matchlink[] = $this->appManager
->gacDisplayCount($this->currentPath
->getPath());
break;
case '[gac|all]':
$matchlink[] = number_format($this->state
->get('google_analytics_counter.total_pageviews', 'N/A'));
break;
default:
$path = substr($match, strpos($match, "/") + 1);
$path = rtrim($path, ']');
// Make sure the path starts with a slash.
$path = '/' . trim($path, ' /');
$matchlink[] = $this->appManager
->gacDisplayCount($this->aliasManager
->getAliasByPath($path));
break;
}
}
return str_replace($original_match, $matchlink, $text);
}
}
Members
Name![]() |
Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
FilterBase:: |
public | property | The name of the provider that owns this filter. | |
FilterBase:: |
public | property | An associative array containing the configured settings of this filter. | |
FilterBase:: |
public | property | A Boolean indicating whether this filter is enabled. | |
FilterBase:: |
public | property | The weight of this filter compared to others in a filter collection. | |
FilterBase:: |
public | function |
Calculates dependencies for the configured plugin. Overrides DependentPluginInterface:: |
1 |
FilterBase:: |
public | function |
Gets default configuration for this plugin. Overrides ConfigurableInterface:: |
|
FilterBase:: |
public | function |
Gets this plugin's configuration. Overrides ConfigurableInterface:: |
|
FilterBase:: |
public | function |
Returns the administrative description for this filter plugin. Overrides FilterInterface:: |
|
FilterBase:: |
public | function |
Returns HTML allowed by this filter's configuration. Overrides FilterInterface:: |
4 |
FilterBase:: |
public | function |
Returns the administrative label for this filter plugin. Overrides FilterInterface:: |
|
FilterBase:: |
public | function |
Returns the processing type of this filter plugin. Overrides FilterInterface:: |
|
FilterBase:: |
public | function |
Prepares the text for processing. Overrides FilterInterface:: |
|
FilterBase:: |
public | function |
Sets the configuration for this plugin instance. Overrides ConfigurableInterface:: |
1 |
FilterBase:: |
public | function |
Generates a filter's settings form. Overrides FilterInterface:: |
3 |
FilterBase:: |
public | function |
Generates a filter's tip. Overrides FilterInterface:: |
9 |
FilterInterface:: |
constant | HTML tag and attribute restricting filters to prevent XSS attacks. | ||
FilterInterface:: |
constant | Non-HTML markup language filters that generate HTML. | ||
FilterInterface:: |
constant | Irreversible transformation filters. | ||
FilterInterface:: |
constant | Reversible transformation filters. | ||
GoogleAnalyticsCounterFilter:: |
protected | property | An alias manager for looking up the system path and path alias. | |
GoogleAnalyticsCounterFilter:: |
protected | property | Drupal\google_analytics_counter\GoogleAnalyticsCounterCommon definition. | |
GoogleAnalyticsCounterFilter:: |
protected | property | The current path. | |
GoogleAnalyticsCounterFilter:: |
protected | property | The state where all the tokens are saved. | |
GoogleAnalyticsCounterFilter:: |
public static | function |
Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface:: |
|
GoogleAnalyticsCounterFilter:: |
private | function | Finds 'gac' tags and replaces them by actual values. | |
GoogleAnalyticsCounterFilter:: |
public | function |
Performs the filter processing. Overrides FilterInterface:: |
|
GoogleAnalyticsCounterFilter:: |
public | function |
Constructs a new SiteMaintenanceModeForm. Overrides FilterBase:: |
|
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
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. | |
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. |