Tuesday, June 3, 2014
Template won't save, especially CSS
Solution: increase your "Maximum Requesting Entity Body Limit" setting under ASP under your CMS web application. http://stackoverflow.com/questions/9466081/how-to-increase-request-accept-limit-for-asp-classic
Thursday, May 8, 2014
Getting Current Management Server RedDot CMS Project Name via JavaScript
<script type="text/javascript">
var TheRealUIContainerPage;
var ProjectLabelText;
if(window.opener){
if(window.opener.name == 'ioActionMenu'){
// smarttree
TheRealUIContainerPage = top.opener.parent.parent.parent.parent.document;
ProjectLabelText = $(TheRealUIContainerPage).find('body #ctl00_ctl00__bodyPlaceHolder__infoMenu_2 .ca_tb_txt').text();
}
}else{
// smartedit
TheRealUIContainerPage = window.parent.document;
ProjectLabelText = $(TheRealUIContainerPage).find('body #ctl00_ctl00_ctl00__bodyPlaceHolder__infoMenu_2 .ca_tb_txt').text();
}
alert(ProjectLabelText);
</script>
Rendertag to Escape Double Quote and Single Quote
This is a solution posted by Tim Davis on https://groups.google.com/forum/#!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%>) !!%>"
Tuesday, November 26, 2013
Clear Page Cache
- 7.x
- 9.x
- 10.x
- 11.x
- Clear cache for specific page instead of entire project.
- In SmartTree, select page, Action Menu, Clear Page Cache
- In SmartEdit, open page, right click, plugins in context menu, Clear Page Cache
MoveIt
- 7.x
- 9.x
- 10.x
- 11.x
- Allow users in SmartEdit to move pages easily from current location to predefined locations without the hassle of getting page into clipboard, disconnect from current location, navigate to destination and connect page.
- Use the button "Add Current Page as Target" to predefined a list of destination pages
- Click the button "Move" to bring up a choice dialog for move target location on destination page
- In SmartEdit, open page, right click, plugins in context menu, MoveIt
Set Element Display In Project Structure
- 7.x
- 9.x
- 10.x
- 11.x
- Allow SmartTree user to set whether a structure element is visible in SmartTree.
- In SmartTree, navigate to a content class, expand and select a structural element, in Action Menu, click SetElementDisplayInProjectStructure.
Wednesday, October 23, 2013
Using #include in a project
Why
The most common need to use an include directive is to include/reuse a common piece of component of the site, such as header, footer and advertisement.
Common Pitfalls
When using a media or image element in place of actual file name, the generated path contains ., which is invalid pathing by default unless enabled in IIS. The other issue with leading . in pathing is one cannot use that in #include virtual.
' Code in CMS template <!--#include virtual="<%med_transformer_asp%>"--> ' Generated code in SmartEdit or Page Preview. Invalid code <!--#include virtual="../ImageCache/521E5D7461214F71889B2A99C6CAD3F4/514EAAB6BEBB4F86B85AF45DB2A09374/TR/transformer.asp"-->
' Code in CMS template <!--#include virtual="<%anc_transformer_asp%>"--> ' Generated code in SmartEdit or Page Preview. Invalid code <!--#include virtual="./PreviewHandler.ashx?Action=Preview&Mode=0&blahblahblahblah"-->
When using #include file directive, the pathing uses \, CMS publish pathing as /. Though this is a minor issue since both syntax are acceptable.
' desired syntax <!-- #include file="common\header.htm" --> ' generated syntax <!-- #include file="common/header.htm" -->
The biggest issue with #include file in CMS is that the path returned is incorrect
' Code in CMS template <!--#include file="<%med_transformer_asp%>"--> ' Generated code in SmartEdit or Page Preview. <!--#include file="../ImageCache/521E5D7461214F71889B2A99C6CAD3F4/514EAAB6BEBB4F86B85AF45DB2A09374/TR/transformer.asp"--> ' This maps to ' ASP\ReddotTemp\ImageCache\521E5D7461214F71889B2A99C6CAD3F4\514EAAB6BEBB4F86B85AF45DB2A09374\TR\transformer.asp ' Instead of ' ASP\ImageCache\521E5D7461214F71889B2A99C6CAD3F4\514EAAB6BEBB4F86B85AF45DB2A09374\TR\transformer.asp
' Code in CMS template <!--#include file="<%anc_transformer_asp%>"--> ' Generated code in SmartEdit or Page Preview. <!--#include file="./PreviewHandler.ashx?Action=Preview&Mode=0&blahblahblahblah"--> ' This maps to ' ASP\ReddotTemp\BC498EE1113D41F7AC877F3D5BD0738E\PreviewHandler.ashx?Action=Preview&Mode=0&blahblahblahblah ' The path is correct, but the file gets deleted as soon as it is generated and displayed.
One can work around the pathing issue with manual path correction
<!IoRangePreExecute> ' Code in CMS template <!--#include file="../<%med_transformer_asp%>"--> <!/IoRangePreExecute> ' Generated code during publication mode, invalid code, the file is published ' to the asp folder on the web server. The asp folder is not on the CMS ' server, so preexecution is trying to use a file that doesn't exist <!--#include file="../asp/transformer.asp"-->
Solution
If you simply want to use include to include a static file, like header. In publishing mode, use #include, which uses a anchor placeholder to reference the header page. When not publishing, use the header container placeholder, which references the header page.
<reddot:cms>
<if>
<query valuea="Context:CurrentRenderMode" operator="==" valueb="Int:2">
<htmltext>
<!--#include file="<%anc_header%>"-->
</htmltext>
</query>
<query type="else">
<htmltext>
<%con_header%>
</htmltext>
</query>
</if>
</reddot:cms>
If you want to include an asp library and use the library during SmartEdit, Page Preview, and Publishing, reference the absolute path via #include virtual directive
<!IoRangePreExecute> ' Code in CMS template <!--#include virtual="/cms/plugins/asplib/transform.asp"--> <!/IoRangePreExecute>