Как добавить значок в контекстное меню в рамках расширения графического интерфейса Tridion? - PullRequest
5 голосов
/ 27 февраля 2012

Как добавить значок в элемент контекстного меню Расширения графического интерфейса пользователя Tridion 2011?

Он находится в конфигурации расширения темы или графического интерфейса?

Имеет размер 16 пикселей?

Ответы [ 3 ]

10 голосов
/ 27 февраля 2012

Да, значок 16 x 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.

Надеюсь, это поможет!

2 голосов
/ 27 февраля 2012

Вы используете тему CSS.У меня есть следующее в CSS для расширения в моем образе разработчика:

.tridion .contextmenu #TweetThis .image
{
    background-image:url({ThemePath}/images/icons/twitter-icon16x16.png);
}

Tweet Это мой идентификатор пункта контекстного меню, как определено в конфигурации расширения.

1 голос
/ 16 марта 2012

Если вы хотите повторно использовать изображение текущего 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>
...