X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=vendor%2Fdrupal%2Fconsole%2Fsrc%2FCommand%2FGenerate%2FPluginFieldTypeCommand.php;fp=vendor%2Fdrupal%2Fconsole%2Fsrc%2FCommand%2FGenerate%2FPluginFieldTypeCommand.php;h=d60c4bcb5513d9b847c4ab8512c7f4a03f7735a7;hp=0000000000000000000000000000000000000000;hb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae;hpb=57c063afa3f66b07c4bbddc2d6129a96d90f0aad diff --git a/vendor/drupal/console/src/Command/Generate/PluginFieldTypeCommand.php b/vendor/drupal/console/src/Command/Generate/PluginFieldTypeCommand.php new file mode 100644 index 000000000..d60c4bcb5 --- /dev/null +++ b/vendor/drupal/console/src/Command/Generate/PluginFieldTypeCommand.php @@ -0,0 +1,218 @@ +extensionManager = $extensionManager; + $this->generator = $generator; + $this->stringConverter = $stringConverter; + $this->chainQueue = $chainQueue; + parent::__construct(); + } + + protected function configure() + { + $this + ->setName('generate:plugin:fieldtype') + ->setDescription($this->trans('commands.generate.plugin.fieldtype.description')) + ->setHelp($this->trans('commands.generate.plugin.fieldtype.help')) + ->addOption('module', '', InputOption::VALUE_REQUIRED, $this->trans('commands.common.options.module')) + ->addOption( + 'class', + '', + InputOption::VALUE_REQUIRED, + $this->trans('commands.generate.plugin.fieldtype.options.class') + ) + ->addOption( + 'label', + '', + InputOption::VALUE_OPTIONAL, + $this->trans('commands.generate.plugin.fieldtype.options.label') + ) + ->addOption( + 'plugin-id', + '', + InputOption::VALUE_OPTIONAL, + $this->trans('commands.generate.plugin.fieldtype.options.plugin-id') + ) + ->addOption( + 'description', + '', + InputOption::VALUE_OPTIONAL, + $this->trans('commands.generate.plugin.fieldtype.options.description') + ) + ->addOption( + 'default-widget', + '', + InputOption::VALUE_OPTIONAL, + $this->trans('commands.generate.plugin.fieldtype.options.default-widget') + ) + ->addOption( + 'default-formatter', + '', + InputOption::VALUE_OPTIONAL, + $this->trans('commands.generate.plugin.fieldtype.options.default-formatter') + ); + } + + /** + * {@inheritdoc} + */ + protected function execute(InputInterface $input, OutputInterface $output) + { + $io = new DrupalStyle($input, $output); + + // @see use Drupal\Console\Command\Shared\ConfirmationTrait::confirmGeneration + if (!$this->confirmGeneration($io)) { + return; + } + + $module = $input->getOption('module'); + $class_name = $input->getOption('class'); + $label = $input->getOption('label'); + $plugin_id = $input->getOption('plugin-id'); + $description = $input->getOption('description'); + $default_widget = $input->getOption('default-widget'); + $default_formatter = $input->getOption('default-formatter'); + + $this->generator + ->generate($module, $class_name, $label, $plugin_id, $description, $default_widget, $default_formatter); + + $this->chainQueue->addCommand('cache:rebuild', ['cache' => 'discovery'], false); + } + + protected function interact(InputInterface $input, OutputInterface $output) + { + $io = new DrupalStyle($input, $output); + + // --module option + $module = $input->getOption('module'); + if (!$module) { + // @see Drupal\Console\Command\Shared\ModuleTrait::moduleQuestion + $module = $this->moduleQuestion($io); + $input->setOption('module', $module); + } + + // --class option + $class_name = $input->getOption('class'); + if (!$class_name) { + $class_name = $io->ask( + $this->trans('commands.generate.plugin.fieldtype.questions.class'), + 'ExampleFieldType' + ); + $input->setOption('class', $class_name); + } + + // --label option + $label = $input->getOption('label'); + if (!$label) { + $label = $io->ask( + $this->trans('commands.generate.plugin.fieldtype.questions.label'), + $this->stringConverter->camelCaseToHuman($class_name) + ); + $input->setOption('label', $label); + } + + // --plugin-id option + $plugin_id = $input->getOption('plugin-id'); + if (!$plugin_id) { + $plugin_id = $io->ask( + $this->trans('commands.generate.plugin.fieldtype.questions.plugin-id'), + $this->stringConverter->camelCaseToUnderscore($class_name) + ); + $input->setOption('plugin-id', $plugin_id); + } + + // --description option + $description = $input->getOption('description'); + if (!$description) { + $description = $io->ask( + $this->trans('commands.generate.plugin.fieldtype.questions.description'), + 'My Field Type' + ); + $input->setOption('description', $description); + } + + // --default-widget option + $default_widget = $input->getOption('default-widget'); + if (!$default_widget) { + $default_widget = $io->askEmpty( + $this->trans('commands.generate.plugin.fieldtype.questions.default-widget') + ); + $input->setOption('default-widget', $default_widget); + } + + // --default-formatter option + $default_formatter = $input->getOption('default-formatter'); + if (!$default_formatter) { + $default_formatter = $io->askEmpty( + $this->trans('commands.generate.plugin.fieldtype.questions.default-formatter') + ); + $input->setOption('default-formatter', $default_formatter); + } + } +}