今天在偶然使用到phpcms v9中的get標簽,發現如下的寫法都失效了,最初,逐日者寫的標簽如下:
- {get sql="select * from zty_category where parentid=22 or parentid=23 or parentid=52 order by allclicks desc" rows="8"}
- ...{$r[catname]}...{$r[allclicks]}...
- {/get}
由于本人沒有背記這些標簽嚴格格式的習慣--!上網上一搜,前幾頁給出的大部分都是如上的格式,結果系統直接不解析,原文返回.
現在網上流傳的很多phpcms的get標簽的使用方法還是這種形式的,看來這樣寫已經不完全符合現在的版本了,后來進過查閱網上資料,有發現了在get前面加上pc標記的方式,如下:
- {pc:get sql="select * from zty_category where parentid=22 or parentid=23 or parentid=52 order by allclicks desc" rows="8"}
- ...{$r[catname]}...{$r[allclicks]}...
- {/pc}
這次系統解析了,但是不返回任何數據,這次‘逐日者’發飆了,直接到/caches/caches_template/...對應的模板緩存文件目錄下找到了當前模板的緩存內容,找到對應此標簽的解析內容如下:
- <ul>
- /</?php if(defined('IN_ADMIN') && !defined('HTML')) /{echo "<div class="admin_piao" pc_action="get" data="op=get&tag_md5=95dd821129f80e3f0caf981a9f215a90&sql=select+*+from+zty_category+where+parentid=22+or+parentid=23+or+parentid=52+order+by+allclicks+desc&rows=8"><a href="javascript:void(0)" class="admin_piao_edit">編輯</a& gt;";}pc_base::load_sys_class("get_model", "model", 0);$get_db = new get_model();$r = $get_db->sql_query("select * from zty_category where parentid=22 or parentid=23 or parentid=52 order by allclicks desc LIMIT 20");while(($s = $get_db->fetch_next()) != false) {$a[] = $s;}$data = $a;unset($a);/?/>
- <li><a href="<?php echo $r['url'];?>"><img src="<?php echo $r['image'];?>" width="130" height="170" alt="<?php echo $r['catname'];?>"/></a><a href="<?php echo $r['url'];?>"><?php echo $r['catname'];?>(<?php echo $r['allclicks'];?>clicks)</a></li>
- <?php if(defined('IN_ADMIN') && !defined('HTML')) {echo '</div>';}?>
- </ul> //Vevb.com
注意上面代碼,由此可以看出,執行sql命令后返回的數據是存到了$data這個數組中去了,由此一切到明了了,這樣我們應該用{loop}{/loop}標簽將$data數組遍歷一下,循環調用我們的需要的數據條,由此,正確的調用方式如下:
- {pc:get sql="select * from zty_category where parentid=22 or parentid=23 or parentid=52 order by allclicks desc" rows="8"} {loop $data $r}
- ...{$r[catname]}...({$r[allclicks]}clicks)...
- {/loop} {/pc}
后來逐日者找到了官方提供的phpcms v9 get標簽的格式如下:
- {pc:get sql="SELECT * FROM phpcms_member" cache="3600" page="$page" dbsource="discuz" return="data"}
- <ul>
- {loop $data $key $val}
- {$val[username]}<br />
- {/loop}
- </ul>
- {$pages}
- {/pc}
dbsource:數據源;
return:返回數據到哪個變量;
page:是否有翻頁;
cache:緩存時間;
新聞熱點
疑難解答