Source of file FluentWorkflowEmbargoExpiryExtension.php
Size: 3,497 Bytes - Last Modified: 2021-12-23T10:57:32+00:00
/var/www/docs.ssmods.com/process/src/src/Extensions/FluentWorkflowEmbargoExpiryExtension.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 | <?php namespace WebbuildersGroup\FluentWorkflow\Extensions; use SilverStripe\Forms\FieldList; use SilverStripe\ORM\FieldType\DBField; use SilverStripe\ORM\FieldType\DBHTMLVarchar; use SilverStripe\Versioned\Versioned; use Symbiote\AdvancedWorkflow\Extensions\WorkflowEmbargoExpiryExtension; class FluentWorkflowEmbargoExpiryExtension extends WorkflowEmbargoExpiryExtension { private static $field_include = [ 'DesiredPublishDate', 'DesiredUnPublishDate', 'PublishOnDate', 'UnPublishOnDate', 'AllowEmbargoedEditing', 'PublishJobID', 'UnPublishJobID', ]; /** * Updates the fields used in the cms * @param FieldList $fields Fields to be extended */ public function updateCMSFields(FieldList $fields) { parent::updateCMSFields($fields); $translatedTooltipTitle = _t(__CLASS__ . ".FLUENT_ICON_TOOLTIP", 'Translatable field'); $tooltip = DBField::create_field('HTMLFragment', "<span class='font-icon-translatable' title='$translatedTooltipTitle'></span>"); //Update the publish date field to have the icon $field = $fields->dataFieldByName('DesiredPublishDate'); if ($field && !$field->hasClass('fluent__localised-field')) { $field ->setTitle(DBField::create_field('HTMLFragment', $tooltip . $field->Title())) ->addExtraClass('fluent__localised-field'); $rightTitle = $field->RightTitle(); if (!empty($rightTitle) && !(is_a($rightTitle, DBField::class))) { $field->setRightTitle(DBField::create_field(DBHTMLVarchar::class, $rightTitle)); } } //Update the unpublish date field to have the icon $field = $fields->dataFieldByName('DesiredUnPublishDate'); if ($field && !$field->hasClass('fluent__localised-field')) { $field ->setTitle(DBField::create_field('HTMLFragment', $tooltip . $field->Title())) ->addExtraClass('fluent__localised-field'); $rightTitle = $field->RightTitle(); if (!empty($rightTitle) && !(is_a($rightTitle, DBField::class))) { $field->setRightTitle(DBField::create_field(DBHTMLVarchar::class, $rightTitle)); } } //Update the publish date field to have the icon $field = $fields->dataFieldByName('PublishOnDate'); if (!$field->hasClass('fluent__localised-field')) { $field ->setTitle(DBField::create_field('HTMLFragment', $tooltip . $field->Title())) ->addExtraClass('fluent__localised-field'); } //Update the unpublish date field to have the icon $field = $fields->dataFieldByName('UnPublishOnDate'); if (!$field->hasClass('fluent__localised-field')) { $field ->setTitle(DBField::create_field('HTMLFragment', $tooltip . $field->Title())) ->addExtraClass('fluent__localised-field'); } } /** * Clears the workflow fields when localizing */ public function onBeforeWrite() { if (Versioned::get_stage() === Versioned::DRAFT && !$this->owner->existsInLocale()) { $this->owner->PublishJobID = 0; $this->owner->UnPublishJobID = 0; } parent::onBeforeWrite(); } } |