很多cms 中有很多 標簽, 商品標簽 文章標簽 列表標簽 幾十個標簽, 讓開發者頭疼, 難記, TPshop開發者考慮到這點, 用了一個萬能標簽, 開發者非常方便實用
TPshop萬能標簽只要記住這個標簽全站可以通用
示例一
<tpshop sql="select * from `tp_article` where cat_id = 5 order by article_id desc limit 4" item="v" key="k" ><li><a href="">{$v['title']}</a></li></tpshop>
示例二
<tpshop sql="select * from `tp_goods_category` where `parent_id` = '$v[id]' limit 6" key="k2" item='v2'><a class="list_big_o ma-le-30" href="{:U('Home/Index/goodsList',array('id'=>$v2[id]))}">{$v2['name']}<i>></i></a></tpshop>
數組 '$v[id]' 形式, sql語句外面必須 雙引號 要區分開來, 要寫成 '$v[id]' 而不能寫成 $v['id'] $v["id"] {$v[id]} 中括號[ ]里面不能有單引號 雙引號 外面不能有 { } 大括號.
/*如上例子看 傳sql語句非常方便 可以任意靈活的寫sql, 但需要注意 一點 thinkphp 里面標簽 不能用特殊字符跟標簽沖突, 比如<tpshop sql="select * from `tp_goods` where `goods_id` > 0 " key="k2" item='v2'> 注意這里的 goods_id > 0 的 ">" 符號跟 thinkphp魔板標簽的 <if> <foreach> <tpshop> 沖突, 所以thinkphp 里面使用 字符替代 比如 <if condition="5 > 3" >寫成 <if condition="5 gt 3" > 用gt 表示 > 大於號. 其他符號也一樣gt 表示 > 大於egt 表示 >= 大於等於lt 表示 < 小於
elt 表示 <= 小於等於
上面語句改寫成 <tpshop sql="select * from `tp_goods` where `goods_id` gt 0 " key="k2" item='v2'>在TPshop 3.1.3 起 加入了 t="3600" 參數, t 表示針對這個標簽設置的緩存時間 秒為單位 如果不指定默認使用 index.php 配置的 TPSHOP_CACHE_TIME 緩存時間,*/
廣告標簽示例
<adv limit="5" item="v" pid="2"><li><a href="{$v.ad_link}" <if condition="$v['target'] eq 1">target="_blank"</if>><img src="{$v[ad_code]}" width="980" height="400" title="{$v[title]}" style="{$v[style]}"/></a></li></adv>limit 表示獲取多少條 item 是遍歷時的每一項元素, pid是廣告位置id<img src="{$v[ad_code]}" 圖片路徑 title="{$v[title]}" 圖片標題 style="{$v[style]}"/> 設置{$v[style]}在后台更換廣告時可以看到廣告是半透明的效果, <if condition="$v['target'] eq 1">target="_blank"</if>表示點擊廣告時是否新窗口打開新添加一個廣告位很簡單,pid自己寫一個數據庫中不存在的 會數據庫自動插入一個廣告位置。不需要手動添加,寫pid時 最好以前綴開頭來區分, 比如 index.html首頁廣告位都一 100 101 102 ... 100開頭商品列表頁面的廣告id 都以 200 201 202 203 都以200開頭, 這樣廣告位置才不容易混淆然后后台可以預覽點擊更換廣告。