【问题标题】:Tridion 2011 GUI Extension, how to include css file?Tridion 2011 GUI 扩展,如何包含 css 文件?
【发布时间】:2012-05-09 16:21:35
【问题描述】:

我一直在构建一个仅限 JavaScript 和 CSS 的 GUI 扩展。

我在这里按照 Albert 帖子中的说明进行操作: http://albertromkes.com/2012/01/30/tridion-gui-extensions-how-to-load-a-javascript-without-showing-a-gui-element/

JavaScript 加载正常,但我无法包含 CSS,是我遗漏了什么吗?

这是我的配置文件的近似值:

<?xml version="1.0" ?> 
<Configuration xmlns="http://www.sdltridion.com/2009/GUI/Configuration/Merge"
      xmlns:cfg="http://www.sdltridion.com/2009/GUI/Configuration"
      xmlns:ext="http://www.sdltridion.com/2009/GUI/extensions"
      xmlns:cmenu="http://www.sdltridion.com/2009/GUI/extensions/ContextMenu">
  <resources cache="true">
    <cfg:filters/>
    <cfg:groups>
      <cfg:group name="Rob.Prototype.Extensions"
       merger="Tridion.Web.UI.Core.Configuration.Resources.CommandGroupProcessor" 
       merge="always">
        <cfg:domainmodel name="Rob.Prototype.Extensions.Domain">
          <cfg:fileset>
            <cfg:file type="script">/Scripts/script1.js</cfg:file>
            <cfg:file type="script">/Scripts/script2.js</cfg:file>
            <cfg:file type="style">/CSS/styles.css</cfg:file>
          </cfg:fileset>
          <cfg:services/>
        </cfg:domainmodel>
      </cfg:group>
    </cfg:groups>
  </resources>
  <definitionfiles/>
  <extensions>
    <ext:editorextensions/>
    <ext:dataextenders/>
  </extensions>
  <commands/>
  <contextmenus/>
  <localization/>
  <settings>
    <defaultpage>/Views/Default.aspx</defaultpage>
    <navigatorurl>/Views/Default.aspx</navigatorurl>
    <editurls/>
    <listdefinitions/>
    <itemicons/>
    <theme>
      <path>/CSS/</path>
    </theme>
    <customconfiguration/>
  </settings>
</Configuration>

【问题讨论】:

  • 嘿 Rob,我看到你接受了我的回答。这是否意味着将您的 CSS 放在一个单独的(非域模型)组中确实是一个问题?如果是这样的话,我会更新我的答案,说得更明确一点,因为其他人可能也会遇到这个问题。

标签: tridion


【解决方案1】:

域模型应该只包含非可视的东西,所以 Tridion 只处理非可视的文件类型。您不应将 CSS 文件包含在 domainmodel 中,而应将它们放在任何 domainmodel 之外的单独 fileset 中。

这要求您有一个使用您的 CSS 所在组的 GUI 元素。如果您不打算添加任何 GUI 元素,您可以添加一个虚拟功能区按钮以链接到 CSS。

【讨论】:

  • Puf,我不能 100% 说实话。我遵循博客文章的引导,因为我的扩展并没有真正直接扩展命令或编辑器。我正在寻找 Tridion 页面上的特定元素并基于该元素触发一些 Javascript。也许我可以在另一个地方扩展。
  • 我 80% 确信 CSS 文件不会作为 domainmodel 元素的一部分进行处理。您需要设置一个包含 CSS 的常规文件集,然后创建从某个 UI 扩展到该组的依赖项。
  • 我可以创建一个虚拟功能区按钮来强制插入 CSS 吗?
【解决方案2】:

我不知道 Rob 的答案,但来自 @poeticGeek 的以下博客文章可能会对您有所帮助。

Setting up a Tridion 2011 GUI extension in 8 steps

【讨论】:

    【解决方案3】:

    这可能对你有帮助

    How does the Tridion GUI Extensions CommandSet map to js methods?

    同样适用于 CSS 和 JS。

    如果这不起作用,您是否尝试增加存储在 C:\Program Files (x86)\Tridion\web\WebUI\WebRoot\Configuration 中的 System.config 中的修改属性

    【讨论】:

      【解决方案4】:

      这是我在发布对话框视图中编写的扩展中的配置,它“注入”了 javascript,也许值得试一试,看看它是否还包含任何 css:

      <?xml version="1.0"?>
      <Configuration xmlns="http://www.sdltridion.com/2009/GUI/Configuration/Merge" xmlns:cfg="http://www.sdltridion.com/2009/GUI/Configuration" xmlns:ext="http://www.sdltridion.com/2009/GUI/extensions" xmlns:cmenu="http://www.sdltridion.com/2009/GUI/extensions/ContextMenu">
        <resources cache="true">
          <cfg:extensiongroups>
            <cfg:extensiongroup name="Company.Extensions.Group">
              <cfg:extension target="Tridion.Web.UI.Editors.CME.Views.Popups.Publish">
                <cfg:insertafter>Company.Extensions.Resources</cfg:insertafter>
              </cfg:extension>
            </cfg:extensiongroup>
          </cfg:extensiongroups>
          <cfg:groups>
            <cfg:group name="Company.Extensions.Resources">
              <cfg:fileset>
                <cfg:file type="script">/js/SelectRollbackFailure.js</cfg:file>
                <cfg:file type="script">/js/NoPublishItemWarning.js</cfg:file>          
              </cfg:fileset>
            </cfg:group>
          </cfg:groups>
          </resources>
          <definitionfiles/>
        <extensions>
          <ext:dataextenders/>
          <ext:editorextensions />
        </extensions> 
          <commands />
          <contextmenus/>
        <localization></localization>
          <settings>
              <defaultpage />
              <navigatorurl />
              <editurls/>
              <listdefinitions/>
              <itemicons/>
          <theme>
            <path></path>
            <resourcegroup />
          </theme>     
          <resourceextensions>
            <resourceextension>Company.Extensions.Group</resourceextension>
          </resourceextensions>
          <customconfiguration></customconfiguration>
        </settings> 
      </Configuration>
      

      您需要更改这部分:

      <cfg:extension target="Tridion.Web.UI.Editors.CME.Views.Popups.Publish">
      

      到您希望包含项目的位置。如果不完全正确,或者您需要解释,请告诉我。

      p.s 我也怀疑可以去掉一些空节点:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-01
        • 2012-04-16
        • 1970-01-01
        • 2013-01-20
        • 1970-01-01
        • 1970-01-01
        • 2013-02-04
        • 2011-03-24
        相关资源
        最近更新 更多