Featured | CMS Blog Watch

Featured

Two free RedDot CMS plugins – CMS User Chat & Batch Publish

Posted in CMS, FREE, Featured, Java, Plugins / Extensions, RedDot, RedDot plugins on June 24th, 2010 by Markus Giesen – Comments Off

Henry Lu, also known in the RedDot Community / RedDotters Google Groups as Javahand has published two RedDot CMS plugins.
The plugins are not written in Java, .NET or maybe ASP, no they are Flash based plugin solutions which makes them compatible to most browser as long as your enterprise policies allow Adobe Flash on work stations.

The plugin interface looks very neat for both plugins, a easy to use overview of tasks, options and functions.
I recommend trying it out.

About the plugins

Batch Publisher™ for RedDot CMS

A publication manager to publish selected pages and following pages.

Reddot CMS Batchpublisher by JavahandBatch Publisher™ provides a convenient way for content class based page batch publishing in RedDot CMS. Download it here.
RedDot CMS is designed to componentize a Web site by way of content classes. When a specific portion of the site gets updated, either in terms of function or look and feel, the change is not reflected on the live site until the affected files are published out.

In SmartTree, RedDot CMS does provide a way for a site administrator to traverse the collection of page instances pertaining to a specific content class, albeit with a maximum of 200 pages returned.

RedDot CMS, however, does not provide a way for the site administrator to publish out those returned pages in batch fashion. Publishing those pages out means that the administrator has to select and publish those pages one by one.

The often used, no-brainer alternative is to publish out the entire site, regardless of the population of updated pages; however, when a site is large and the change is time-sensitive, whole-site publishing becomes very attractive and impractical.

That is where Batch Publisher™ comes in. It provides an easy way for administrators to see the collection of pages pertaining to a specific content class and publish them in batch fashion. All common conceivable operation are built-in: granular selection and sorting of pages within the page collection of a content class are simple clicks.

source & download: http://www.byteweaver.com/content/batch-publisher-reddot-cms

Open Lounge™ for RedDot CMS – A chat for your CMS users!
Read more »

Share and Enjoy:

Print
email
Twitter
Digg
Reddit
StumbleUpon
Google Bookmarks
del.icio.us
MisterWong
Facebook
LinkedIn





Element naming conventions for RedDot CMS

Posted in CMS, Featured, Open Text, RedDot, Templates, Templating, elements, naming conventions, placeholder on March 15th, 2010 by Markus Giesen – Comments Off

This article covers basic rules on how to name elements when creating RedDot CMS templates.
If you have ever opened up a template and then looked at elements named “TopLeft”, “Home”, “GreenSeparator” you know what I mean. To make things easier you should add a prefix.

Using a name convention for RedDot CMS elements saves time

So the named examples above become:
“TopLeft” » “con_header” – describing a header,
“Home” » “anc_home” – a link pointing to the homepage,
“GreenSeparator” » “bg_separator” – a separator background.

Now there is no need to open up each element and check the attributes to see what they do. The prefixed name unveils the element type. I have used naming conventions since several years now and it saves me a lot of time.

Name convention list

Using the following list with CMS element naming conventions to enable CMS users to quickly determine element types:

  • Anchor: anc_name
  • Anchor, graphic: ancimg_name
  • Area: area_name
  • Attribute: att_type
  • Background: bg_attribute
  • Browse: brw_next and brw_back
  • Container: con_name
  • Database content: db_name
  • Frame: frame_name
  • Image: img_name
  • Hit List: hitlist_name
  • Headline: hdl_name
  • Info: info_name
  • List: list_name
  • Media: med_name
  • Option list: opt_name
  • Standard field: stf_name
  • Text: txt_name
  • Sitemap: sitemap
  • Transfer: trn_name

Using a Web Solutions Content Management Server (CMS) element naming convention to enable CMS sitebuilder to quickly determine an element type without checking its properties is a common best practice. By using a common set of element names you will save time and avoid templating mistakes when working within a collaborative team of RedDot developers where everyone speaks the same “templating language”.

Do you use conventions?

Share and Enjoy:

Print
email
Twitter
Digg
Reddit
StumbleUpon
Google Bookmarks
del.icio.us
MisterWong
Facebook
LinkedIn





Why the acquisition by Open Text was bad for RedDot CMS

Posted in Customers, Featured, Gauss, Hummingbird, Innovation, Investors, Livelink, Obtree, Open Text, Partner, RedDot, Shareholders, Vignette, community, growth, maintenance, support on March 11th, 2010 by Markus Giesen – Comments Off
NewOpenTextLogo-by-jonontech.comOpen Text’s externally focused growth strategy.
Is it a CMS graveyard and how can you benefit from it?
(image by Jon)

I read an article yesterday from J.Boye and you should read it too, here.

Killing a product might make commercial sense for the vendor,
but customers are left to pay for the consequences
- J.Boye

Is it too late to wake up from the buyout fatigue?

RedDot CMS is alive and Open Text confirmed that they will continue their RedDot product line for the next couple of years. Still, there is not much buzz about OpenText’s leading enterprise CMS for the mid market these days. And the discussions about the buyout fatigue last year seem to be more than justified.
After the 2005 acquisition of RedDot Solutions by Hummingbird it was expected that things needed to settle in and development would take some time to gain traction. Another buyout 3 years later gave RedDot consultants and customers the impression to have stopped any momentum for innovation for almost 4 years.

RedDot CMS is still a leader in the ECM market

The CMS remains one of the leading ECM solutions on the market.
New modules and innovations were only available through Open Text partners and motivated RedDot CMS freelancers. Those were for a long time the only ones able to extend the core product functionality while the vendor appeared to be too busy planning new marketing strategies.
Until the release of version 10 not many new features were introduced by Open Text.

History repeats itself – Obtree to be replaced by RedDot CMS to be re.. – hold on – again?

Obtree is another acquisition victim of Open Text and was meant to be replaced by RedDot. Rumor has it that RedDot CMS will be replaced or merged with Vignette.
Now imagine a customers IT manager or marketing director having to explain why they had to move on from Obtree to RedDot CMS and now have to face something completely new again.. Cruel much? Yes. Indeed.
Even in a far future merging those two product lines is not feasible or will end in a disaster as Jon Marks pointed out last year.

RedDot can’t be replaced with anything within Open Text’s portfolio. And it doesn’t have to!

The Marketing 2.0 people at OpenText just seem to be looking at the Executive Summary and the theoretical revenue in Sales for Vignette as an option to replace / crossgrade from RedDot CMS. This is not feasible, not just technically. It is also guaranteed that customers and partners will be jaded and/or run away. How is that for revenue? Exactly. Bad.

Can Vignette maybe replace RedDot CMS?
Read more »

Share and Enjoy:

Print
email
Twitter
Digg
Reddit
StumbleUpon
Google Bookmarks
del.icio.us
MisterWong
Facebook
LinkedIn





Extending Open Text Delivery Server with your own Java Classes

Posted in Best practice, Delivery Server, Featured, Java, Java Classes, LiveServer, Open Text Delivery Server, RedDot on February 1st, 2010 by Markus Giesen – Comments Off

Guest writer Marek Korch, RedDot/Open Text Consultant at infinity-group.pl in Poland and working for clients like BNP Paribas Fortis, Dan-wood, Allianz and Nordea. He enjoys new challenges in Open Texts Management / Delivery Server systems and learning new things around the ECM world and how to improve them. He also just started writing on this blog.

In this article we will show you how to find the right files to extend Open Texts Delivery Server (formerly known as RedDot LiveServer) with your own Java classes.

You might have worked with LiveServer DynaMents before and sometimes you just wish you would have that special method or a nicer way to process this bit of information but the existing set of Delivery Server DynaMents just doesn’t exactly fit your needs. Therefore here comes your LiveServer tutorial for including your own Dynaments inside of LiveServer.

If you want to start your own adventure with DynaMents and inline Java functions which will extend the DynaMents functionality, you’ll need to go through the following steps:

  1. Prepare the LiveServer (Delivery Server) environment
  2. Prepare the java package and the java class files
  3. Create your own class which you want to use to extend the built-in java classes

Prepare the LiveServer Delivery Server environment

First of all check your Delivery Server version and build. I was working on LiveServer (Delivery Server) build 4.0.0.8 but it’s recommended to upgrade it to LiveServer 4 SP1. Of course it is not necessary to upgrade your LiveServerS/Delivery Server, but it makes things easier if you are able to go with the upgrade as you will see below. (Always keep in mind to check the release notes and check issues affecting your environment. LS 4 for example has a known defect with updating/connecting to Active Directory which is yet about to get fixed)

Prepare the java package and the java class files

Finding the classes on your LiveServer environment can be a bit tricky, to create your own Java class file you will have to import one very important class package which is built in the LS. The class is called:
de.reddot.xmaps.dynament.DefaultInlineFunctions;
There are two ways to find it and to import into your class package during the compilation process:

A) Especially recommended to use if you have LiveServer without SP1, is to import the above mentioned class into your java project in which you will compile your own class. To accomplish that, simply import the JAR file with the necessary class which is located in
<LiveServer_Install_Directory>\\tomcat\\webapps\\cps\\WEB-INF\\lib\\rdls-rde-x.x.x.x.jar

x.x.x.x corresponds to a build version of LS. In my case it was rdls-rde-4.0.0.8.jar.

B) If you already have LiveServer running with the SP1 updgrade, you can find the necessary class in
<LiveServer_Install_Directory>\\tomcat\\webapps\\cps\\WEB-INF\\classes\\de\\reddot\\xmaps\\dynament\\DefaultInlineFunctions.class

Create your own class which you want to use to extend the built-in java classes

The Next step is to prepare a definition of your own class. It should looks like this:

// ############################
package com.company.package;
import de.reddot.xmaps.dynament.DefaultInlineFunctions;
public class ExtendedInlineFunctionsClassName extends DefaultInlineFunctions{
         public String function(String value, ...ANY OTHER VARS DESIRED){
                   String mustReturnAString=value;
                   return mustReturnAString;
         }
         //called inline like [#source:attribute#].function(...ANY OTHER VARS DESIRED)
}
// ############################

After that, all you have to do is to compile your own class file with your function(s) and then copying it to to the classes folder on your LiveServer directory:
<LiveServer_Install_Directory>\\tomcat\\webapps\\cps\\WEB-INF\\classes

And Voila! Based on that you are ready to go. Create your own Java methods and use the according DynaMents in your LiveServer project.
Questions? Ideas? More LiveServer enhancements? Use the comment box below!

Share and Enjoy:

Print
email
Twitter
Digg
Reddit
StumbleUpon
Google Bookmarks
del.icio.us
MisterWong
Facebook
LinkedIn





Creating RSS Feed in RedDot CMS

Posted in CMS, Featured, Open Text Web Solutions Managment Server, Podcast, RSS, RSS Feed, RedDot, Render Tags, Tricks, XML, render tag on November 24th, 2009 by Markus Giesen – Comments Off
Screenshot of the RSS Feed Template
Screenshot of the RSS Feed Template

This is a classic article about how to create a RSS Feed using our beloved CMS and this topic has been asked about 5 million times now on Google Groups Wiki and everywhere else… This question or furthermore one of these variations below will now be answered:

How to get an RSS Feed for my Open Text project?

  • How do I create an RSS Feed in Open Text Web Solutions Management Server?
  • How do I set up an Podcast?
  • How can I create a news feed for my news section?
  • How do I get my news list as a XML document

To create an RSS Feed within RedDot CMS you just need ONE template.
There is no need to create a separate XML variant or anything like this.
Just change the elements within the template to match your news elements and you are ready to go.
Don’t change the date element, this is a sensitive one which needs some ASP script to read a proper readable date for the RSS Feed.

The RSS Feed Template

The template below makes use of some nice Render Tags which you should check out. Especially the Render Tag described in the SEO article come in handy when you link news from different sections within the project connected to your RSS feed list using keywords.

Explanation of RedDot Elements

So what did we do here? Let’s have a closer look at the single bits and pieces within the template.
The first part contains two ASP functions “GetMonthName” and “GetDayName” to render the date returned by the RedDot element stf_pageDate properly in a RSS format. So DON’T TOUCH THE stf_pageDate element.
Then we have this part in the links:

<%stf_siteURL%><%!! Escape:HtmlEncode(Context:Indexes.GetIndexByPageId(Guid:<%info_PageGuid%>).Page.GetUrl()) !!%>

The siteUrl element should be the URL of your site (for example: www.reddotcmsblog.com if this would be your site..)
The second Render Tag bit returns the MainLink of the page to the linked site no matter what publication package is assigned to the RSS Feed.
All the other bits and pieces should be self-explaining.

Integration into my Open Text project

To integrate this template in your project:

  1. Download the template below
  2. Donate a decent amount to keep this site running
  3. Import the template into your project
  4. Make sure PreExecute is activated for your project
  5. Create a page based on this template
  6. Reference the list inside the template to your news list
  7. Create a publication package for the RSS Feed list so that your pages get published into a hidden folder (this is to avoid double indexed files in your site search)
  8. Change the filename to yourfeedname.xml
  9. Integrate the file into your HTML page templates with something like this
  10. Publish everything
  11. You are done. Get yourself a Cookie!

Disclaimer & Credits

Feel free to re-use the code linked below. Don’t use the code above because it is just an example and it gets scrambled by the Syntax Highlighter. However both versions come with no warranty. When re-used by you we expect you to attribute this work and use it according to the CC license BY-SA 3.0. Thanks to the famous Plugin Developer and super coder Kim Dezen who helped me out with the code bits but hates writing other things than pretty code so I have to do it.
It also needs to be said that this example is a very basic one and you can enhance any fields you need. Feel free to send us your examples if you have improved this marvelous Open Text solution!

Download and Donate

We can’t get around to outline it and remind you. This site still runs for free. And this won’t change from todays point of view unless we manage to convince OpenText to make a bigger donation because we solve at least as many support requests per day as they do.
So grab your code, enjoy the work we share here with you and if you find it useful then after downloading the template feel free to donate (it should be enough for a beer..).

Share and Enjoy:

Print
email
Twitter
Digg
Reddit
StumbleUpon
Google Bookmarks
del.icio.us
MisterWong
Facebook
LinkedIn





How to get a tidy website

Posted in Best practice, CMS, Featured, RadEditor, RedDot, RedDot text editor, Standard, Telerik, Tricks, tidy, xhtml on November 9th, 2009 by Stefan Buchali – Comments Off

Whenever a page or an entire website is published, there is the problem of producing valid XHTML code. Let’s face it: Open Text Websolutions is not (and RedDot CMS was not) the most eager CMS in the world to achieve this goal.
Some open source solutions (e.g. WordPress ;-) ) do a better job.

So what can we do? Since nearly everyone is able to easily create a standards compliant webpage, Open Text and us partners have to cope with a big challenge in explaining why an expensive system is not as good as a free one.

So there are two goals for us:

  • Give the users the freedom of formatting they expect
  • Show your fellow keep-to-the-code developers that you don’t consider the standards just for more or less guidelines.

Are you ready? Let’s go…

Just ASCII for the editors?

First of all, let’s have look at where do the problems come from:
Assuming that we developers are able to program tidy and standards compliant templates, there is only one source causing all of our problems: The text editor!

Uppercase tags, mso-styles and incorrect empty tags like <BR> instead of <br /> spread our code that was once so beautiful.

So the most simple way to avoid all of that would be to keep the editors away from anything where they could produce one single tag without our control. This ends up in denying them to use the text editor, at least the “not in ASCII mode” one.
But I have never seen a project like this…

Use tidy

Another good way to publish standard compliant web pages is to use tidy. Simply activate it in your project variant settings and all problems are gone!

Well, almost all:

  • As tidy will not only touch code from the text editor but the whole page, you will sooner or later run into the situation that it also changes some of your template code while publishing.
  • If you publish just static HTML, tidy may help you a lot.
  • If you publish server side scripts, too, it might interfer a lot and make very harmful changes!
  • Tidy checks and corrects the published code which is transferred to the web server. But this code does not necessarily need to be tidy yet – just the code the web server finally send to the client has to be!
  • Never use it in a LiveServer (Delivery Server) project! It will strip out all of your nice Dynaments as it does not recognize them (when in XHTML mode – I did not try out one of the other modes). If you start to declare these tags (you can of course configure tidy), it will keep them in the BODY, but not in the HEAD.

At this point, I did not investigate any further.

Use another text editor

Version 9 introduced Telerik RadEditor as a new approach. This seems to be a good and well integrated tool that produces really cool tidy code. Good for brand new projects. Changing a running project can be a bit tricky, but the main problem is that you would have to open and close every single text element to see the effect, however.

And there are some issues around, which have been discussed yet in other posts here.

Use a conversion table

Have a look at the /cms/asp folder of your server. There you should find a file named HtmlConvertTable.txt.

It’s a simple plain text document containing tabulator separated strings. Matches left will be replaced by the text right. It has been used in ancient times (before unicode) to convert these strange characters like our german umlauts to their corresponding HTML entity (e.g. ä became ä).

The great advantage of this solution is that it only changes the content of elements, but not one single character of the template code!

In your project variant settings, you can choose between three options (section Conversion of RedDot content):

  • Do not convert characters (I think this means in fact: use the standard file HtmlConvertTable.txt if the element is not set to "Do not convert characters to HTML")
  • Convert characters to XML (changes just these five characters: &, ", <, > and ‘ – but all and everywhere)
  • Convert characters to the following file format (followed by a text entry field)

So let’s create a conversion table for XHTML code, save it to the /cms/asp folder of your server, name it e.g. HtmlConvertTableXhtml.txt and enter this file name into the text entry field.

Into this file, write down all uppercase tags to the left and the corresponding lowercase tags to the right, separated by a tabulator.

Here’s a little example (when you copy it ensure that you get the tabulators right):

<BR>	<br />
<IMG 	<img
<P 	<p
<P>	<p>
</P>	</p>
<A 	<a
</A>	</a>
<STRONG>	<strong>
</STRONG>	</strong>
<EM>	<em>
</EM>	</em>

Very simple, but powerful. What do we see in this example?

  • You must list both the start tags and the end tags.
  • Some start tags appear twice, because they exist both with and without attributes.
    Attention: You should then note the version with attributes with a following space to avoid unwanted conversion of other tags starting with the same character or string.
  • You can also list any attribute to be converted.
    Attention: Don’t list the href attribute, because this confuses the pagebuilder – internal links will no longer be published!

You can list the ampersand, too, of course, if you do it as follows:

 & 	 &

Both the left and the right one must have a leading and a trailing space to ensure that only the ampersands standing alone will be converted and not those which are already part of an entity.

Last but not least you can convert deprecated tags into a standard compliant way:

<NOBR>	<span class="nowrap">
</NOBR>	</span>

The behaviour of the “nowrap” class is then defined using CSS.

In my experience so far, this solution delivers the best results for projects using the built-in RedDot text editor (I’ve tried it with version 7.5), although it’s not possible to convert all tags. For example, you cannot convert empty tags that must have attributes (e.g. img) into their XHTML variant.

That’s it. Now I’d like to hear about your experience with this.

Share and Enjoy:

Print
email
Twitter
Digg
Reddit
StumbleUpon
Google Bookmarks
del.icio.us
MisterWong
Facebook
LinkedIn





Duplicate content publishing – SEO and Open Text Web Solutions

Posted in ASP, Best practice, CMS, Featured, MainLink, PageBuilder, RedDot, RedDot CMS Shortcuts, Render Tags, Tricks, publishing on October 26th, 2009 by Markus Giesen – Comments Off

When pages are connected to multiple links allover the project – for example by using keywords – you will end up with one page published multiple times in several folder. This leads to duplicate content and search engines like Google, Yahoo, Bing, … basically any engine crawling your page will assume that you are trying to get a higher ranking by duplicating your content and keyword density. This can unfortunately lead to a full exclusion from Google’s search index and none of your pages within your domain would be found. Disturbing, isn’t it?

Why does it happen?

So why does the publishing of multiple pages happen?
Let’s have a look at the architecture of link elements within the Web Solutions Management Server RedDot CMS:
The PageBuilder is the core piece which follows the link structure of your Content Management Project and verifies every link and page within your project. Beside that the PageBuiler has been rewritten recently in .NET and shows now a performance than before when configured properly.

Different link types

There are two or furthermore three types of link elements:

  1. References
    they just reference/point to the origin place where a page “lives” within the project and
  2. Connected pages
    which can be expanded in SmartTree and are ‘truly connected’ to the link element
  3. Mainlink
    One exception is the Mainlink, this is the place where the page usually has been created at first and it defines the place where the page really lives in the CMS project.

What happens during publishing?

During the publishing process within WSMS RedDot CMS referenced links are not followed by the PageBuilder and hence don’t produce a published page follwing this link.
Connected pages to links are recognized by the PageBuilder which picks up the publication package assigned to the link and according to the settings in this package the page gets published. If a page is connected multiple times in a project, not just referenced, this structure creates multiple pages with the same content.

How do we solve multiple publishing?

We will convince the CMS PageBuilder that it is looking at a reference instead of a connected page link. The code for this is easy:

<%=Replace("<%list_teaser%>","islink=2","islink=10")%>

The only limitation here is:

  • The link element needs to be set to ‘insert path- and filename only’.
  • The code block runs in a prexecute so that the code is executed and returned as html when published

What the code does is that it replaces the link type

  • 2 = link, follow and publish the site based on the publication package attached to this link element
    to
  • 10 = reference, don’t follow this page and don’t publish it, just use the MainLink the page is connected to

The (almost) ready to go template code



Attention:

  • Don’t forget to wrap the code above in a pre execute
  • The RenderTag in the href=” ” doesn’t show up properly in so replace “RenderTag” with the tag above as described in the comment

EXPLANATION: So what does this all do?


This code hides the link from the HTML structure. Although it is hidden now from the HTML it doesn’t stop the PageBuilder from following the link and publishing the page, so we have to replace the two link types as discussed above.

Render Tag Code? What do we do here with the Render Tag?

<%!! Context:Pages.GetPage(Guid:<%info_PageGuid%>).GetUrl() !!%>

This nice Render Tag sets the link URL to the MainLink of the page. If this is used everywhere all links will point to the same place and make sure that you won’t have duplicate content or unwanted sites published in the wrong place.

Other ways?

I am sure there are of course other ways to solve this issue and I am keen to read them below!

Share and Enjoy:

Print
email
Twitter
Digg
Reddit
StumbleUpon
Google Bookmarks
del.icio.us
MisterWong
Facebook
LinkedIn



Render Tags – An Overview

Posted in CMS, Featured, Open Text Web Solutions Managment Server, RedDot, RedDot CMS Shortcuts, Render Tags, Tricks, Web Solutions Management Server on September 28th, 2009 by Markus Giesen – Comments Off

Render tags can be used in many different ways. By using them one not only is able to read content from several places in the project you also can change and manipulate page rendering and use the render tag technology for your control structures.
The following list gives a overview and is meant to be an introduction into the functionality and use cases for render tags.

The most common use of render tags is probably the output of content:

<%!!
Context:CurrentPage.Elements.GetElement(std_elem).Value
!!%>

Manipulating the returned content

Only returning content might often be not of interest. This can be done by a reference or just the element placeholder itself. Hence here are a couple of ways to manipulate the render tag content output.

PadRight()
Return the content of an element with a maximum length of 15 characters

<%!!
Context:CurrentPage.Elements.GetElement(std_elem).Value.PadRight(Int:15)
!!%>

Substring()
Return the first 10 characters of a content element

<%!!
Context:CurrentPage.Elements.GetElement(std_elem).Value.Substring(Int:0, Int:10)
!!%>

Trim()
Return content and remove white space from beginning and end of string

<%!!
Context:CurrentPage.Elements.GetElement(std_elem).Value.Trim()
!!%>

Replace()
Return element content but replace parts of the string. In this example I replace “RedDot” with “OpenText”

<%!!
Context:CurrentPage.Elements.GetElement(std_elem).Value.Replace(RedDot,OpenText)
!!%>

ToUpper()
Return the output in UPPERCASE

<%!!
Context:CurrentPage.Elements.GetElement(std_elem).Value.ToUpper()
!!%>

ToLower()
Return the value of the string in lowercase

<%!!
Context:CurrentPage.Elements.GetElement(std_elem).Value.ToLower()
!!%>

ToString()
Change the output type to type “String()”

<%!!
Context:CurrentPage.Elements.GetElement(std_elem).Value.ToString()
!!%>

Length
Return the character length of returned value

<%!!
Context:CurrentPage.Elements.GetElement(std_elem).Value.Length
!!%>

HtmlEncode()
Return HTML encoded value of the element

<%!!
Escape:HtmlEncode(Context:CurrentPage.Elements.GetElement(std_elem).Value)
!!%>

HtmlDecode()
Return HTML decoded value of the element

<%!!
Escape:HtmlDecode(Context:CurrentPage.Elements.GetElement(std_elem).Value)
!!%>

Control output based on render tag queries

Render tags are not only used to return element content.
It also can be used to check the value of an element and create several types of queries.

Equals()
Checks if two Strings are equal or not, return value is type of Boolean

<%!!
Context:CurrentPage.Elements.GetElement(std_elem).Value.Equals(STR)
!!%>

StartsWith()
Checks if the returned content starts with the given value (i.e. character) Return value is of type Boolean

<%!!
Context:CurrentPage.Elements.GetElement(std_elem).Value.StartsWith(STR)
!!%>

EndsWith()
Checks if the returned content ends with the given value (i.e. character) Return value is of type Boolean

<%!!
Context:CurrentPage.Elements.GetElement(std_elem).Value.EndsWith(STR)
!!%>

<If> and <else> render tag queries

These return values can be used as well as queries which are known from other programming languages.
Another way of controlling output for example are <if>- and <if>-<else>-queries
<IF>

<reddot:cms>
  <if>
    <query valuea="Context:CurrentPage.Elements.GetElement(std_elem).Value" operator="==" valueb="String:test">
      <htmltext>
        Value is "test"
      </htmltext>
    </query>
  </if>
</reddot:cms>

This IF-query can be enhanced by the ELSE-query which comes in handy when you need an SSL-Switch or you want to Skip levels in your navigation

<IF>-<ELSE>

<reddot:cms>
  <if>
    <query valuea=" Context:CurrentPage.Elements.GetElement(std_elem).Value" operator="==" valueb="String:test">
      <htmltext>
        Value is "test"
      </htmltext>
    </query>
    <query type="else">
      <htmltext>
        Value is certainly NOT "test"
      </htmltext>
    </query>
  </if>
</reddot:cms>

In the Loop

Beside these two options render tags offer other solutions. One of those is the possibility to use render tags for the output of elements within or outside of structure elements. For example you can use those outside of navigation manager templates to return your project structure

foreach

<reddot:cms>
  <foreach itemname="item" object="Context:CurrentPage.SubIndexes" countername="counter">
    <htmltext>
      <%!! Store:counter !!%>. <%!! Store:item.Headline !!%><br />
    </htmltext>
  </foreach>
</reddot:cms>

Reading structure elements

Not only can this be used to return your navigation structure at any point of the project – you also can use it to return the structure elements (lists, anchors, container) of any page. Although – in Version 7.5.x – not in the right sort order.

foreach

<reddot:cms>
  <foreach itemname="item" object="Context:CurrentPage.Elements.GetElement(lst_elem).Value" countername="counter">
    <htmltext>
      <%!! Store:counter !!%>. <%!! Store:item.Headline !!%><br />
    </htmltext>
  </foreach>
</reddot:cms>

Undocumented and documented render tags

Beside those and the already described functions in the documentation there are a couple of others which aren’t documented (yet?). For example it is possible to return the name of a content class by using this

Template
Reading a content-class

<%!!
Context:CurrentPage.Template.Name
!!%>

Render tags were quite new and a lot Open Text / RedDot CMS developers are used to ASP with VB.Net but these new tags are worth to have a look at because some of them can reach into parts of the project were you are stuck with your ASP code or you would have to use RQLs which can be slow down the editing process.

Disclaimer

Be aware of undocumented render tags, they might change with the next version of RedDot (oh, wait, there might be no next major version after version 10..) ok, they might change with the next hotfix and then you have to walk through your system and find the little buggers. We also don’t give any warranty for the code shown here, use it at your own risk.

Links

Do you know any render tag tricks? Let us know!

Show your render tags below in the comments field, but don’t forget to escape your HTML, which means that the code must be escaped by using HTML-Entities. For example one should write < as & lt; and > as & gt;.

Share and Enjoy:

Print
email
Twitter
Digg
Reddit
StumbleUpon
Google Bookmarks
del.icio.us
MisterWong
Facebook
LinkedIn