首页新闻招聘找找看知识库
  • 浏览:1665 2012-01-10 12:21 来自 danhuoren

    最近学习DNN6.X,中文资料不全,只好硬着头皮翻译英语文档来逐步提升知识。由于英语很烂,有不当之处请大家指出,以免误导英语比我还烂的兄弟们

    本文翻译自http://www.dotnetnuke.com/Resources/Wiki/Page/DDRMenu-token-templates.aspx

     

    本页描述DDRMenu中token模板处理程序是如何工作的。DNN的所有版本都支持基于token的模板,并提供一个简

    单的模板选项(如果不需要需要更高的编程能力的XSLT或Razor模板的话 

    内容目录

     标记(token)
       指令(
    Directives)
       范例(
    Example)
       相关内容(
    Related content)

    标记(Tokens)»

    当前全套的可用到的每个菜单节点(页面)的标记有:

    1. NODE - 一个页面
    2. ID - 页面ID
    3. TEXT - 页面的名称(即通常应在菜单中显示的名称)
    4. TITLE - 完整的页面标题
    5. URL - 页面的URL
    6. ENABLED - -页面是否启用
    7. SELECTED - -是否选中页面
    8. BREADCRUMB - Whether the page is in the current breadcrumb
    9. SEPARATOR - 节点是否是一个分割符
    10. ICON - 页面图标(ICON)的 URL
    11. LARGEIMAGE - 大页面图标的URL(只适用于DNN6 )
    12. FIRST - 在其同一级中页面是否是排在第一个
    13. LAST - 在其同一级中页是否是排在最后
    14. ONLY - 在其同一级中页面是否是唯一一个
    15. DEPTH - 当前页的菜单结构的深度(从0开始 )
    16. KEYWORDS - 当前页面中定义的关键字
    17. DESCRIPTION - 当前页面的描述

    你可以在DumpXML模板输出看到有价值的例子

    指令(Directives»

    下列指令在标记(token)模板中是可用的:

    [=TOKEN]

    简单地输出给定的标记(token)值.

    [?TOKEN]...[/?]

    只输出被定义的标记(token) ,这通常被使用成[?NODE]...[/?]去输出一个有子节点的节点,或者只有当前节点被选中时被使用成[?SELECTED]...[/?]等等去输出一些东西,你也可以使用 [?!TOKEN]...[/?](如果没有定义标记(token)的输出)或者[?TOKEN]...[?ELSE]...[/?]。

    [*TOKEN]...[/*]

    输出每个给定标记的内容。事实上这意味着用[*NODE]...[/*]为每一个同级菜单节点产生输出。

    [*>TOKEN-MODE]

    输出每个给定的标记产生的一个子模板的内容。可选的mode 参数允许你指定一个给定的标记的多个子模板,例如,您可以为顶级菜单节点定义[>NODE-TOP],为子菜单定义[>NODE-SUB] 。

    [>TOKEN-MODE]...[/>]

    定义子模板(使用上述指令调用)。

    示例(Example)»

    一个很简单的输出带样式的LI无序列表(如:

    )例子可能看起来像这样:

     

     

    <ul>
    [*>NODE]
    ul>

    [>NODE]
    <li class="[?FIRST]first[/?][?LAST] last[/?][?SELECTED] selected[/?]">
    [?ENABLED]
    <a href="[=URL]">[=TEXT]</a>
    [?ELSE]
    [=TEXT]
    [/?]
    [?NODE]
    <ul>
    [*>NODE]
    </
    ul>
    [/?]
    </
    li>
    [/>]

    要看正在使用中的例子,请下载: DDR Menu starter templates

    另外在附一个DNN6.1中自带的菜单例子Website\Portals\_default\Skins\DarkKnight\DNNStandard中的ULTokens.txt:

     

    <div id="dnnMenu">
    <ul class="topLevel">
    [*>NODE-TOP]
    </
    ul>
    </div>
    [>NODE-TOP]
    <li class="item[?FIRST] first[/?][?LAST] last[/?][?SELECTED] selected[/?][?NODE] haschild[/?]">
    [?ENABLED]
    <a href="[=URL]"><div>[=TEXT]</div></a>
    [?ELSE]
    <a><div>[=TEXT]</div></a>
    [/?]
    [?NODE]
    <div class="subLevel">
    <ul>
    [*>NODE]
    </
    ul>
    </
    div>
    [/?]
    </
    li>
    [/>]
    [>NODE]
    <li class="item[?FIRST] first[/?][?LAST] last[/?][?SELECTED] selected[/?][?NODE] haschild[/?]">
    [?ENABLED]
    <a href="[=URL]"><div><img src="[?ICON][=ICON][?ELSE]/portals/_default/skins/darkknight/dnnstandard/images/StandardLI.png[/?]" /><span>[=TEXT]</span></div></a>
    [?ELSE]
    <a><div><img src="[?ICON][=ICON][?ELSE]/portals/_default/skins/darkknight/dnnstandard/images/StandardLI.png[/?]" /><span>[=TEXT]</span></div></a>
    [/?]
    [?NODE]
    <div class="subLevelRight">
    <ul>
    [*>NODE]
    </
    ul>
    </
    div>
    [/?]
    </
    li>
    [/>]

    外表看起来是这样的:

     

登录后才能评论,请先登录注册