<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                前面我們制作了一個留言本程序。不過因為用了和多echo來輸出HTML,代碼看起來很亂,而且這樣修改起來也比較麻煩。所以本章我們介紹Smarty模板引擎技術,同時把我們的留言本程序也變成應用Smarty模板的程序;還可以做到挺有意思的換皮膚功能。 ![](http://www.speedphp.com/static/image/filetype/rar.gif)?[guestbook6[1].rar](http://www.speedphp.com/forum.php?mod=attachment&aid=NzIyfDA5YjA1NjIyfDE0NDUyNDM3MTZ8NjMwOXwzNzIw)?(22.41 KB, 下載次數: 1629)? PHP模板引擎技術是一種將HTML模板與PHP代碼分離的技術,同時它提供了簡單的模板語法和數據傳遞的機制,使得我們可以更為簡便和安全地進行開發。 Smarty由PHP官方出品,是目前最成熟也是最廣泛使用的PHP模板引擎技術。 首先,我們要在根目錄中建立tpl(模板文件目錄)和tmp(臨時文件目錄),然后在index.php中配置一下: ~~~ <?php define("SP_PATH", dirname(__FILE__) . "/SpeedPHP"); define("APP_PATH", dirname(__FILE__) . "/guestbook"); $spConfig = array( "db" => array( 'host' => 'localhost', 'login' => 'root', 'password' => '', 'database' => 'teach' ), 'view' => array( 'enabled' => TRUE, // 開啟Smarty 'config' => array( 'template_dir' => APP_PATH . '/tpl', // 模板存放的目錄 'compile_dir' => APP_PATH . '/tmp', // 編譯的臨時目錄 'cache_dir' => APP_PATH . '/tmp', // 緩存的臨時目錄 'left_delimiter' => '<{', // smarty左限定符 'right_delimiter' => '}>' // smarty右限定符 ) ) ); require(SP_PATH . "/SpeedPHP.php"); spRun(); // SpeedPHP 3新特性 ?> ~~~ 我們加入了view的配置,這樣就可以使用smarty進行模板的開發了。同時我們將main.php去除了查看內容的頁面,讓內容和標題都在同一頁面顯示。 ~~~ <?php class main extends spController { function index() // 這里是首頁 { $guestbook = spClass("guestbook"); $this->results = $guestbook->findAll(); // 用$this->results可以將$guestbook->findAll()的值發送到模板上面,模板上可以用$results來使用該值。 $this->display("white/index.html"); // 顯示模板,這里使用的模板是根目錄/tpl/green/index.html。 } function write() // 這里是留言 { $guestbook = spClass("guestbook"); $newrow = array( // 這里制作新增記錄的值 'name' => $this->spArgs('name'), 'title' => $this->spArgs('title'), // 從spArgs獲取到表單提交上來的title 'contents' => $this->spArgs('contents') ); $guestbook->create($newrow); echo "留言成功,<a href=/index.php>返回</a>"; } } ?> ~~~ 我們下載了留言本的模板后,放到tpl目錄下: ![](https://box.kancloud.cn/2015-10-19_5624acad7b2d5.jpg) 瀏覽一下,我們的留言本已經變成了一個白色的留言本了。 > 在日常的團隊開發工作中,頁面模板首先是由美工人員制作出頁面圖,然后由前端網頁設計人員來根據頁面圖來進行模板的制作,程序員主要的工作是將模板及PHP程序對接。當然很多情況下網頁設計人員和程序員是同一個人,網頁設計人員主要的技能要求有:1.使用DREAMWEAVER等工具進行網頁設計能力。2.能手寫基本的HTML代碼。3.初步了解Smarty。4.熟悉JavaScript,Flash等相關的前端技術。 所以在我們的sp框架的教程中,頁面模板已經都是準備好的,至少是完整的頁面(但不包括Smarty代碼),這樣可以讓大家更專注于學習PHP開發。當然我們也將陸續推出一些關于前端網頁設計等相關技術的教程,供大家參考學習。 下面我們來學習一下怎么寫Smarty模板,打開tpl/white/index.html看看: ~~~ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn" lang="zh-cn"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>白色留言本</title> <link href="guestbook/tpl/white/css.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="main"> <h1><a href="#"><span>我的白色留言本</span></a></h1> <div class="boxin"> <h2 class="tutor">請填寫您的留言</h2> <form action="<{spUrl c=main a=write}>" method=POST> <p>您的名字:<input type=text name='name' size=40></p> <p>留言標題:<input type=text name='title' size=40></p> <p>留言內容:</p> <p><textarea name=contents cols=60 rows=6></textarea></p> <p><input type=submit value=" 提交 "></p> </form> <ul class="list"> <{foreach from=$results item=one}> <li><span><{$one.name}></span><a href="#"><{$one.title}></a> <{$one.contents}></li> <{/foreach}> </ul> </div> </div> <div id="footer" style="clear:both;"> <select name="選擇模板" onchange="location.href=this.options[this.selectedIndex].value;"><option> 模板選擇...</option> <option value="/?tpl=green">綠色風格</option><option value="/?tpl=blue">藍色風格</option><option value="/?tpl=green2">綠色風格2</option><option value="/?tpl=white">白色風格</option></select> </div> </div> </body> </html> ~~~ 我們可以分開兩部分進行了解,首先是表單部分: ~~~ <form action="<{spUrl c=main a=write}>" method=POST> <p>您的名字:<input type=text name='name' size=40></p> <p>留言標題:<input type=text name='title' size=40></p> <p>留言內容:</p> <p><textarea name=contents cols=60 rows=6></textarea></p> <p><input type=submit value=" 提交 "></p> </form> ~~~ 表單部分使用了spUrl來制作一個表單提交的地址: " method=POST> 我們在瀏覽器上面右鍵看源代碼,就可以看到: 也就是會生成地址:/index.php?c=man&a=write。 然后是循環輸出留言記錄部分: ~~~ <ul class="list"> <{foreach from=$results item=one}> <li><span><{$one.name}></span><a href="#"><{$one.title}></a> <{$one.contents}></li> <{/foreach}> </ul> ~~~ 這里使用了來循環$results,以輸出name,title和contents幾個值。 我們看看生成源代碼的結果: ~~~ <ul class="list"> <li><span>jake</span><a href="#">我是標題</a> 哈哈</li> <li><span>喜羊羊</span><a href="#">我是標題</a> 333</li> </ul> ~~~ 以上我們初步了解了sp框架應用Smarty模板技術的方法以及模板的基礎寫法,下面我們在代碼上面修改一下,讓程序變得更有趣。 main.php ~~~ <?php class main extends spController { function index() // 這里是首頁 { $tpl = $this->spArgs("tpl", "green"); // 這里接收tpl參數,使得模板變化,后面的green是tpl為空時的默認值。 $guestbook = spClass("guestbook"); $this->results = $guestbook->findAll(); $this->display("{$tpl}/index.html"); } function write() // 這里是留言 { $guestbook = spClass("guestbook"); $newrow = array( // 這里制作新增記錄的值 'name' => $this->spArgs('name'), 'title' => $this->spArgs('title'), // 從spArgs獲取到表單提交上來的title 'contents' => $this->spArgs('contents') ); $guestbook->create($newrow); echo "留言成功,<a href=/index.php>返回</a>"; } } ?> ~~~ 我們用spArgs來接收一個叫tpl的參數,它默認是green,也就是獲取green目錄下的模板。如果這參數變成了blue,那么就是獲取blue目錄下的模板了,這樣我們的留言本就可以換皮膚了。當然我們已經在模板上面加上了一個下拉選擇來讓訪問者選擇模板,這里我們提供了四套模板。 > “$this->名稱 = 值”的模板賦值方式,是使用PHP5的新特性——魔術函數來實現的。但是已定義控制器屬性的變量,是不具備傳值到模板的功能,請注意。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看