Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions src/elements/Entry.php
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
use craft\enums\CmsEdition;
use craft\enums\Color;
use craft\enums\PropagationMethod;
use craft\events\DefineEntryMetaFields;
use craft\events\DefineEntryTypesEvent;
use craft\events\ElementCriteriaEvent;
use craft\fieldlayoutelements\entries\EntryTitleField;
Expand Down Expand Up @@ -117,6 +118,13 @@ class Entry extends Element implements NestedElementInterface, ExpirableElementI
*/
public const EVENT_DEFINE_PARENT_SELECTION_CRITERIA = 'defineParentSelectionCriteria';

/**
* @event DefineEntryMetaFields The event that is triggered when defining the meta fields.
* @see metaFieldsHtml()
* @since 5.8.18
*/
public const EVENT_DEFINE_META_FIELDS = 'defineEntryMetaFields';

/**
* @inheritdoc
*/
Expand Down Expand Up @@ -2567,6 +2575,18 @@ public function metaFieldsHtml(bool $static): string

$fields[] = parent::metaFieldsHtml($static);

// Fire a 'defineEntryMetaFields' event
if ($this->hasEventHandlers(self::EVENT_DEFINE_META_FIELDS)) {
$event = new DefineEntryMetaFields([
'entry' => $this,
'static' => $static,
'fields' => $fields
]);
$this->trigger(self::EVENT_DEFINE_META_FIELDS, $event);

return implode("\n", $event->fields);
}

return implode("\n", $fields);
}

Expand Down
38 changes: 38 additions & 0 deletions src/events/DefineEntryMetaFields.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<?php

/**
* @link https://craftcms.com/
* @copyright Copyright (c) Pixel & Tonic, Inc.
* @license https://craftcms.github.io/license/
*/

namespace craft\events;


use craft\elements\Entry;
use craft\base\Event;

/**
* class DefineEntryMetaFields
*
* @author Pixel & Tonic, Inc. <[email protected]>
* @since 5.8.18
*/

class DefineEntryMetaFields extends Event
{
/**
* @var Entry The current entry
*/
public Entry $entry;

/**
* @var bool Whether the fields should be static (non-interactive)
*/
public bool $static;

/**
* @var array array of all meta fields
*/
public array $fields;
}