zoukankan      html  css  js  c++  java
  • Smarty 模板布局继承

    Smarty 模板继承

    在覆盖父模板的{block}块以外的地方, 子模板不能定义任何内容。任何在{block}以外的 内容都会被自动忽略。

    在子模板和父模板中的{block}内容,可以通过 append 和 prepend来进行合并。 {block}的选项,和 {$smarty.block.parent} 或 {$smarty.block.child}会持有这些内容。

    布局继承使用特点

    1.布局页面可以有许多{block},子级页面也可以有许多block,他们通过name属性进行关联

    2子级页面除了{extend} 和{block}其它内容不给显示,

    3布局页面的{block}可以有默认内容,子级页面不实现就直接显示,实现覆盖

    4布局的{block}可以彼此嵌套,子级实现可以有针对性实现

    5{$smarty.block.child}布局可以调用子级内容

      {$smarty.block.child}子级页面可以调用父级页面内容

    父模板

    <html>
    <head>
      <title>{block name=title}默认页面标题{/block}</title>
      {block name=head}{/block}
    </head>
    <body>
    {block name=body}{/block}
    </body>
    </html>

    子模板

    {extends file='layout.tpl'}
    {block name=head}
      <link href="/css/mypage.css" rel="stylesheet" type="text/css"/>
      <script src="/js/mypage.js"></script>
    {/block}

    孙模板

    {extends file='myproject.tpl'} 
    {block name=title}我的页面标题{/block} 
    {block name=head} <link href="/css/mypage.css" rel="stylesheet" type="text/css"/> <script src="/js/mypage.js"></script> {/block} 
    {block name=body}我的HTML页面内容在这里{/block}

    显示上面的模板

    $smarty->display('mypage.tpl');

    页面将输出

    <html> <head> 
    <title>我的页面标题</title> 
    <link href="/css/mypage.css" rel="stylesheet" type="text/css"/> 
    <script src="/js/mypage.js"></script> 
    </head>
     <body>
    我的HTML页面内容在这里 
    </body> 
    </html>
  • 相关阅读:
    以相同的條件,把多行記錄的某些欄位串在一起
    拆分記錄
    消息推送
    Web API数据传输加密
    OData 带更新的实例,并能取得元数据格式类型
    在ASP.NET Web API中使用OData
    浏览器根对象window之screen
    浏览器从输入到输出的过程与原理五之网络通信和三次握手
    浏览器从输入到输出的过程与原理四之互联网
    浏览器从输入到输出的过程与原理三之DNS
  • 原文地址:https://www.cnblogs.com/zoubizhici/p/5706810.html
Copyright © 2011-2022 走看看