Source of file SiteTreeArchiveExtension.php
Size: 2,404 Bytes - Last Modified: 2021-12-23T10:36:08+00:00
/var/www/docs.ssmods.com/process/src/src/Extensions/SiteTreeArchiveExtension.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | <?php namespace SilverStripe\VersionedAdmin\Extensions; use SilverStripe\CMS\Model\SiteTree; use SilverStripe\Forms\GridField\GridFieldDataColumns; use SilverStripe\ORM\DataExtension; use SilverStripe\ORM\FieldType\DBDatetime; use SilverStripe\Security\Member; use SilverStripe\VersionedAdmin\ArchiveAdmin; use SilverStripe\VersionedAdmin\Interfaces\ArchiveViewProvider; /** * Adds a archive view for Pages */ class SiteTreeArchiveExtension extends DataExtension implements ArchiveViewProvider { /** * @inheritDoc */ public function getArchiveFieldClass() { return SiteTree::class; } /** * @inheritDoc */ public function getArchiveField() { $listField = ArchiveAdmin::createArchiveGridField('Pages', SiteTree::class); $listColumns = $listField->getConfig()->getComponentByType(GridFieldDataColumns::class); $listColumns->setDisplayFields([ 'Title' => SiteTree::singleton()->fieldLabel('Title'), 'i18n_singular_name' => _t('SilverStripe\\VersionedAdmin\\ArchiveAdmin.COLUMN_TYPE', 'Type'), 'allVersions.first.LastEdited' => _t( 'SilverStripe\\VersionedAdmin\\ArchiveAdmin.COLUMN_DATEARCHIVED', 'Date Archived' ), 'ParentID' => _t('SilverStripe\\VersionedAdmin\\ArchiveAdmin.COLUMN_ORIGIN', 'Origin'), 'allVersions.first.Author.Name' => _t( 'SilverStripe\\VersionedAdmin\\ArchiveAdmin.COLUMN_ARCHIVEDBY', 'Archived By' ) ]); $listColumns->setFieldFormatting([ 'ParentID' => function ($val, $item) { if (SiteTree::get_by_id($val)) { $breadcrumbs = SiteTree::get_by_id($val)->getBreadcrumbItems(2); $breadcrumbString = '../'; foreach ($breadcrumbs as $item) { $breadcrumbString = $breadcrumbString . $item->URLSegment . '/'; }; return $breadcrumbString; } }, 'allVersions.first.LastEdited' => function ($val, $item) { return DBDatetime::create_field('Datetime', $val)->Ago(); }, ]); return $listField; } /** * @inheritDoc */ public function isArchiveFieldEnabled() { return true; } } |