Text.php in Feeds 8.3
File
src/Feeds/Target/Text.php
View source
<?php
namespace Drupal\feeds\Feeds\Target;
use Drupal\Core\Field\FieldDefinitionInterface;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
use Drupal\Core\Session\AccountInterface;
use Drupal\feeds\FieldTargetDefinition;
use Drupal\feeds\Plugin\Type\Target\ConfigurableTargetInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
class Text extends StringTarget implements ConfigurableTargetInterface, ContainerFactoryPluginInterface {
protected $user;
public function __construct(array $configuration, $plugin_id, array $plugin_definition, AccountInterface $user) {
$this->user = $user;
parent::__construct($configuration, $plugin_id, $plugin_definition);
}
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
return new static($configuration, $plugin_id, $plugin_definition, $container
->get('current_user'));
}
protected static function prepareTarget(FieldDefinitionInterface $field_definition) {
$definition = FieldTargetDefinition::createFromFieldDefinition($field_definition)
->addProperty('value');
if ($field_definition
->getType() === 'text_with_summary') {
$definition
->addProperty('summary');
}
return $definition;
}
protected function prepareValue($delta, array &$values) {
parent::prepareValue($delta, $values);
$values['format'] = $this->configuration['format'];
}
protected function getFilterFormats(AccountInterface $account) {
return filter_formats($account);
}
public function defaultConfiguration() {
return parent::defaultConfiguration() + [
'format' => 'plain_text',
];
}
public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
$form = parent::buildConfigurationForm($form, $form_state);
$options = [];
foreach ($this
->getFilterFormats($this->user) as $id => $format) {
$options[$id] = $format
->label();
}
$form['format'] = [
'#type' => 'select',
'#title' => $this
->t('Filter format'),
'#options' => $options,
'#default_value' => $this->configuration['format'],
];
return $form;
}
public function getSummary() {
$summary = parent::getSummary();
$formats = \Drupal::entityTypeManager()
->getStorage('filter_format')
->loadByProperties([
'status' => '1',
'format' => $this->configuration['format'],
]);
if ($formats) {
$format = reset($formats);
$summary[] = $this
->t('Format: %format', [
'%format' => $format
->label(),
]);
}
return $summary;
}
}
Classes
Name |
Description |
Text |
Defines a text field mapper. |