这是我制作的一个方法(我假设我们是在为一个名为“blog.php”的模板构建)-
1. 在模板中定义以下可编辑区域
<cms:template title='Blog' clonable='1'> .. .. <cms:editable label='Page hits' name='page_hits' type='text' search_type='integer' /> </cms:template>
2. 将以下代码置入模板的页面视图中
<cms:if k_is_page> <cms:no_cache /> <cms:php> // identify bots 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>
上面的代码只是每次访问页面时,点击计数器增加1(尽量避免机器人使用)。
请注意,我们使用cms:no_cache以防止页面浏览量被缓存,因为显然代码无法正常工作。
在前端,我们可以使用带有cms:pages标签的“page_hits”可编辑区域,例如以下内容将显示浏览量最高的五篇博客文章-
<cms:pages masterpage='blog.php' orderby='page_hits' limit='5'> ... </cms:pages>