按页面浏览量排序,首先得统计浏览量,模版头部先定义一个可编辑区域:page_hits
<cms:template title='Blog' clonable='1'> ... <cms:editable label='Page hits' name='page_hits' type='text' search_type='integer' /> </cms:template>
然后在页面处统计并提交到数据库:
<cms:if k_is_page> <cms:no_cache /> <cms:php> // 识别机器人程序 global $CTX; if( isset($_SERVER['HTTP_USER_AGENT']) && preg_match('/bot|crawl|slurp|spider/i', $_SERVER['HTTP_USER_AGENT']) ){ $CTX->set( 'is_bot', '1', 'global' ); } </cms:php> <cms:if "<cms:not is_bot />"> <cms:db_persist _masterpage=k_template_name _page_id=k_page_id _mode='edit' page_hits="<cms:add page_hits '1' />" /> </cms:if> </cms:if>
调用的话就是:
<cms:pages masterpage='blog.php' orderby='page_hits' limit='5'> ... </cms:pages>
如果后台还想编辑此数据,使用自定义表单:
<cms:config_form_view> <cms:field 'page_hits'> <cms:show page_hits /> </cms:field> </cms:config_form_view>
注意2点:
1. 上面使用<cms: no_cache /> 禁用缓存,保证点击正常统计。
2. 需要开启databound-form插件,因为db_persist写入数据库需要用到。require_once( K_COUCH_DIR.'addons/data-bound-form/data-bound-form.php' );
在addon里kfunction.php里: