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;
|
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
|
* Assign the base class
|
||||||
*
|
*
|
||||||
|
@ -5,6 +5,7 @@ namespace SilverStripe\ORM\Tests;
|
|||||||
use SilverStripe\ORM\FieldType\DBClassName;
|
use SilverStripe\ORM\FieldType\DBClassName;
|
||||||
use SilverStripe\ORM\DataObject;
|
use SilverStripe\ORM\DataObject;
|
||||||
use SilverStripe\Dev\SapphireTest;
|
use SilverStripe\Dev\SapphireTest;
|
||||||
|
use SilverStripe\ORM\FieldType\DBField;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @skipUpgrade
|
* @skipUpgrade
|
||||||
@ -119,4 +120,21 @@ class DBClassNameTest extends SapphireTest
|
|||||||
$this->assertEquals(DBClassNameTest\CustomDefault::class, $field7->getBaseClass());
|
$this->assertEquals(DBClassNameTest\CustomDefault::class, $field7->getBaseClass());
|
||||||
$this->assertEquals(DBClassNameTest\CustomDefaultSubclass::class, $field7->getDefault());
|
$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