Quantcast
Channel: Unofficial RedDot CMS blog
Viewing all 12 articles
Browse latest View live

Yo dawg! RedDot CMS pages within pages

$
0
0

Found this on the Google Groups and thought it’s too awesome to not share it with you.

Reddot CMS Yo dawg

Yo dawg I heard you like pages, so I put a page in yo page in yo page so you can publish while you publish while you publish.

Some background

The background story is the concept of containers within RedDot CMS.
A RedDot container basically enables you to nest n number of content blocks within another content block within another content block..
RedDot then takes these blocks and merges them into one page – very similar to a baked iFrame page (just without the iFrame).

Share and Enjoy: Print email Twitter Digg Reddit StumbleUpon Google Bookmarks del.icio.us MisterWong Facebook LinkedIn



RedDot CMS Render Tags – The Ultimate List

$
0
0

On this page we will collect all documented and undocumented RedDot CMS RenderTags.
The idea is, that if you have a RenderTag you’d like to add, just post it as comment with a quick description of what it does and what version of OpenText CMS you’re using and I will add it here.

' Time of last change
<%!! Context:CurrentPage.ChangeTime !!%>
' GUID of user who changed page
<%!! Context:CurrentPage.ChangeUserId !!%>
' GUID of user who created the page
<%!! Context:CurrentPage.CreateUserId !!%>
' Getting an element value from a standard element in the current page
<%!! Context:CurrentPage.Elements.GetElement(std_elem).Value !!%>
' Check if it has a page in current language variant
<%!! Context:CurrentPage.ExistsInCurrentLanguage !!%>
' ?
<%!! Context:CurrentPage.HasVersionData !!%>
' Returns headline element of current page
<%!! Context:CurrentPage.Headline !!%>
' Checks if the page is currently locked
<%!! Context:CurrentPage.IsLocked !!%>
' GUID of user who has locked current page
<%!! Context:CurrentPage.LockingUserId !!%>
' Time of last save
<%!! Context:CurrentPage.SaveTime !!%>
' GUID of user who saved the page
<%!! Context:CurrentPage.SaveUserId !!%>
' State of the page (for usage/details see link below about usability)
<%!! Context:CurrentPage.State !!%>
' GUID of the used template for the current page
<%!! Context:CurrentPage.Template.Id !!%>
' Content class name of the used template for the current page
<%!! Context:CurrentPage.Template.Name !!%>
' Optimized tag to Get Element Values (version 10.1 SP1 HF1 and above)
<%!! Context:Pages.GetPage(Guid:D72F8CC0B2494BD39A74C52912E6B54E).GetElementByName(elementName).GetHtml() !!%>
' Tag to reference pages instead of creating links that are followed (version 10.1 SP1 HF1 and above)
<%!! Context:Pages.GetPage(Guid:[GUID PAGE B]).GetUrl(Bool: True) !!%>

Loaders

Loaders are responsible for type safety in the Render Tag system by parsing the following content and casting it inside the processing framework.
They are identified to the left of the colon (:) so in <%!! Context:CurrentPage.ChangeTime !!%> the loader is Context. Each loader also has a series of members being the first element immediately to the right of the colon (:), in the previous example, CurrentPage.
The following table describes the default loaders and their members. The middle column specifies parameters to members that are methods and the return value for members that are properties.

Array:

Create()

params object

Takes an unlimited number of parameters and creates an array

CreateInStore()

string, params object

As with create except the first parameter indicates a storage tag that the result in saved into. See StoreLoader

Sort()

array

The array to sort

IndexOf()

object, array

object, array, int

object, array, int, int

Returns the index (position) of an object in an array

As above but 3rd param indicates start index for search

As above but 4th param indicates count to search through

LastIndexOf()

object, array

object, array, int

object, array, int, int

As above but searching from the end…

Bool:
or Boolean:

[literal]

 

Cast a literal as a Boolean

Context:
or RdObj:

CurrentPage

IPage

Get the current page

CurrentIndex

IPageIndex

Get the current index item (as in navigation index item)

CurrentMasterPage

IPage

Get the current master page

CurrentLanguageVariant

ILanguage

Get the current language

CurrentProjectVariantId

Guid

Get the id of the current project variant

CurrentProjectId

Guid

Get the id of the current project

CurrentRenderMode

int

Get the current render mode. See
RenderModes

CurrentUserId

Guid

Get the id of the current user

FirstIndex

IPageIndex

Get the navigation index item of the first page in the breadcrumb stack

LastIndex

IPageIndex

Get the navigation index item of the last page in the breadcrumb stack

CurrentLevelCount

int

Get the number of levels that will be processed (? To be confirmed)

CurrentDepth

int

Get the current depth of processing

Pages.GetPage()

Guid

Retrieve an IPage for the given PageId for the current project/language

Pages.Render()

Guid

Guid,Guid

Guid, Guid, Guid

Render the page with the given PageId and return the output

Render the page with the given MasterPageId and PageId respectively and return the output

Render the page with the given MasterPageId, PageId and TemplateId respectively and return the output

Indexes.RootIndex()

 

Get the root index item

Indexes.GetIndexById()

Guid

Get the index item by its Guid

Indexes.GetIndexByPage()

IPage

Get the navigation index for the given IPage

Indexes.GetIndexByPageId()

Guid

Get the navigation index for the given PageId

Indexes.RootIndexList()

 

Gets an IPageIndexList for the current breadcrumb stack

Params.GetKeys()

 

return an array of all keys to all the params stored on the context object*

Params.Set()

object

pass an object to set the value of a parameter

Params.[KeyName]()

 

call as a method the keyed parameter you want to return

Debug:

Set()

bool

Enable or disable debug mode

Get()

 

Returns whether the system is in debug mode

Escape:
or RdEscape:

Null or null

 

Emits the value null

NewLine

 

Emits the string “\r\n”

Br

 

Emits the string “<br />”

Tab

 

Emits the string “\t”

Space

 

Emits the string “ ”

NbSp

 

Emits the string “ ”

EmptyString

 

Emits the string “”

OpenTag

 

Emits the string “<”

CloseTag

 

Emits the string “>”

CDataBegin

 

Emits the string “<![CDATA[”

CDataEnd

 

Emits the string “]]>”

BeginTag()

string

Emits “<tag>” where tag is the value of the parameter to the method

EndTag()

string

Emits “</tag>” where tag is the value of the parameter to the method

SingleTag()

string

Emits “<tag />” where tag is the value of the parameter to the method

Space()

int

Emits the number of spaces specified in the parameter

String()

int, string

Emits a string containing the second parameter repeated the number of times specified in the first

Text()

string

Emits the contents of the parameter as a string

HtmlEncode()

string

Emits the parameter after html encoding using System.Web.HttpUtility::HtmlEncode()

HtmlDecode()

string

Emits the parameter after html decoding using System.Web.HttpUtility::HtmlDecode()

Guid:

[literal]

 

Cast a literal as a Boolean

Int32:
or Int:

[literal]

 

Cast a literal as a 32-bit integer

Navigation:

OutputArea()

string

string, bool

string, bool, bool

string, bool, guid

 

Page:

GetPage()

 

 

GetUrl()

 

 

Rendering:

GetOutput()

 

 

GetHtml()

 

 

RenderObject()

 

 

VisualizeObject()

 

 

Store:
or
RdStore:

Set() or SetItem()

string, object

string tag to store against and object to be stored

Get()

string

retrieves and object from storage by tag

String:
or Str:
or RdString:

[literal]

 

Cast a literal as a String

* The context object stores many properties in a hashtable called “Params”, many of these are mapped to members of the Context Loader but it possible to store arbitrary values and retrieve them again as well as manipulating them through code. This requires a thorough understanding of the execution order of Render Tags.

Supporting Classes & Info

RenderModes

  • Preview = 0
  • SmartEdit = 1
  • Publish = 2
  • Debug = 3

IPage

ChangeTime

DateTime

 

ChangeUserId

Guid

 

CreateTime

DateTime

 

CreateUserId

Guid

 

Elements

IPageElementList

 

ExistsInCurrentLanguage

bool

 

FileName

string

 

HasVersionData

bool

 

Headline

string

 

IsLocked

bool

 

IsNew

bool

 

LockingUserId

Guid

 

MainLink

IPageElement

 

SaveTime

DateTime

 

SaveUserId

Guid

 

State

PageState

 

Template

ITemplate

 

TemplateId

Guid

 

Delete()

Session

Session, bool, bool

Must pass in the “session” containing LoginId and SessionKey but have not discovered how to get one of these yet

As above but manually set RQL flags force2910 and
force2911

Rename()

string, Session

New headline and “session” as above

IPageIndex

 

 

 

 

 

 

ILanguage

 

 

 

 

 

 

IPageElementList

 

 

 

 

 

 

IPageElement

 

 

 

 

 

 

ITemplate

 

 

 

 

 

 

PageState

 

 

 

 

 

 

Session

LoginId

int

 

SessionKey

string

Tags

FileRead
<fileread filename=”" />

ForEach
<foreach object=”" itemname=”">
</foreach>

If
<if>
<query operator=”" valuea=”" valueb=”">
</query>
<query operator=”" valuea=”" valueb=”">
</query>
<query operator=”" valuea=”" valueb=”">
</query>
<query type=”else”>
</query>
</if>

The value of the operator attribute can be:
!= being “not equals”
st,lt,< being “a < b” is true
eqst,eqlt,<= being “a <= b” is true
gt,> being “a > b” is true
eqgt,>= being “a >= b” is true
anything else is treated as “equals”
Additional tags can be nested within the “query” elements.

Navigation

Output

Process

Store

Spots

Synchronous XML Spot
<reddot:cms></reddot:cms>

Asynchronous XML Spot
<reddot:asynccms></reddot:asynccms >

Direct Spot
<%!! !!%>

This document is a work in progress page, so
please add your knowledge in the comments where you see fit!

Kudos go to

Michael Phillip
Paul Gibson
Richard Hauer

Things you can do with RenderTags

Got something you wanna share?

If you’ve got any RenderTags you’d like to add share them here!
Just leave a comment with RenderTag, description and CMS version below. Thanks.

Share and Enjoy: Print email Twitter Digg Reddit StumbleUpon Google Bookmarks del.icio.us MisterWong Facebook LinkedIn


Project Database Schema

$
0
0
Been a while but I just ran across some helpful information in the CMS Documentation of all places, and I thought that before it is lost forever it is worth posting here for posterity.
/* ********************************************************************************************************** */
If Management Server slows down over time, you may find it helpful to delete the indexes for certain tables and then create them again. This procedure is only recommended for tables whose content changes often, such as for the project tables. The tables of the IOAdministration administration database change rarely, while the tables in the IOApplication application database do not change at all.

Which project tables change can vary widely from project to project and depends on whether certain features are used, such as permissions, workflows, translation workflows, versioning, or asset versioning. You have to assume that all the tables will change when you set up a new project, however.

Data is added or changed extremely frequently in the following project tables:
IO_PAG Pages
IO_PAG_<LGV> Language-dependent pages
IO_PGE Page elements
IO_VAL_<LGV> Page element content, language-dependent
IO_VER_<LGV> Page versions, language-dependent
IO_REL Links

Changes to the following tables can be frequent when the corresponding features are used:

Asset Manager

IO_BIN Assets when data is saved in the database
IO_THB Management of all assets, including thumbnails
IO_MCV Versioning of assets
IO_FAT File attribute value

Workflow/Translation Workflow

IO_WOS Status of an object in the workflow
IO_WRU Workflow release user
IO_TLP_<LGV> Page status in the translation workflow
IO_TLU User responsible for translating a page
IO_PFW Page forwarding
IO_RES Release
IO_PRU_<LGV> Parallel workflow

Archiving

RD_OBJ Versions of a page
RD_VIF Version information
RD_CNT_<LGV> Versioned content, language-dependent

Clean up live server

IO_LSI Images
IO_LSL Links
IO_LSP Pages

Other

IO_DCT_MAIN Content for administrative notes
IO_SEL Option lists
IO_SRC Image references in text
IO_URL URLs

The following project tables are rarely changed:

Content Classes

IO_TPL Content classes/templates
IO_TLE Template elements
IO_AME Administrative note for a template

Authorizations

IO_AUT Authorization packages
IO_RIT Detailed authorization

Categories and Keywords

IO_CTG Categories
IO_KYW Keywords

Workflow/Translation Workflow

IO_WFA Workflow action
IO_WFL Workflow, language dependent
IO_WFS Workflow state
IO_WKF Workflow definition
IO_EMN E-mail notification
IO_TLU User responsible for translating a page

Publication settings

IO_EJE E-mail notification for a publishing job
IO_EPF Publication folder
IO_EPP Path of a publication folder
IO_EPS Publication settings
IO_EXJ Publishing job
IO_EXP Publishing target
IO_EXR Publication report
IO_EXS Publishing package
IO_FES Publication settings for folders
IO_TMT Scheduling

Other

IO_PJV Project variants
IO_LGV Language variants
IO_TLV Templates
IO_DBA External databases
IO_FDR File/content class folders
IO_CAT Folder attributes
IO_FAV Favorites[sic]
IO_LNG Multilingual administration information
IO_NTG Various temporary data
IO_QRY Constraint when searching for unlinked pages in SmartTree
IO_SET Global settings
IO_SLA Syllables, prefix, suffix
IO_SQL User-defined SQL query for external databases
IO_STS Sort order settings
IO_SYS Internal information
IO_TRF Queue for data transfer
/* ********************************************************************************************************** */
I would suggest a wiki – like the one proposed for the Render Tag doco – could be created that more fully describes the field-level schema also… Mr Baggs, over to you!
Share and Enjoy: Print email Twitter Digg Reddit StumbleUpon Google Bookmarks del.icio.us MisterWong Facebook LinkedIn


How to show CMS authors the page status

$
0
0

How often do you get called by an OpenText CMS author who’s complaining:

They: My pages won’t publish! The system is broken
You: Did you release your page?
They: Oh, wait, let me check. Uhm.. Nevermind, bye..

Just use the snippet below to include the status of pages inside the CMS pages and/or content blocks. It shows the CMS user straight away if the page has been released or is waiting for release and saves hours of phone calls.
Also: This post is re-using the code from a previous post, which you can find here.

<div class="reddot">
  <p class="right"><strong>Block/Page status: </strong>
    <reddot:cms>
      <if>
        <query valuea="Context:CurrentPage.State.ToString().ToLower().Trim()" operator="==" valueb="String:released">
	  <htmltext><span class="status Released">Released</span></htmltext>
	</query>
      </if>
      <if>
        <query valuea="Context:CurrentPage.State.ToString().ToLower().Trim()" operator="==" valueb="String:checkedout">
          <htmltext><span class="status CheckedOut">Checked Out</span></htmltext>
        </query>
      </if>
      <if>
        <query valuea="Context:CurrentPage.State.ToString().ToLower().Trim()" operator="==" valueb="String:waitingforrelease">
        <htmltext><span class="status WaitingForRelease">Waiting for Release</span></htmltext>
      </query>
    </if>
  </reddot:cms>
</p>
</div>

If you look closely you will see in the code above that I’ve added a class to each SPAN tag. If you use this method you can style the element and add colors or icons to show the status to your users.
Here’s a screenshot of a project where a co-worker (Hi, Angel) and I have used this

Showing the content block status to OpenText CMS authors

Showing the content block status to OpenText CMS authors, BOOM!

More? Check our the RedDot CMS tricks section for more.

Share and Enjoy: Print email Twitter Digg Reddit StumbleUpon Google Bookmarks del.icio.us MisterWong Facebook LinkedIn


Workaround – Placing red dots inside of OpenText CMS Render Tags

$
0
0

Have you recently tried adding a red dot inside of a render tag? Chances are (100% chance) the code below will stop the render tag code inside the template from working.

Red dots inside a render tag - currently buggy

Red dots inside a render tag - currently buggy. Can we fix this? Yes we can :)

The problem is that OpenText has changed the mechanism on how to represent a RedDot dot in the script code which caused the XML parser working differently as before. Here’s a workaround a friendly helper from OpenText recently shared with me to get this working:

Based on the parser change, there is a way to replace “//<![CDATA[" and "//]]>” code within the Render Tags.
You need to modify the main.config file, which is locating at ASP folder(<Open Text Install directory>\WS\MS\ASP).

Insert these two new replacement instructions into the main.config file:

<Replace trim="true">
  <OldValue>//<![CDATA[
  </OldValue>
  <NewValue><![CDATA[]]>
  </NewValue>
</Replace>
<Replace trim="true">
  <OldValue>//]]>
  </OldValue>
  <NewValue>
    <![CDATA[]]>
  </NewValue>
</Replace>

This piece of code has to be inserted into at the beginning of the <Configuration><Rendering><Preparse><SpotParse> block, eg:

====================================================
  <Configuration>
.........
......
  <Rendering>
    <Preparse>
      <SpotParse>
         THESE TWO NEW REPLACES
..........
............
</Configuration>
=====================================================

Save the main.config file (make sure you backup the original one), then restart the RedDot CMS Services to let the changes take effect.

As always try this one your testing environment first. Good luck and godspeed.

Share and Enjoy: Print email Twitter Digg Reddit StumbleUpon Google Bookmarks del.icio.us MisterWong Facebook LinkedIn


RQL development with OpenText Web Site Management Server 11

$
0
0

This is a cross post, courtesy of Manuel Schnitnger.

Today I’d just like to write a few lines about the changes regarding the RQL programming in version 11 of the OpenText Web Site Management Server (scheduled for the end of 2011). The change I’ll describe might sound like a totally different approach (and that is possible when looking behind the scenes) but the impact for you as someone who creates RQL based plugins is very small.
Ok, the change: In the Managment Server Version 11 (Swan version) Microsofts COM components for the RQL communication are not longer available/supported. Instead of the COM communication the OpenText Web Site Management Server will use the Windows Communication Foundation that is part of the .Net framework.

The reasons for the change

  • COM components were introduced by Microsoft in the year 1993 (18! years ago) and worked well for the OpenText Web Site Management Server. But nowadays it seemed to be much better to rely on a state-of-the-art technology.
  • Microsofts support for COM components ended years ago and we would like to use a fully supported technology.

What does that mean for your RQL based plugins?

  • If you use the RQL webservices for the communication within your plugins, then the change does not have any impact.
  • If you use the COM objects, then you’ll have to implement small changes.

In order to provide a good overview I’ll provide a function that is probably used by many developers and in a second step I’ll provide a sample RQL plugin that is intended to run on a OpenText Web Site Management Server version 11.

New functions will do the following things

  • receive a string (RQL command)
  • create an object (RQL object)
  • execute the RQL command
  • and return a XML structure (server response)
'Version 10 and earlier:
<%
function sendXML (XMLString)
   set objData = server.CreateObject("RDCMSASP.RdPageData")
   objData.XMLServerClassname="RDCMSServer.XmlServer"
   sendXML = objData.ServerExecuteXML(XMLString, sErrors)
end function
%>

'Version 11:
<%
function sendXML (XMLString)
   set objData = Server.CreateObject("OTWSMS.AspLayer.PageData")
   sendXML = objData.ServerExecuteXml(XMLString, sErrors)
end function
%>

The changes to this function are obviously very small:

  • Instead of RDCMSASP.RdPageData we now use OTWSMS.AspLayer.PageData to create the RQL object.
  • the line” objData.XMLServerClassname=”RDCMSServer.XmlServer” is not longer used in this function.

How do I update my old plugins to work on version 11?

  • Use the Search&Replace function of your development environment: Search for “RDCMSASP.RdPageData” and replace it with “OTWSMS.AspLayer.PageData
  • “Use the Search&Replace function of your development environment: Search for “objData.XMLServerClassname=”RDCMSServer.XmlServer” and replace it with “”.

Hint 1: If your obejcts do have other names….then of course you have to use different search strings ;-)
As most people (including me) like to have a runing script instead of just a code snippet, this sample plugin might be helpful:

<%
' Create RQL Server Object And XML-Document Object
set XMLDom     = Server.CreateObject("OTWSMS.Core.RdObject")
set RQLObject  = Server.CreateObject("OTWSMS.AspLayer.PageData")
' Define Variables
Dim RQLStatement        ' Contains the RQL command
Dim RQLRequest          ' Contains the result of the RQL Server
Dim ServerError         ' Contains an error message of the RQL Server
Dim Projects            ' Contains the number of the projects

LoginGUID   = session("LoginGUID")
SessionKey  = session("SessionKey")

' Create RQL Statement (Load All Projects)
RQLStatement= "<IODATA loginguid=""" + LoginGUID + """>" + _
              "<ADMINISTRATION>" + _
              "<PROJECTS action=""list"" />" + _
              "</ADMINISTRATION>" + _
              "</IODATA>"
' Transfer RQL Statement To RQL Server Object
RQLRequest = RQLObject.ServerExecuteXml(RQLStatement, ServerError)

' Show Appearing Errors
if ServerError > "" then Response.write "An error has occured:</BR></BR>"+ServerError
' Load Result Into XML DOM
Call XMLDom.LoadXML (CStr(RQLRequest))

' Execute XML Query For Projects In XML DOM
Set XMLDom = XMLDom.ObjectByQuery ("//PROJECTS")
' List Every Project By Name
for Projects=1 to XMLDom.objects.count
   Response.write XMLDom.objects(Projects)("name")+"</BR>"
next
' Kill RQL Server Object
Set RQLObject=Nothing
%>

Hint 2: If you have a closer look at the script, you’ll notice that there is another change that I forgot to mention.
If you don’t use the Microsoft XML-DOM object but the one that is provided by the OpenText Web Site Management Server you’ll also have to change this line:

set XMLDom = Server.CreateObject("OTWSMS.Core.RdObject")

The same line in version looks like this:

set XmlDom = Server.CreateObject("RDCMSAspObj.RdObject")

So another search & replace task would look like this:
Search for “RDCMSAspObj.RdObject” and replace it with “OTWSMS.Core.RdObject

Ok, so these were the changes regarding RQL communication. A description of the changes as well as the sample RQL plugin (above) are planned to be part of an updated RQL documentation.
To answer a question that might possibly occour: No, I’m not aware of any other changes regarding RQL. ;-)

Have fun with RQL !

Share and Enjoy: Print email Twitter Digg Reddit StumbleUpon Google Bookmarks del.icio.us MisterWong Facebook LinkedIn


OpenText WSM 11 – Is the “Swan” release going to fly?

$
0
0
OpenText Swan

Good news everyone!

It looks like RedDot isn’t dead after all, the development didn’t stop and thankfully no one followed through with the mad plan of merging RedDot and Vignette.
In the past 10 months we could see up to 9 hot fixes being released in OpenText’s Knowledge Center. Some were minor, others had some really good enhancements hidden in the release notes. So what’s happening in the land of the red dot?

OpenText is keeping things low key

There wasn’t much buzz about these fixes. OpenText kept this very quiet, in fact, I don’t think anyone would have noticed without checking the Knowledge Center. Still, there is movement, stuff is happening. If I were Mr. OpenText I would talk about this a lot more.
The OpenText Web Site Management platform, aka RedDot CMS, gets attention again and perhaps there’s actually more happening in OpenText’s Research & Development department in Oldenburg, Germany, than we all might be able to see right now. By the looks of it, some R&D people even seem to share a few insights on new features and allow a glimpse into technical backgrounds.
The marketing strategy seems to have changed. Perhaps it’s less talk, more action or perhaps one is cautious to raise expectation levels just a bit too high. So currently it’s a waiting game and very few people had the chance to look at a version 11 beta.

So what’s new in version 11 aka “Swan”?

By the look of things it will be an evolution jump, not revolutionary new features to knock your socks of. Again, this is good. Less marketing talk, more core strength for the product. Rumors have it that the new version will come with:

  • .NET 4 integration, by the look of things it won’t be a full transition yet. I assume the reasoning behind this is to allow an upgrade path for older versions. It would be quite hard to upgrade with a full switch and OpenText seems to aim for an easy upgradable solution for customers running OpenText WSM 10.1 SP2 or later.
  • 64bit support, allowing more speed on the CMS side of things.
  • More OpenText integration points to more OpenText products. Allowing to add new solutions for the recent additions to the OpenText family.

It obviously makes sense (not just to the sales guys) to enable integration with more of OpenText’s latest acquisitions, such as the semantic search (formerly Nstein) or the multi mobile device platform “Wave” (formerly WeComm).

The CMS core product is still strong and provides a great foundation for rapid prototyping and third party integration. The effort involved is relatively small compared to the full blown ECM frameworks out there, trying to fit everything into one solution and some of them taking a spin up time of several months..

Important changes for RedDot CMS consultants and customers
Read more »

Share and Enjoy: Print email Twitter Digg Reddit StumbleUpon Google Bookmarks del.icio.us MisterWong Facebook LinkedIn


OpenText Content World 2011 – Have you registered yet?

$
0
0

In less than three weeks the OpenText Content World Conference will be taking place in Orlando, Florida.
A full week packed with training, technology and case study presentations, marketing fuzz and meeting the guys who are in the know about the latest products gathered under the OpenText umbrella.
ot-content-world2011

What’s on? And what’s in it for you?

There is a summary here and it has just been confirmed, that the notorious Mr. Baggs will attend and share his wisdom. There is lots to learn and many new topics for OpenText Web Site Management aka RedDot CMS.

It looks like the Microsoft based CMS gets a lot more attention at the conference, especially when compared to last year. Another sign that there’s traction again and the RedDot CMS isn’t dead after all.

Apart from the obvious RedDot sessions there are others I’ll try and get in to. On my list of training topics and breakout sessions (in- and outside of the RedDot scope) so far:

  • Content Server Architecture Workshop
  • Implementing OpenText Media Management 7
  • Semantic Navigation
  • Gamestorming
  • Deloitte’s ECM for SAP Strategy in Action
  • Web Site Management Enhances SAP Portal
  • Hybrid Cloud example for Web Site Management

What are you interested in?

Currently I am looking into presenting a recent project of mine and adding some more value for the RedDotCMSBlog readership. I would like to organise a breakout session that suits your needs and helps you getting the most out of the conference for your projects and of course yourself.

Want to catch up?

So, what would you like to do?
Would you like to catch up?
Are you interested in a workshop? Something like this:

  • Getting started with RQL
  • Social Communities
  • Q&A – What I always wanted to ask about RedDot
  • Considerations for international projects architecture
  • ….you name it

Drop me a note via twitter @markusgiesen or leave a comment with your suggestions.

Share and Enjoy: Print email Twitter Digg Reddit StumbleUpon Google Bookmarks del.icio.us MisterWong Facebook LinkedIn



Clear OpenText Web Site Management CMS Cache

$
0
0

Sometimes it is necessary to clear the CMS caches.
This can be done via the OpenText WSM interface or manually, folder by folder..
So here’s a quick list of folders describing their purpose:

  • Page Cache
    C:\\<OpenTextInstallFolder>\\ASP\\PageCache
    The PageCache is generating pages for the CMS while you work in the authoring interface. So that you don’t have to load everything out of the DB everythime a page is called. This can be cleared manually when logged into the server or via CMS interface (Administer Project Structure > Project > Clear Page Cache)
  • Image Cache
    C:\\<OpenTextInstallFolder>\\ASP\\ImageCache
    The ImageCache is taking care of images which have been resized on the server and are displayed to you in the browser so that the CMS doesn’t have to use imagemagick to resize images every time you load a page.
  • XML Cache
    C:\\<OpenTextInstallFolder>\\ASP\\XmlCache
    The Xml Cache is on the fly generated config files for user settings, language variants and other “stuff”… It’s usually one of my first suspects when I think I need to clear some caches and it can be done via the Server Manager as well (Administer Application Server > Application Servers > SERVER NAME > Clear Language Resource Cache)
  • RedDotTemp
    C:\\<OpenTextInstallFolder>\\ASP\\RedDotTemp
    This one takes care of the publishing process. All files to be published will be created in the RedDotTemp folder first, then compared to what’s on the server and then the changes will be send through via FTP (publishing to a local directory will always publish everything). Don’t just delete everything in here, the LIVESERVER folders shouldn’t be touched.

How to trick OpenText WSM into a clean full site publish

If you think the publishing process doesn’t take over all files, I suggest changing the publishing target by adding a slash (or removing it) to the target folder path. The files will still end up in the right location but the CMS will take this as a new FTP target and initiate a full site publish with a clean cache.

Disclaimer and why you shouldn’t do this in a production environment

In general I recommend to not clear caches manually unless you’re on a development environment. Doing this on a production environment will have an impact on performance and should only be executed via the CMS interface in order to prevent the deletion of folders used by the CMS.

Update 2012-02-15, I just uploaded the VB script by Alok Varma for you to download, simply rename to .vbs and it’s good to go. Here’s the file: ClearCache VB Script
Please Note: Rename the ClearCache.txt to ClearCache.vbs. We can run the vbs file from “Command Prompt” or “Microsoft (r) Console Based Script Host”. Please change the file path in script to reflect your CMS settings.

Share and Enjoy: Print email Twitter Digg Reddit StumbleUpon Google Bookmarks del.icio.us MisterWong Facebook LinkedIn


Merge variables available in the workflow’s Email task

$
0
0

A question was recently raised on the Google Group:

“For auditing purposes, we’d like to keep track of which user released a page.
  Is there a ‘IoPageInfo_’ variable or another way to capture the user id of the user that released a page in a workflow generated e-mail?”

Turns out that unfortunately there is not, but it occurred to me that this function is not so well documented.

Below is a list of the codes I have been able to identify, valid for v10:

<%ioparentpageinfo_headline%>
<%ioparentpageinfo_pageid%>
<%ioparentpageinfo_languagevariantid%>
<%ioparentpageinfo_pageguid%>
<%ioparentpageinfo_template%>
<%ioparentpageinfo_createdat%>
<%ioparentpageinfo_changedat%>
<%ioparentpageinfo_createdby%>
<%ioparentpageinfo_changedby%>
<%ioparentpageinfo_linkname%>

<%iolinkinfo_name%>
<%iolinkinfo_changedat%>
<%iolinkinfo_changedby%>
<%iolinkinfo_action%>

<%iopageinfo_headline%>
<%iopageinfo_pageid%>
<%iopageinfo_languagevariantid%>
<%iopageinfo_pageguid%>
<%iopageinfo_template%>
<%iopageinfo_createdat%>
<%iopageinfo_changedat%>
<%iopageinfo_createdby%>
<%iopageinfo_changedby%>
<%iopageinfo_action%>

<%iokeywordinfo_keywordguid%>
<%iokeywordinfo_keyword%>
<%iokeywordinfo_category%>
<%iokeywordinfo_changedat%>
<%iokeywordinfo_status%>
<%iokeywordinfo_changedby%>
<%iokeywordinfo_action%>

<%ioworkflowinfo_status%>

I cannot confirm whether this is an exhaustive list, nor whether every code is merged in all circumstances, so trial and error is in order.

Share and Enjoy: Print email Twitter Digg Reddit StumbleUpon Google Bookmarks del.icio.us MisterWong Facebook LinkedIn


OpenText enhancements with the rdQuery Framework – Finally RedDot CMS with less clicks!

$
0
0

I have been enhancing RedDot projects using custom scripts for over 8 years now.
A lot of RedDot CMS developers have a great understanding of Javascript and CSS.
So here’s my nifty little gift for you.

Download

Fork the entire plugin including demo OpenText project from GitHub.

Screenshot #1 – All page information easily accessible

rdQuery-toolbar-screenshot-011
The toolbar displays details around page creator, last update, page ID and a range of SEO settings. It also allows to send an email to the current editor of the page containing basic information about the page.

Screenshot #2 – Page creation with simple template selector

rdQuery-toolbar-screenshot-02
With just one click (no open page / close page / select template, etc rubbish) a page can be created. This saves up to 7 clicks per page created.

Screenshot #3 – Create content blocks with one click

rdQuery-toolbar-screenshot-03
The same goes for content blocks, the number and type of blocks can be controlled via a simple content class.

Screenshot #4 – Content block status and delete with one click

rdQuery-toolbar-screenshot-04
Without opening a page block one can now see the release status and the removal of a block is a one click task. (Note: This can be deactivated of course)

Demo #1 – Page creation made easy

Demo #2 – Create and remove content blocks with only a few clicks

The idea for this was born around 2008/2009 and Kim Dezen already had his own version published a while back. I wanted a simple to integrate option with only a few lines of code. So here it is. Free for everyone to use, make sure you share enhancements via Git.

Requirements

  • OpenText v11 (can also work with 7.5, 9 and 10, just look into the source code)
  • A small change to the web.config but maybe Jian knows a better way
  • Javascript and CSS knowledge

Download

Fork the entire plugin including demo OpenText project from GitHub.

Share and Enjoy: Print email Twitter Digg Reddit StumbleUpon Google Bookmarks del.icio.us MisterWong Facebook LinkedIn

Goodbye RedDotCMSBlog, it’s been great! This blog is shutting down.

$
0
0

Hi all,
I wanted to give everyone a heads up that the blog / domain is going down in the next 1-12 months.

I’ve been paying the hosting of around 70 Euro per year without any revenue or other income from it for the last 10+ years and that money is slowly stacking up to over a grand.

If anyone is interested in taking the thing off my hands or make a charitable donation, please let me know, otherwise I will shut it down.

It’s been an amazing journey to work with so many people on a CMS that once was truly a leader in the field before it became forgotten as a result of one or two too many mergers and acquisitions.

I truly enjoyed meeting, learning and collaborating with every single one of you, a big special mention goes to Frederic Hemberger who was the most active contributor in so many ways. Thanks Fred and thanks to everyone else who contributed, you know who you are.

For me this blog was an early collaboration attempt at bringing an open source mindset to the enterprise world of propriety software. It’s been fun to make the tool overall better, find like minded souls and eventually it led me to move to Australia, which I now call my home.

Feel free to share you RedDot memory below or get in touch via reddotcmsblogbyebye@markusgiesen.com :)

All the Best,
Markus

Share and Enjoy: Print email Twitter Digg Reddit StumbleUpon Google Bookmarks del.icio.us MisterWong Facebook LinkedIn

Viewing all 12 articles
Browse latest View live