X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=vendor%2Fdrupal%2Fconsole%2Ftemplates%2Fmodule%2Fsrc%2FPlugin%2FCondition%2Fcondition.php.twig;fp=vendor%2Fdrupal%2Fconsole%2Ftemplates%2Fmodule%2Fsrc%2FPlugin%2FCondition%2Fcondition.php.twig;h=569e56298f7fe0e2725ca21b20726a1316be7644;hb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae;hp=0000000000000000000000000000000000000000;hpb=57c063afa3f66b07c4bbddc2d6129a96d90f0aad;p=yaffs-website 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 index 000000000..569e56298 --- /dev/null +++ b/vendor/drupal/console/templates/module/src/Plugin/Condition/condition.php.twig @@ -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 %}