Как добавить значок в контекстное меню в расширении графического интерфейса Tridion?
Как добавить значок в мой элемент контекстного меню Расширения графического интерфейса пользователя Tridion 2011?
Это в теме или в конфигурации расширения GUI?
Это размер 16px?
3 ответа
Да, значок 16 х 16.
Я всегда делал это с помощью CSS, надеюсь, это объяснение имеет смысл:
1) В файле editor.config вы указываете файл css и другие необходимые вам ресурсы.
<cfg:groups>
<cfg:group name="PowerTools.Resources.Base" merge="always">
<cfg:fileset>
<cfg:file type="style">/PowerTools/Client/Shared/Theme/styles.css</cfg:file>
2) Когда вы настраиваете контекстное меню, у вас есть атрибут ID в ContextMenuItem (показанный ниже как PT_PagePublisher)
<ext:contextmenus>
<ext:add>
<ext:extension name="PowerToolsContextMenu" assignid="PowerToolsContextMenu" insertbefore="cm_refresh">
<ext:menudeclaration externaldefinition="">
<cmenu:ContextMenuItem id="PowerToolsMenuGroup" name="Power Tools">
<cmenu:ContextMenuItem id="PT_PagePublisher" name="Page Publisher" command="PT_PagePublisher"/>
3) В вашем файле CSS у вас будет что-то вроде:
.PT_PagePublisher .image {background-image:url({ThemePath}/Icons/pagepublisher_16.png);}
Посмотрите, как имя класса CSS (PT_PagePublisher) отображается на идентификатор в узле ContextMenuItem.
Надеюсь, это поможет!
Вы используете тему CSS. У меня есть следующее в CSS для расширения в моем изображении разработчика:
.tridion .contextmenu #TweetThis .image
{
background-image:url({ThemePath}/images/icons/twitter-icon16x16.png);
}
Tweet Это мой идентификатор пункта контекстного меню, как определено в конфигурации расширений.
Если вы хотите повторно использовать изображение текущего CME (Content Manager Explorer), вы можете использовать следующее:
#PT_PagePublisher.item .image
{
background-image: url({ThemePath['CME']}/Sprites/cme_5_v6.1.0.55920.0_.png);
background-position: 0px -480px;
height: 16px;
width: 16px;
}
В этом примере показан значок публикации после установки пакета обновления 1 (SP1) 2011 года. Таким образом, вы можете использовать {ThemePath['EditorName']} для доступа к пути темы любого редактора, который фактически настроен.
Также в некоторых случаях я обнаружил, что мои изображения не загружаются ни на панели инструментов ленты, ни в контекстном меню, что, по-видимому, является проблемой авторизации в виртуальном каталоге редакторов в IIS.
Я решил это, добавив файл Web.config в мою корневую директорию Theme, которая позволит всем пользователям получать доступ к файлам тем (css и images).
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
<!-- allow all users access to theme files -->
<authorization>
<allow users="?" />
</authorization>
</system.web>
</configuration>