Source of file DataObjectLinkExtension.php
Size: 1,083 Bytes - Last Modified: 2021-12-24T06:47:54+00:00
/var/www/docs.ssmods.com/process/src/src/DataObjectLinkExtension.php
12345678910111213141516171819202122232425262728293031323334353637383940414243 | <?php namespace FLxLabs\DataObjectLink; use SilverStripe\Core\Extension; use SilverStripe\Core\Convert; use SilverStripe\ORM\DataObject; use SilverStripe\Versioned\Versioned; class DataObjectLinkExtension extends Extension { public function updateClientConfig(&$clientConfig) { $clientConfig['form']['editorDataObjectLink'] = [ 'schemaUrl' => $this->getOwner()->Link('methodSchema/Modals/editorDataObjectLink') ]; } public static function link_shortcode_handler($arguments, $content = null, $parser = null) { if (!isset($arguments['id']) || !is_numeric($arguments['id']) || !isset($arguments['clazz'])) { return null; } $class = str_replace('_', '\\', $arguments['clazz']); if ( !($obj = DataObject::get_by_id($class, $arguments['id'])) && !($obj = Versioned::get_latest_version($class, $arguments['id'])) ) { return null; // There were no suitable matches at all. } $link = Convert::raw2att($obj->Link()); if ($content) { return sprintf('<a href="%s">%s</a>', $link, $parser->parse($content)); } else { return $link; } } } |