Friday, December 12, 2014

Last Modified Report



  • 7.x
  • 9.x
  • 10.x
  • 11.x

  1. Generate report based user name, content class, and last modified date
  2. Generated report can be saved to a CSV format

  • In SmartTree, Start -> Administer Content Classes, action menu, Last Modified Report
  • In SmartTree, Start -> Administer Content Classes -> [Content Class Folder] -> [Content Class], action menu, Last Modified Report

Thursday, November 13, 2014

Management Server and Content Server Integration Details

  1. A link a document is assigned in a text editor
  2. Going into source code view in the text editor, you should see
  3. [ioID]2D7611CC2E8D412EA25B5BD322333DC4 refers to the GUID of the integration folder
  4. In the project database end, the corresponding entry is created (via RQL by the application)
    THB3 is the folder guid
    THB1 is the mapping key from the text editor entry to the DB table entry
    THB4 is the mapping key information from Management Server to Content Server (NOTE OBJECTID)

Wednesday, September 10, 2014

Windows 2012 and Management Server 11 Installation Note

Even for basic installation, that is without the mobile client, prior to Management Server installation, ensure to go to Windows Server Manager, navigate to Add Roles and Features Wizard > Select Features > Features > .NET Framework 4.5 Features > WCF Services and select HTTP Activation.

This is important. Else one will get an error when creating a text placeholder or saving text to a text placeholder.

The error is a complaint about not about to access /cms/webservice/Elements.svc/

RedDot CMS Date Conversion in MS 11

Since COM and DCOM is going away in Management Server 11, the following RedDot date conversion code using "RDCMSAsp.RDPageData" may not work.

ASP (From RQL Manual)
' From an RQL assign a value to a variable
OldDate = EinObjekt("changedate")

' Convert value by calling the DecodeDate function
' and output in both variants.
response.write "Date from attribute=" & OldDate & " --> Convert date=" & DecodeDate(OldDate)

Function DecodeDate(OldDate)
    Dim objIO As Object                              ' Define object
    Set objIO = CreateObject("RDCMSAsp.RDPageData")  ' Create object
    DecodeDate = objIO.decodedate(OldDate)           ' Convert number into date
End Function

Here are the new code that should work in all versions.

Function ConvertToRedDotDate(DateObject)
    ConvertToRedDotDate = DateDiff("d","12/30/1899", DateObject)
End Function

Function ConvertFromRedDotDate(RedDotDate)
    Dim DateObj, Int_Days
    DateObj = "12/30/1899"
    Int_Days = Int(RedDotDate)
    DateObj = DateAdd("d",RedDotDate,DateObj)
    DateObj = DateAdd("s",(RedDotDate-Int_Days)*86400,DateObj)
    ConvertFromRedDotDate = DateObj
End Function

DateTime DecodeFromOADate(double OADate)  
    return DateTime.FromOADate(OADate);  
double EncodeToOADate(DateTime RegDate)  
    return RegDate.ToOADate();  

function ConvertToRedDotDate(DateObj)
    // day in milliseconds
    var DAY_IN_MILLISECONDS = 1000 * 60 * 60 * 24;
    var BEGINING_DATE_MIllISECONDS = new Date(1899,11,30).getTime();

    var DateObj_Milliseconds = DateObj.getTime();

    return Math.round(Math.abs(DateObj_Milliseconds - BEGINING_DATE_MIllISECONDS)/DAY_IN_MILLISECONDS);

function ConvertFromRedDotDate(ReddotDate)
    var days = Math.floor(ReddotDate);
    var milliseconds = Math.round((ReddotDate-days)*86400000);
    var adjusted_days_in_millseconds = (days-25569) * 86400000;
    var RetDate = new Date();
    RetDate.setTime(adjusted_days_in_millseconds + milliseconds);
    var ajusted_minutes = RetDate.getTimezoneOffset();
    RetDate.setMinutes(RetDate.getMinutes() + ajusted_minutes);
    return RetDate;  

Monday, August 25, 2014

CMS/WSM/MS won't accept a license key

If CMS doesn’t accept a key that is supposed to be working, you might want to update the database settings manually.

  1. Logon to the Database and navigate to Databases -> IoAdministration -> Tables -> dbo.IO_CMP
  2. Right click and choose open table
  3. Make sure that there is the correct server name or the IP address of the CMS server is in the column CMP2. CMP1 is the connection name and you may change this as well. The proper license key should be entered in the column CMP6.

Credit goes to the Anjam for remembering this and David Vogt for writing it down

Tuesday, June 3, 2014

Template won't save, especially CSS

The template editor is written in ASP. "Maximum Requesting Entity Body Limit" is the mechanism used to transit and save the code in the template editor.  By default, ASP setting in IIS is configured to accept a maximum of 200KB.

Solution: increase your "Maximum Requesting Entity Body Limit" setting under ASP under your CMS web application.

Thursday, May 8, 2014

Getting Current Management Server RedDot CMS Project Name via JavaScript

This is the easiest way to get current project name without complicated rendertag or preexecution. Just make sure you are already use the JQuery.js library.
<script type="text/javascript">
 var TheRealUIContainerPage;
 var ProjectLabelText;
  if( == 'ioActionMenu'){
   // smarttree
   TheRealUIContainerPage = top.opener.parent.parent.parent.parent.document;
   ProjectLabelText = $(TheRealUIContainerPage).find('body #ctl00_ctl00__bodyPlaceHolder__infoMenu_2 .ca_tb_txt').text();
  // smartedit
  TheRealUIContainerPage = window.parent.document;
  ProjectLabelText = $(TheRealUIContainerPage).find('body #ctl00_ctl00_ctl00__bodyPlaceHolder__infoMenu_2 .ca_tb_txt').text();


Rendertag to Escape Double Quote and Single Quote

This is a solution posted by Tim Davis on!topic/reddot-cms-users/ImqWdAN4XIY

You want to assign text placeholder content class a server side preexecution variable, but the text placeholder contains double quote, single quote and carriage return, which will cause preexecution error because the resulting code will be like this

Dim MyVar

MyVar = "<%txt_body%>"

'resulting code
'this cause syntax error, cannot have unescape quote inside quote
MyVar = "he says,"hello""

'this cause syntax error, cannot unclosed second line
MyVar = "first line
               second line"

What you can do is to use rendertag to escape the text. This method handles, &, ", ', accented character like (á, é, í, ó, ú, ü, ñ, ¿, ¡), and new line carriage return

Dim MyVar

MyVar = "<%!! Escape:HtmlEncode(<%txt_body%>) !!%>"