Version 1
[yaffs-website] / vendor / drupal / console / templates / module / src / Plugin / Condition / condition.php.twig
diff --git a/vendor/drupal/console/templates/module/src/Plugin/Condition/condition.php.twig b/vendor/drupal/console/templates/module/src/Plugin/Condition/condition.php.twig
new file mode 100644 (file)
index 0000000..569e562
--- /dev/null
@@ -0,0 +1,129 @@
+{% extends "base/class.php.twig" %}
+
+{% block file_path %}
+\Drupal\{{ module }}\Plugin\Condition\{{ class_name }}.
+{% endblock %}
+
+{% block namespace_class %}
+namespace Drupal\{{ module }}\Plugin\Condition;
+{% endblock %}
+
+{% block use_class %}
+use Drupal\Core\Condition\ConditionPluginBase;
+use Drupal\Core\Form\FormStateInterface;
+use Drupal\Core\Plugin\Context\ContextDefinition;
+{% endblock %}
+
+{% block class_declaration %}
+/**
+* Provides a '{{ label }}' condition to enable a condition based in module selected status.
+*
+* @Condition(
+*   id = "{{ plugin_id }}",
+*   label = @Translation("{{ label }}"),
+*   context = {
+*     "{{ context_id }}" = @ContextDefinition("{{ context_definition_id }}", required = {{ context_definition_required }} , label = @Translation("{{ context_definition_label }}"))
+*   }
+* )
+*
+*/
+class {{ class_name }} extends ConditionPluginBase {% endblock %}
+{% block class_methods %}
+/**
+* {@inheritdoc}
+*/
+public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition)
+{
+    return new static(
+    $configuration,
+    $plugin_id,
+    $plugin_definition
+    );
+}
+
+/**
+ * Creates a new ExampleCondition instance.
+ *
+ * @param array $configuration
+ *   The plugin configuration, i.e. an array with configuration values keyed
+ *   by configuration option name. The special key 'context' may be used to
+ *   initialize the defined contexts by setting it to an array of context
+ *   values keyed by context names.
+ * @param string $plugin_id
+ *   The plugin_id for the plugin instance.
+ * @param mixed $plugin_definition
+ *   The plugin implementation definition.
+ */
+ public function __construct(array $configuration, $plugin_id, $plugin_definition) {
+    parent::__construct($configuration, $plugin_id, $plugin_definition);
+ }
+
+ /**
+   * {@inheritdoc}
+   */
+ public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
+     // Sort all modules by their names.
+     $modules = system_rebuild_module_data();
+     uasort($modules, 'system_sort_modules_by_info_name');
+
+     $options = [NULL => t('Select a module')];
+     foreach($modules as $module_id => $module) {
+         $options[$module_id] = $module->info['name'];
+     }
+
+     $form['module'] = [
+         '#type' => 'select',
+         '#title' => $this->t('Select a module to validate'),
+         '#default_value' => $this->configuration['module'],
+         '#options' => $options,
+         '#description' => $this->t('Module selected status will be use to evaluate condition.'),
+     ];
+
+     return parent::buildConfigurationForm($form, $form_state);
+ }
+
+/**
+ * {@inheritdoc}
+ */
+ public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
+     $this->configuration['module'] = $form_state->getValue('module');
+     parent::submitConfigurationForm($form, $form_state);
+ }
+
+/**
+ * {@inheritdoc}
+ */
+ public function defaultConfiguration() {
+    return ['module' => ''] + parent::defaultConfiguration();
+ }
+
+/**
+  * Evaluates the condition and returns TRUE or FALSE accordingly.
+  *
+  * @return bool
+  *   TRUE if the condition has been met, FALSE otherwise.
+  */
+  public function evaluate() {
+      if (empty($this->configuration['module']) && !$this->isNegated()) {
+          return TRUE;
+      }
+
+      $module = $this->configuration['module'];
+      $modules = system_rebuild_module_data();
+
+      return $modules[$module]->status;
+  }
+
+/**
+ * Provides a human readable summary of the condition's configuration.
+ */
+ public function summary()
+ {
+     $module = $this->getContextValue('module');
+     $modules = system_rebuild_module_data();
+
+     $status = ($modules[$module]->status)?t('enabled'):t('disabled');
+
+     return t('The module @module is @status.', ['@module' => $module, '@status' => $status]);
+ }
+{% endblock %}