Hey all,
Below is a fun code trick from William Phelps. Better bookmark this, because it's a good one!
One request that comes up from time to time is a need to remove the checkout link (or
other functional links) from the document information page.
In the first image in the following screen print, there is a “check out” link. However, the
desire is to remove the link as shown in the second image.
Typically, most implementers say that a customization is necessary. However, a
relatively simple profile rule can be created to accomplish the same thing.
If the result set name that holds the link generation data is known, it’s easy to loop
over the result set and pick off the entry. Adding “IsPageDebug=1” to the URL of the
document information page, and looking at the data in the final page binder section is
an easy way to get this information.
This article assumes that the reader has a basic working knowledge of how to create
content profiles in Content Server, and a decent understanding of Idoc Script. For this
article, a global rule is being created, but it could easily be adapted to only fire for
specific profiles.
• Create a global rule with activation conditions of “OnRequest” and “Info” as
shown.
• Clicking on the “Edit” button on the “General” tab next to the rule activation
section, and then on the “Side Effects” tab, enter the following code in the
custom code box as shown.
(In the code below, the Idoc function “setResourceInclude” is leveraged to
dynamically rewrite existing server code that normally would require a
component customization.)
<$setResourceInclude("docinfo_menus_update_setup","<$include
super.docinfo_menus_update_setup$>
<$loop PageMenusData$>
<$if PageMenusData.nodeId like \"checkout\"$>
<$exec rsDeleteRow(\"PageMenusData\")$>
<$endif$>
<$endloop$>
")$>
• This same technique could be used on other pages as long as the profile engine
is invoked as part of the service execution. A good example would be
selectively removing links on a search results page.
Thanks everyone for taking the time to review this. We hope it saves you the need for a custom component.. or two!