昨天客戶讓做文章置頂的功能。自己以前沒做過。靠著同事的指點才做了出來。本來挺簡單的事情,被自己搞了好久。自己真的缺乏對程式的理解。還是寫篇部落格記錄一下吧。
第一步,在文章表裡面建兩個欄位,用於做置頂功能。一個是top欄位,timestamp類型,預設選“定義”,用於儲存置頂操作的時間;還有一個flag欄位,int類型,用於判斷是否置頂,置頂為1,否則為0。。
第二步,模板頁面修改。列表選項裡面加置頂列,下面對應的行寫如下代碼:
<td class="center"> {{if $logs[data].flag}} <a href="javascript:void(0);" onclick="istop('{{$logs[data].id}}',0)">取消置頂</a>{{else}} <a href="javascript:void(0);" onclick="istop('{{$logs[data].id}}',1)">置頂</a>{{/if}}</td>
就是用flag判斷是否置頂了。
頁面對應的置頂js:
function istop(id,flag){
$.ajax({
type: "POST",
url: "?m={{'article'|encrypt}}&a=savePost",
data: "id="+id+"&flag="+flag,
dataType:"json",
success: function(msg){
if(msg.status == "true")
{
window.location= '?m={{'article'|encrypt}}';
}
else
{
alert(msg.message);
}
}
});
}
第三步,程式裡只要稍作修改即可。先按是否置頂排序,再按置頂時間排序,再按預設的排序。
$sql .=" ORDER BY flag DESC,top DESC,id DESC ";
(還記得我們添加的欄位嗎?)
這樣就完成了文章置頂的功能。