rocketship_core-8.x-2.0-alpha11/src/Plugin/Field/FieldType/ImageDescriptionTitle.php
src/Plugin/Field/FieldType/ImageDescriptionTitle.php
<?php
namespace Drupal\rocketship_core\Plugin\Field\FieldType;
use Drupal\Core\Field\FieldStorageDefinitionInterface;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\TypedData\DataDefinition;
use Drupal\image\Plugin\Field\FieldType\ImageItem;
/**
* Plugin implementation of the 'ImageDescriptionTitle' field type.
*
* @FieldType(
* id = "imagedescriptiontitle",
* label = @Translation("Image description title"),
* description = @Translation("Image description title field contains an image, title and text (also supports icon list or numbers)"),
* default_widget = "imageDescriptionTitle_default_widget",
* default_formatter = "imageDescriptionTitle_default_formatter",
* column_groups = {
* "file" = {
* "label" = @Translation("File"),
* "columns" = {
* "target_id", "width", "height"
* },
* "require_all_groups_for_translation" = TRUE
* },
* "alt" = {
* "label" = @Translation("Alt"),
* "translatable" = TRUE
* },
* "title" = {
* "label" = @Translation("Title"),
* "translatable" = TRUE
* },
* "idttitle" = {
* "label" = @Translation("Title"),
* "translatable" = TRUE
* },
* "idttextarea" = {
* "label" = @Translation("Textarea"),
* "translatable" = TRUE
* },
* "idttextareaformat" = {
* "label" = @Translation("Textarea format"),
* "translatable" = TRUE
* },
* },
* list_class = "\Drupal\file\Plugin\Field\FieldType\FileFieldItemList",
* constraints = {"ReferenceAccess" = {}, "FileValidation" = {}}
* )
*/
class ImageDescriptionTitle extends ImageItem {
/**
* The entity manager.
*
* @var \Drupal\Core\Entity\EntityManagerInterface
*/
protected $entityManager;
/**
* {@inheritdoc}
*/
public static function defaultFieldSettings() {
$settings = parent::defaultFieldSettings();
unset($settings['description_field']);
return $settings;
}
/**
* {@inheritdoc}
*/
public static function schema(FieldStorageDefinitionInterface $field_definition) {
$schema = parent::schema($field_definition);
$schema['columns']['idttitle'] = [
'description' => "The title as a header for the output",
'type' => 'varchar',
'length' => 1024,
];
$schema['columns']['idttextarea'] = [
'description' => "The textarea for the output",
'type' => 'text',
'size' => 'big',
];
$schema['columns']['idttextareaformat'] = [
'description' => "The textarea for the output",
'type' => 'varchar_ascii',
'length' => 255,
];
return $schema;
}
/**
* {@inheritdoc}
*/
public static function propertyDefinitions(FieldStorageDefinitionInterface $field_definition) {
$properties = parent::propertyDefinitions($field_definition);
$properties['idttitle'] = DataDefinition::create('string')
->setLabel(t('Title'))
->setDescription(t("Title"))
->setRequired(TRUE);
$properties['idttextarea'] = DataDefinition::create('string')
->setLabel(t('Textarea'))
->setRequired(TRUE);
$properties['idttextareaformat'] = DataDefinition::create('filter_format')
->setLabel(t('Text format'));
return $properties;
}
/**
* {@inheritdoc}
*/
public function storageSettingsForm(array &$form, FormStateInterface $form_state, $has_data) {
$element = parent::storageSettingsForm($form, $form_state, $has_data);
return $element;
}
/**
* {@inheritdoc}
*/
public function fieldSettingsForm(array $form, FormStateInterface $form_state) {
$element = parent::fieldSettingsForm($form, $form_state);
return $element;
}
}
