ExtraFieldPlusDisplayBase.php in Extra Field Settings Provider 8
File
src/Plugin/ExtraFieldPlusDisplayBase.php
View source
<?php
namespace Drupal\extra_field_plus\Plugin;
use Drupal\Core\StringTranslation\StringTranslationTrait;
use Drupal\extra_field\Plugin\ExtraFieldDisplayBase;
abstract class ExtraFieldPlusDisplayBase extends ExtraFieldDisplayBase implements ExtraFieldPlusDisplayInterface {
use StringTranslationTrait;
public function getSettings() {
$field_id = 'extra_field_' . $this
->getPluginId();
$display = $this
->getEntityViewDisplay();
$component = $display
->getComponent($field_id);
$default_settings = (array) $this
->getDefaultFormValues();
if (!empty($component['settings'])) {
$settings = array_merge($default_settings, array_intersect_key($component['settings'], $default_settings));
}
else {
$settings = $default_settings;
}
return $settings;
}
public function getSetting($name) {
$settings = $this
->getSettings();
return isset($settings[$name]) ? $settings[$name] : NULL;
}
protected function settingsForm() {
$elements = [];
return $elements;
}
public function getSettingsForm() {
$default_values = (array) $this
->getDefaultFormValues();
$elements = (array) $this
->settingsForm();
if (!empty($elements)) {
foreach ($elements as $name => &$element) {
$element['#default_value'] = isset($default_values[$name]) ? $default_values[$name] : '';
}
}
return $elements;
}
protected function defaultFormValues() {
return [];
}
public function getDefaultFormValues() {
return $this
->defaultFormValues();
}
}