Please forgive me for sneaking this post about Knowledge Center into a Tridion blog. With a background in Tridion and Alchemy plugin development, I felt this topic to be interesting and relevant to the general area of GUI extensions. Moreover, with the rollout of the Unified Delivery Platform, developers are likely going to see more and more overlap between the two CMSs.
Extending the GUI:
First, I focus on a small part of the standard Knowledge Center GUI, in order to figure out how it is created. Looking at the ribbon toolbar, for instance, I can search for a specific term like “Move Object” in all files under C:\InfoShare to quickly learn that the ribbon GUI is defined in file C:\InfoShare\Web\Author\ASP\XSL\FolderButtonbar.xml. Following the examples there, I can add a new ribbon button like this:
<INPUT type="button" NAME="Shortcut" onClick="LinkToDJ()" VALUE="Custom Button" CLASS="button" ICON="UIFramework/dj32x32.png" SHOWTEXT="Y"/>
window.open("http://localhost:49312/", '_blank', 'location=yes,height=570,width=520,scrollbars=yes,status=yes');
And I can create and add the new icon referenced above to the folder C:\InfoShare\Web\Author\ASP\UIFramework.
Next I create a default ASP.NET MVC Web Application (which runs at http://localhost:49312/ in this case). Finally, I refresh the browser to see the new button. Now when I click it, I see my MVC web app. From here, I can customize this web app to use the Content Manager API to interact with the Knowledge Center CMS or to use some external API to interact with another system.