cms
cms copied to clipboard
Added event to change meta fields of entries
Description
Added an event to change the meta fields
ex: to add postDate and expiryDate to the entries with the handle hero and text.
use yii\base\Event;
use craft\elements\Entry;
use craft\events\DefineEntryMetaFields;
use craft\helpers\Cp;
Event::on(
Entry::class,
Entry::EVENT_DEFINE_META_FIELDS,
function (DefineEntryMetaFields $event) {
if (in_array($event->entry->type->handle, ['hero','text'] )) {
// Post Date
$event->fields[] = Cp::dateTimeFieldHtml([
'status' => $event->entry->getAttributeStatus('postDate'),
'label' => Craft::t('app', 'Post Date'),
'id' => 'postDate',
'name' => 'postDate',
'value' => $event->entry->postDate,
'errors' => $event->entry->getErrors('postDate'),
'disabled' => $event->static,
]);
// Expiry Date
$event->fields[] = Cp::dateTimeFieldHtml([
'status' => $event->entry->getAttributeStatus('expiryDate'),
'label' => Craft::t('app', 'Expiry Date'),
'id' => 'expiryDate',
'name' => 'expiryDate',
'value' => $event->entry->expiryDate,
'errors' => $event->entry->getErrors('expiryDate'),
'disabled' => $event->static,
]);
}
}
);
Related issues
[5.x]: Backend - meta fields postDate and expiryDate not visible for entries without section.