Source of file DataObjectNavigationExtension.php
Size: 1,047 Bytes - Last Modified: 2021-12-24T07:09:52+00:00
/var/www/docs.ssmods.com/process/src/src/Extensions/DataObjectNavigationExtension.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445 | <?php namespace SilverStripe\Headless\Extensions; use SilverStripe\ORM\ArrayList; use SilverStripe\ORM\DataExtension; use SilverStripe\ORM\DataObject; use SilverStripe\ORM\Hierarchy\Hierarchy; class DataObjectNavigationExtension extends DataExtension { public function getCleanLink(): ?string { if (!$this->owner->hasMethod('Link')) { return null; } $link = $this->owner->Link(); $clean = preg_replace('#^/|/$#', '', $link); return empty($clean) ? '/' : $clean; } /** * @return array|null */ public function getNavigationPath(): ?ArrayList { if (!$this->owner->hasExtension(Hierarchy::class)) { return null; } $crumbs = []; $ancestors = array_reverse($this->owner->getAncestors()->toArray()); /** @var DataObject $ancestor */ foreach ($ancestors as $ancestor) { $crumbs[] = $ancestor; } $crumbs[] = $this->owner; return ArrayList::create($crumbs); } } |