mirror of
https://github.com/silverstripe/silverstripe-cms
synced 2024-10-22 08:05:56 +02:00
Merge pull request #2421 from creative-commoners/pulls/4.4/adding-removing-overlapping-icons
FIX Only add page font icon classes if there's no icon image defined
This commit is contained in:
commit
cd70aecf8d
@ -43,15 +43,26 @@ class CMSPageAddController extends CMSPageEditController
|
|||||||
public function AddForm()
|
public function AddForm()
|
||||||
{
|
{
|
||||||
$pageTypes = array();
|
$pageTypes = array();
|
||||||
|
$defaultIcon = Config::inst()->get(SiteTree::class, 'icon_class');
|
||||||
|
|
||||||
foreach ($this->PageTypes() as $type) {
|
foreach ($this->PageTypes() as $type) {
|
||||||
|
$class = $type->getField('ClassName');
|
||||||
|
$icon = Config::inst()->get($class, 'icon_class') ?: $defaultIcon;
|
||||||
|
|
||||||
|
// If the icon is the SiteTree default and there's some specific icon being provided by `getPageIconURL`
|
||||||
|
// then we don't need to add the icon class. Otherwise the class take precedence.
|
||||||
|
if ($icon === $defaultIcon && !empty(singleton($class)->getPageIconURL())) {
|
||||||
|
$icon = '';
|
||||||
|
}
|
||||||
|
|
||||||
$html = sprintf(
|
$html = sprintf(
|
||||||
'<span class="page-icon %s class-%s"></span><span class="title">%s</span><span class="form__field-description">%s</span>',
|
'<span class="page-icon %s class-%s"></span><span class="title">%s</span><span class="form__field-description">%s</span>',
|
||||||
Config::inst()->get($type->getField('ClassName'), 'icon_class'),
|
$icon,
|
||||||
Convert::raw2htmlid($type->getField('ClassName')),
|
Convert::raw2htmlid($class),
|
||||||
$type->getField('AddAction'),
|
$type->getField('AddAction'),
|
||||||
$type->getField('Description')
|
$type->getField('Description')
|
||||||
);
|
);
|
||||||
$pageTypes[$type->getField('ClassName')] = DBField::create_field('HTMLFragment', $html);
|
$pageTypes[$class] = DBField::create_field('HTMLFragment', $html);
|
||||||
}
|
}
|
||||||
// Ensure generic page type shows on top
|
// Ensure generic page type shows on top
|
||||||
if (isset($pageTypes['Page'])) {
|
if (isset($pageTypes['Page'])) {
|
||||||
|
@ -31,6 +31,9 @@ class LeftAndMainPageIconsExtension extends Extension
|
|||||||
$css = '';
|
$css = '';
|
||||||
$classes = ClassInfo::subclassesFor(SiteTree::class);
|
$classes = ClassInfo::subclassesFor(SiteTree::class);
|
||||||
foreach ($classes as $class) {
|
foreach ($classes as $class) {
|
||||||
|
if (!empty(Config::inst()->get($class, 'icon_class', Config::UNINHERITED))) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
$iconURL = SiteTree::singleton($class)->getPageIconURL();
|
$iconURL = SiteTree::singleton($class)->getPageIconURL();
|
||||||
if ($iconURL) {
|
if ($iconURL) {
|
||||||
$cssClass = Convert::raw2htmlid($class);
|
$cssClass = Convert::raw2htmlid($class);
|
||||||
|
Loading…
Reference in New Issue
Block a user