mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 12:05:37 +00:00
parent
cf321895ba
commit
f863573d1c
@ -109,6 +109,21 @@ class DBClassName extends DBEnum
|
||||
return DataObject::class;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the base name of the current class
|
||||
* Useful as a non-fully qualified CSS Class name in templates.
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public function getShortName()
|
||||
{
|
||||
$value = $this->getValue();
|
||||
if (empty($value) || !ClassInfo::exists($value)) {
|
||||
return null;
|
||||
}
|
||||
return ClassInfo::shortName($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Assign the base class
|
||||
*
|
||||
|
@ -5,6 +5,7 @@ namespace SilverStripe\ORM\Tests;
|
||||
use SilverStripe\ORM\FieldType\DBClassName;
|
||||
use SilverStripe\ORM\DataObject;
|
||||
use SilverStripe\Dev\SapphireTest;
|
||||
use SilverStripe\ORM\FieldType\DBField;
|
||||
|
||||
/**
|
||||
* @skipUpgrade
|
||||
@ -119,4 +120,21 @@ class DBClassNameTest extends SapphireTest
|
||||
$this->assertEquals(DBClassNameTest\CustomDefault::class, $field7->getBaseClass());
|
||||
$this->assertEquals(DBClassNameTest\CustomDefaultSubclass::class, $field7->getDefault());
|
||||
}
|
||||
|
||||
public function testShortName()
|
||||
{
|
||||
$test1 = new DBClassNameTest\TestObject();
|
||||
$test2 = new DBClassNameTest\ObjectSubSubClass();
|
||||
$this->assertEquals('TestObject', $test1->obj('ClassName')->getShortName());
|
||||
$this->assertEquals('ObjectSubSubClass', $test2->obj('ClassName')->getShortName());
|
||||
|
||||
$test3 = DBField::create_field('DBClassName', \stdClass::class);
|
||||
$this->assertEquals('stdClass', $test3->getShortName());
|
||||
|
||||
$test4 = DBField::create_field('DBClassName', null);
|
||||
$this->assertNull($test4->getShortName());
|
||||
|
||||
$test5 = DBField::create_field('DBClassName', 'not a class');
|
||||
$this->assertNull($test5->getShortName());
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user