如何在Pimcore中自定义区域块的图标
How to customise the icon of an areablock in Pimcore
我工作的公司使用 Pimcore 6 制作网站。
在管理面板中编辑页面时,您可以将 areablocks
添加到您的内容中。
当您单击加号时,您可以添加一个新的 areablock
,我注意到 areablocks
的名称旁边有一个随机图标。
我认为这是因为创建它们的人懒得创建或添加正确的。
在 Pimcore 网站上查看官方 DEMO 之后。我注意到他们的 areablocks
也有随机图标。
我想知道是否可以自定义这些?
在做了一些 research 之后,似乎可以通过将 icon.png
添加到您的区域块的文件夹中来实现。
这就是我尝试过的。但随机图标仍在显示。我的自定义图标被忽略了。
有人知道我做错了什么吗?
将图标粘贴到视图中没有帮助(或者是一些错误信息)。当你注册一块砖并检查AbstractTemplateAreabrick
的方法时,你会注意到它有一些class getIcon()
。如果您想设置自定义图标,这是您必须重写的方法。
AreabrickInterface
定义了这样的方法:
/**
* Icon as absolute path, e.g. /bundles/websitedemo/img/areas/foo/icon.png
*
* @return string|null
*/
public function getIcon();
需要绝对图像 URL。在我的例子中,我只是用 base64 .svgs 来做 - 这是一个工作示例:
class Accordion extends AbstractAreabrick
{
/**
* {@inheritdoc}
*/
public function getName()
{
return $this->translator->trans('Accordion');
}
/**
* {@inheritdoc}
*/
public function getDescription()
{
return $this->translator->trans('for collapsed contents');
}
public function getIcon() {
return "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjwhRE9DVFlQRSBzdmcgIFBVQkxJQyAnLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4nICAnaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkJz48c3ZnIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMyIDMyIiBoZWlnaHQ9IjMycHgiIGlkPSJMYXllcl8xIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAzMiAzMiIgd2lkdGg9IjMycHgiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxnIGlkPSJQaWN0dXJlIj48cGF0aCBkPSJNMjguNzEzLDIuNDIySDMuMjg3Yy0wLjU3LDAtMS4wMzcsMC40NjgtMS4wMzcsMS4wMzh2MjUuMDc5YzAsMC41NywwLjQ2NywxLjAzOCwxLjAzNywxLjAzOGgyNS40MjYgICBjMC41NywwLDEuMDM3LTAuNDY4LDEuMDM3LTEuMDM4VjMuNDZDMjkuNzUsMi44OSwyOS4yODMsMi40MjIsMjguNzEzLDIuNDIyeiBNMjYuODIyLDIyLjk3MUg0Ljg3NVY1LjIyMWgyMS45NDdWMjIuOTcxeiIgZmlsbD0iIzUxNTE1MSIvPjxjaXJjbGUgY3g9IjkuMTA0IiBjeT0iOS43NSIgZmlsbD0iIzUxNTE1MSIgcj0iMy4wNDgiLz48cGF0aCBkPSJNMjAuMDAyLDExLjMwMWMtMC41MzYtMC45Ni0xLjQ1My0wLjk4My0yLjAzNy0wLjA1bC0yLjg3MSw0LjU4N2MtMC41ODQsMC45MzMtMS43NDcsMS4yMjktMi41ODUsMC42NTggICBjLTAuODM5LTAuNTcxLTIuMTA2LTAuMzUyLTIuODE4LDAuNDg2bC0yLjg2LDMuMzcxYy0wLjcxMiwwLjg0LTAuMzk0LDEuNTI1LDAuNzA2LDEuNTI1aDE2LjM3OGMxLjEsMCwxLjU2MS0wLjc4NSwxLjAyNC0xLjc0NiAgIEwyMC4wMDIsMTEuMzAxeiIgZmlsbD0iIzUxNTE1MSIvPjwvZz48L3N2Zz4=";
}
}
我工作的公司使用 Pimcore 6 制作网站。
在管理面板中编辑页面时,您可以将 areablocks
添加到您的内容中。
当您单击加号时,您可以添加一个新的 areablock
,我注意到 areablocks
的名称旁边有一个随机图标。
我认为这是因为创建它们的人懒得创建或添加正确的。
在 Pimcore 网站上查看官方 DEMO 之后。我注意到他们的 areablocks
也有随机图标。
我想知道是否可以自定义这些?
在做了一些 research 之后,似乎可以通过将 icon.png
添加到您的区域块的文件夹中来实现。
这就是我尝试过的。但随机图标仍在显示。我的自定义图标被忽略了。 有人知道我做错了什么吗?
将图标粘贴到视图中没有帮助(或者是一些错误信息)。当你注册一块砖并检查AbstractTemplateAreabrick
的方法时,你会注意到它有一些class getIcon()
。如果您想设置自定义图标,这是您必须重写的方法。
AreabrickInterface
定义了这样的方法:
/**
* Icon as absolute path, e.g. /bundles/websitedemo/img/areas/foo/icon.png
*
* @return string|null
*/
public function getIcon();
需要绝对图像 URL。在我的例子中,我只是用 base64 .svgs 来做 - 这是一个工作示例:
class Accordion extends AbstractAreabrick
{
/**
* {@inheritdoc}
*/
public function getName()
{
return $this->translator->trans('Accordion');
}
/**
* {@inheritdoc}
*/
public function getDescription()
{
return $this->translator->trans('for collapsed contents');
}
public function getIcon() {
return "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjwhRE9DVFlQRSBzdmcgIFBVQkxJQyAnLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4nICAnaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkJz48c3ZnIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMyIDMyIiBoZWlnaHQ9IjMycHgiIGlkPSJMYXllcl8xIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAzMiAzMiIgd2lkdGg9IjMycHgiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxnIGlkPSJQaWN0dXJlIj48cGF0aCBkPSJNMjguNzEzLDIuNDIySDMuMjg3Yy0wLjU3LDAtMS4wMzcsMC40NjgtMS4wMzcsMS4wMzh2MjUuMDc5YzAsMC41NywwLjQ2NywxLjAzOCwxLjAzNywxLjAzOGgyNS40MjYgICBjMC41NywwLDEuMDM3LTAuNDY4LDEuMDM3LTEuMDM4VjMuNDZDMjkuNzUsMi44OSwyOS4yODMsMi40MjIsMjguNzEzLDIuNDIyeiBNMjYuODIyLDIyLjk3MUg0Ljg3NVY1LjIyMWgyMS45NDdWMjIuOTcxeiIgZmlsbD0iIzUxNTE1MSIvPjxjaXJjbGUgY3g9IjkuMTA0IiBjeT0iOS43NSIgZmlsbD0iIzUxNTE1MSIgcj0iMy4wNDgiLz48cGF0aCBkPSJNMjAuMDAyLDExLjMwMWMtMC41MzYtMC45Ni0xLjQ1My0wLjk4My0yLjAzNy0wLjA1bC0yLjg3MSw0LjU4N2MtMC41ODQsMC45MzMtMS43NDcsMS4yMjktMi41ODUsMC42NTggICBjLTAuODM5LTAuNTcxLTIuMTA2LTAuMzUyLTIuODE4LDAuNDg2bC0yLjg2LDMuMzcxYy0wLjcxMiwwLjg0LTAuMzk0LDEuNTI1LDAuNzA2LDEuNTI1aDE2LjM3OGMxLjEsMCwxLjU2MS0wLjc4NSwxLjAyNC0xLjc0NiAgIEwyMC4wMDIsMTEuMzAxeiIgZmlsbD0iIzUxNTE1MSIvPjwvZz48L3N2Zz4=";
}
}