ConfigPagesCommands.php in Config Pages 8.2
Same filename and directory in other branches
Namespace
Drupal\config_pages\CommandsFile
src/Commands/ConfigPagesCommands.phpView source
<?php
namespace Drupal\config_pages\Commands;
use Drupal\config_pages\Entity\ConfigPages;
use Drupal\config_pages\Entity\ConfigPagesType;
use Drush\Commands\DrushCommands;
/**
* A Drush command file.
*
* See these files for an example of injecting Drupal services:
* - http://cgit.drupalcode.org/devel/tree/src/Commands/DevelCommands.php
* - http://cgit.drupalcode.org/devel/tree/drush.services.yml.
*/
class ConfigPagesCommands extends DrushCommands {
/**
* Set a value for the field of Config Pages.
*
* @command config:pages-set-field-value
* @param string $bundle
* The type of config page "/admin/structure/config_pages/types".
* @param string $field_name
* The name of field.
* @param string $value
* The value for the field.
* @param null $context
* ConfigPage context.
* @param array $options
* An associative array of options whose values
* come from cli, aliases, config, etc.
* @option append
* Append to an existing value.
* @usage drush cpsfv bundle field_name value
* Set new value for field_name.
* @usage drush cpsfv bundle field_name value --append
* Append a value to existing string.
* @validate-module-enabled config_pages
* @aliases cpsfv,config-pages-set-field-value
*/
public function pagesSetFieldValue($bundle, $field_name, $value, $context = NULL, array $options = [
'append' => NULL,
]) {
try {
$config_page = config_pages_config($bundle, $context);
if (empty($config_page)) {
$type = ConfigPagesType::load($bundle);
$config_page = ConfigPages::create([
'type' => $bundle,
'label' => $type
->label(),
'context' => $type
->getContextData(),
]);
$config_page
->save();
}
$append = $options['append'];
if (isset($append)) {
$value = $config_page
->get($field_name)
->getString() . $value;
}
$config_page
->set($field_name, str_replace('\\n', PHP_EOL, $value));
$config_page
->save();
$this
->output()
->writeln('Saved new value for ' . $field_name . ' field.');
} catch (\Exception $e) {
$this
->logger()
->error($e
->getMessage());
}
}
/**
* Get a value for the field of Config Pages.
*
* @param string $bundle
* The type of config page "/admin/structure/config_pages/types".
* @param string $field_name
* The name of field.
* @param null $context
* Context.
* @validate-module-enabled config_pages
*
* @command config:pages-get-field-value
* @aliases cpgfv,config-pages-get-field-value
*/
public function pagesGetFieldValue($bundle, $field_name, $context = NULL) {
try {
$config_page = config_pages_config($bundle, $context);
if (!empty($config_page)) {
$this
->output()
->writeln($config_page
->get($field_name)->value);
}
} catch (\Exception $e) {
$this
->logger()
->error($e
->getMessage());
}
}
}
Classes
Name | Description |
---|---|
ConfigPagesCommands | A Drush command file. |