One Extension to Rule them All

15 thoughts on “One Extension to Rule them All”

  1. Very nice Yoav!!! Or should I say the “Yoav the white” 🙂 I’ll introduce this stuff in my extensions as soon as I have time…

  2. Hey Yoav, I have the ext manager installed and the tests are correct, but i don’t get an icon in the ribbon (logged in as admin). Any idea which step i’m missing?


    1. Hi John,
      thats quite strange. dont see a reason why it wouldnt show. Make sure that have set up the editor information in the system.config correctly and that the toolbar extension is added in the editor’s /config/extension.config file.

      Then look into the browser’s console. There should be information logged by the extension to five you a notion of whats going on.

      Let me know how it goes.

      1. Thanks Yoav, Checked the config under system.config. Restarted iss, com etc. I have a new error now. The gui hangs before loading the top ribbon. If i remove the node from system.config everything is great.

        Any ideas?

        Sorry to hassle you for support, i just need to get through the initial teething problems of getting an extension up and running.

      2. Hi, sorry to hear you’re having problems getting it to work…
        So what’s the error you’re getting? If u look at the browser console, what kind of information do you see being logged there before the error occurs?

  3. Hey Yoav,

    I get the following errors:


    addJqueryUI() is not a function
    Dashboard_v6.0.0.39607.0_.aspx?mode=js()Dashbo…mode=js (line 485)


    Value should be a function.
    [Break On This Error] Type.registerNamespace(“Tridion.Utils….(a)};var $assert=Tridion.Utils.Assert
    [Break On This Error] (function(a,C){var g=”null”,e=”string”…sertBefore(c[0]);a(c).remove()}})($j)



    1. very strange… I just tried setting up the extension on a 2011 image and it just works for me, no problem… Have you changed the name of the Editor by any chance? Any other modification? What browser are you trying this with?
      You can turn off the minification of the js code sent by the GUI to the browser in the system.config file, you need to set the “enabled” property of the resource\filter to “false”. you do this on the filter that has for=”Script”. That will perhaps make it easier to find where the problem is happening.

  4. Hi Yoav,

    Setting the config value to false broke the gui, but setting to “never” (a guess from the opposite of “always”) and the whole thing works

    Set back to always and it breaks.

    1. Hi John,

      I managed to get the extension to work with the JS code minimized. For some reason when minimized the GUI didnt like the addJqueryXXXX methods I added so I changed it a bit and now it all works. Minimized or not.

      I will hopefully today or tomorrow post a new version of the Extensions Manager with a few more bug fixes and enhancements.

      Thanks for your persistence! 🙂

  5. Great stuff! Congrats on this, it works brilliantly. Feel free to delete the steam of comments between us, perhaps you wouldn’t mind me having your email address for any future pestering!

  6. Hi Yoav,

    I was trying to implement your extension manager on my DEV tridion.

    Firstly it was giving error to load 6.0 tridion dlls, I replaced all of them from 6.1 dlls (Tridion.Web.UI.Core.dll etc.) and also i was looking for configuration folder for system.config file, I copied from Tridion\web\WebUI\WebRoot and my test page works fine now, however /WebUI/Editors/2011Extensions/server/ExtensionsConfigurationManager/services/ExtensionsManagerService.svc does not returns any value also don’t give any error too.

    And now if I try to load my DEV tridion I can see Extension Manager icon over there however now when I click on it I get below error

    Unknown server tag ‘ui:ActiveMessageCenter’.
    System.Web.HttpParseException (0x80004005): Unknown server tag ‘ui:ActiveMessageCenter’. —> System.Web.HttpParseException (0x80004005): Unknown server tag ‘ui:ActiveMessageCenter’. —> System.Web.HttpException (0x80004005): Unknown server tag ‘ui:ActiveMessageCenter’. at System.Web.UI.TagPrefixTagNameToTypeMapper.System.Web.UI.ITagNameToTypeMapper.GetControlType(String tagName, IDictionary attribs) at System.Web.UI.MainTagNameToTypeMapper.GetControlType2(String tagName, IDictionary attribs, Boolean fAllowHtmlTags) at System.Web.UI.MainTagNameToTypeMapper.GetControlType(String tagName, IDictionary attribs, Boolean fAllowHtmlTags) at System.Web.UI.RootBuilder.GetChildControlType(String tagName, IDictionary attribs) at System.Web.UI.ControlBuilder.CreateChildBuilder(String filter, String tagName, IDictionary attribs, TemplateParser parser, ControlBuilder parentBuilder, String id, Int32 line, VirtualPath virtualPath, Type& childType, Boolean defaultProperty) at System.Web.UI.TemplateParser.ProcessBeginTag(Match match, String inputText) at System.Web.UI.TemplateParser.ParseStringInternal(String text, Encoding fileEncoding) at System.Web.UI.TemplateParser.ProcessException(Exception ex) at System.Web.UI.TemplateParser.ParseStringInternal(String text, Encoding fileEncoding) at System.Web.UI.TemplateParser.ParseString(String text, VirtualPath virtualPath, Encoding fileEncoding) at System.Web.UI.TemplateParser.ParseString(String text, VirtualPath virtualPath, Encoding fileEncoding) at System.Web.UI.TemplateParser.ParseFile(String physicalPath, VirtualPath virtualPath) at System.Web.UI.TemplateParser.ParseInternal() at System.Web.UI.TemplateParser.Parse() at System.Web.Compilation.BaseTemplateBuildProvider.get_CodeCompilerType() at System.Web.Compilation.BuildProvider.GetCompilerTypeFromBuildProvider(BuildProvider buildProvider) at System.Web.Compilation.BuildProvidersCompiler.ProcessBuildProviders() at System.Web.Compilation.BuildProvidersCompiler.PerformBuild() at System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) at System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean throwIfNotFound) at System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp) at System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) at System.Web.UI.PageHandlerFactory.GetHandler(HttpContext context, String requestType, String virtualPath, String path) at System.Web.HttpApplication.MaterializeHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&

    1. Hi Manoj,
      sorry youre having difficulties with the extension.
      Im actually no longer working at Tridion or with Tridion for the last year and a half so its been a while since i touched these extensions.
      I dont have a Tridion system available to check it either of course.
      Id recommend posting this question on Stackoverflow,
      Im sure someone will be able to help you with it there.

      Good luck!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s