public function BlazyAdminExtended::fieldableForm in Blazy 8.2
Same name and namespace in other branches
- 8 src/Dejavu/BlazyAdminExtended.php \Drupal\blazy\Dejavu\BlazyAdminExtended::fieldableForm()
Returns re-usable fieldable formatter form elements.
File
- src/
Dejavu/ BlazyAdminExtended.php, line 53
Class
- BlazyAdminExtended
- Provides re-usable admin functions, or form elements.
Namespace
Drupal\blazy\DejavuCode
public function fieldableForm(array &$form, $definition = []) {
if (isset($definition['images'])) {
$form['image'] = $this
->baseForm($definition)['image'];
}
if (isset($definition['thumbnails'])) {
$form['thumbnail'] = [
'#type' => 'select',
'#title' => $this
->t('Thumbnail image'),
'#options' => is_array($definition['thumbnails']) ? $definition['thumbnails'] : [],
'#description' => $this
->t('Leave empty to not use thumbnail pager.'),
];
}
if (isset($definition['overlays'])) {
$form['overlay'] = [
'#type' => 'select',
'#title' => $this
->t('Overlay media'),
'#options' => is_array($definition['overlays']) ? $definition['overlays'] : [],
'#description' => $this
->t('Overlay is displayed over the main stage.'),
];
}
if (isset($definition['titles'])) {
// Ensures to not override Views content/ entity title, just formatters.
if (!empty($definition['images']) && empty($definition['_views'])) {
$definition['titles']['title'] = $this
->t('Image Title');
}
$form['title'] = [
'#type' => 'select',
'#title' => $this
->t('Title'),
'#options' => is_array($definition['titles']) ? $definition['titles'] : [],
'#description' => $this
->t('If provided, it will be wrapped with H2. Also supported the basic non-field Image title'),
];
}
if (isset($definition['links'])) {
$form['link'] = [
'#type' => 'select',
'#title' => $this
->t('Link'),
'#options' => is_array($definition['links']) ? $definition['links'] : [],
'#description' => $this
->t('Link to content: Read more, View Case Study, etc.'),
];
}
if (isset($definition['classes'])) {
$form['class'] = [
'#type' => 'select',
'#title' => $this
->t('Item class'),
'#options' => is_array($definition['classes']) ? $definition['classes'] : [],
'#description' => $this
->t('If provided, individual item will have this class, e.g.: to have different background with transparent images. Be sure its formatter is Key or Label. Accepted field types: list text, string (e.g.: node title), term/entity reference label.'),
'#weight' => 6,
];
}
if (!empty($definition['id'])) {
$form['id'] = [
'#type' => 'textfield',
'#title' => $this
->t('@namespace ID', [
'@namespace' => $definition['namespace'],
]),
'#size' => 40,
'#maxlength' => 255,
'#field_prefix' => '#',
'#enforced' => TRUE,
'#description' => $this
->t("<b>(Deprecated)</b>. Do not use this! Leave it empty, this option will be removed at future versions. It brings trouble than useful. <br>Old description: Manually define the container ID. <em>This ID is used for the cache identifier, so be sure it is unique</em>. Leave empty to have a guaranteed unique ID managed by the module, or if you see similar views while should be different."),
'#weight' => 94,
];
}
if (isset($form['caption'])) {
$form['caption']['#description'] = $this
->t('Enable any of the following fields as captions. These fields are treated and wrapped as captions.');
}
if (empty($definition['id'])) {
if (isset($form['caption'])) {
$form['caption']['#description'] .= ' ' . $this
->t('Be sure to make them visible at their relevant Manage display.');
}
}
else {
if (isset($form['overlay'])) {
$form['overlay']['#description'] .= ' ' . $this
->t('Be sure to CHECK "Use field template" under its formatter if using Slick field formatter.');
}
}
}