CodeCharge Studio |
All ASP PHP Perl ColdFusion Java C#.NET VB.NET |
This example shows how to work with a custom template block and custom template variables.
<table>
<tr>
<td>Server Variable</td>
<td>Value</td>
</tr>
<!-- BEGIN MyTable -->
<tr>
<td>{VariableName}</td>
<td>{VariableValue}</td>
</tr>
<!-- END MyTable -->
</table>
For a top level block which is not nested within another block:
Function Page_BeforeShow(Sender) Dim CustomBlock Dim strKey Set CustomBlock = Tpl.Block("MyTable") For Each strKey In Request.ServerVariables CustomBlock.Variable("VariableName") = strKey CustomBlock.Variable("VariableValue") = Request.ServerVariables(strKey) CustomBlock.Parse ccsParseAccumulate Next End Function
For a custom block located inside another block (e.g. Mytable block inside Row block inside Tasks block):
Function Tasks_BeforeShowRow(Sender)
Dim CustomBlock
Dim strKey
Set CustomBlock = Tasks.TemplateBlock.Block("Row").Block("MyTable")
CustomBlock.Clear
For Each strKey In Request.ServerVariables
CustomBlock.Variable("VariableName") = strKey
CustomBlock.Variable("VariableValue") = Request.ServerVariables(strKey)
CustomBlock.Parse ccsParseAccumulate
Next
End Function
Note: If you need to parse the block only once you can use 'ccsParseOverwrite' instead of 'ccsParseAccumulate'.
For a top level block which is not nested within another block:
function Page_BeforeShow(& $sender) {
global $HTTP_SERVER_VARS;
global $Tpl;
foreach($HTTP_SERVER_VARS as $strKey => $value) {
$Tpl->SetVar("VariableName",$strKey);
$Tpl->SetVar("VariableValue",$value);
$Tpl->Parse("MyTable",True);
}
}
For a custom block located inside another block (e.g. Mytable block inside Row block inside Tasks block):
function Tasks_BeforeShowRow(& $sender) {
global $HTTP_SERVER_VARS;
global $Tpl;
$Tpl->SetBlockVar("MyTable","");
foreach($HTTP_SERVER_VARS as $strKey => $value) {
$Tpl->SetVar("VariableName",$strKey);
$Tpl->SetVar("VariableValue",$value);
$Tpl->Parse("MyTable",True);
}
}For a top level block which is not nested within another block:
sub Page_BeforeShow() {
while (($key,$value) = each %ENV) {
$Tpl->setvar("VariableName",$key);
$Tpl->setvar("VariableValue",$value);
$Tpl->parse("MyTable","true");
}
}
For a custom block located inside another block (e.g. Mytable block inside Row block inside Tasks block):
sub Tasks_BeforeShowRow() {
$Tpl->setblockvar("MyTable","");
while (($key,$value) = each %ENV) {
$Tpl->setvar("VariableName",$key);
$Tpl->setvar("VariableValue",$value);
$Tpl->parse("MyTable","true");
}
}For a top level block which is not nested within another block:
<!--Page_BeforeShow --->
<CFLOOP LIST="#StructKeyList(CGI)#" INDEX="item">
<CFMODULE Template="CCSetVar.cfm" Var="@VariableName" Value="#item#">
<CFMODULE Template="CCSetVar.cfm" Var="@VariableValue" Value="#StructFind(CGI, item)#">
<CFMODULE Template="CCParse.cfm" mode="Parse" blockName="MyTable" bAccumulate="True">
</CFLOOP>
For a custom block located inside another block (e.g. Mytable block inside Row block inside Tasks block):
<!--Tasks_BeforeShowRow --->
<CFMODULE Template="CCSetVar.cfm" Var="#strBlockToParse#/Row/MyRow" Value="">
<CFLOOP LIST="#StructKeyList(CGI)#" INDEX="item">
<CFMODULE Template="CCSetVar.cfm" Var="#strBlockToParse#/Row/MyRow/@VariableName1" Value="#item#">
<CFMODULE Template="CCSetVar.cfm" Var="#strBlockToParse#/Row/MyRow/@VariableValue1" Value="#StructFind(CGI, item)#">
<CFMODULE Template="CCParse.cfm" mode="Parse" blockName="#strBlockToParse#/Row/MyRow" bAccumulate="True">
</CFLOOP>
For a top level block which is not nested within another block:
//Page_BeforeShow
//The data used for output into the template variables.
Enumeration enum = StringUtils.split("1;111;2;222;3;333;4;444");
Template tmpl = e.getPage().getTemplate();
String currentPath = e.getPage().getCurrentPath();
while (enum.hasMoreElements()) {
tmpl.setVar(currentPath+ "/MyTable/@VariableName", (String) enum.nextElement());
if (enum.hasMoreElements()) {
tmpl.setVar(currentPath+ "/MyTable/@VariableValue", (String) enum.nextElement());
}
tmpl.parse(currentPath+ "/MyTable");
}
For a custom block located inside another block (e.g. Mytable block inside Row block inside Tasks block):
// Tasks_BeforeShowRow
//The data used for output into the template variables.
Enumeration enum = StringUtils.split("5;555;6;666;7;777;8;888");
Template tmpl = e.getPage().getTemplate();
String currentPath = e.getPage().getCurrentPath();
tmpl.setVar(currentPath+ "/Row/MyTable");
while (enum.hasMoreElements()) {
tmpl.setVar(currentPath+ "/Row/MyTable/@VariableName", (String) enum.nextElement());
if (enum.hasMoreElements()) {
tmpl.setVar(currentPath+ "/Row/MyTable/@VariableValue", (String) enum.nextElement());
}
tmpl.parse(currentPath+ "/Row/MyTable");
}