/** * 通用的点击统计处理 * * 先判断是否重复的点击、然后检查是否缓存点击,然后更新点击数 * * @param int $id 点击对象ID * @param string $table 点击对象表名 * @param string $fieldstat 点击数的字段名 * @param string $fieldid ID的字段名 * @param object $query 查询对象,不存在会自动创建 * @param int $addnum 每次点击加几个点击数,默认1 * @access public * @return bool */ function jieqi_visit_stat($id, $table, $fieldstat, $fieldid, $query = NULL, $addnum = 1) { if (jieqi_visit_valid($id, $table . '_' . $fieldstat)) { if ($ids = jieqi_visit_ids($id, $table . '_' . $fieldstat)) { global $query; if (!is_a($query, 'JieqiQueryHandler')) { jieqi_includedb(); $query = JieqiQueryHandler::getInstance('JieqiQueryHandler'); } foreach ($ids as $k => $v) { $v['visitnum'] = intval($v['visitnum'] * $addnum); $sql = 'UPDATE ' . $table . ' SET ' . $fieldstat . '=' . $fieldstat . '+' . $v['visitnum'] . ' WHERE ' . $fieldid . '=' . intval($k); $query->execute($sql); } } return true; } else { return false; } }
} if ($addnum > 0) { if (!empty($_REQUEST['id']) && is_numeric($_REQUEST['id'])) { //载入统计处理函数 include_once JIEQI_ROOT_PATH . '/include/funstat.php'; //检查是否有效的点击 if (jieqi_visit_valid($_REQUEST['id'], 'article_articleviews')) { if (!is_object($article)) { include_once $jieqiModules['article']['path'] . '/class/article.php'; $article_handler =& JieqiArticleHandler::getInstance('JieqiArticleHandler'); $article = $article_handler->get($_REQUEST['id']); } if (is_object($article)) { $lastvisit = $article->getVar('lastvisit', 'n'); //缓存id,或者返回id数组 if ($ids = jieqi_visit_ids($_REQUEST['id'], 'article_articleviews', $lastvisit)) { $nowdate = date('Y-m-d', JIEQI_NOW_TIME); $nowweek = date('w', JIEQI_NOW_TIME); if ($nowweek == 0) { $nowweek = 7; } foreach ($ids as $k => $v) { $lastdate = date('Y-m-d', $v['lastvisit']); $lastweek = date('w', $v['lastvisit']); if ($lastweek == 0) { $lastweek = 7; } $v['visitnum'] = intval($v['visitnum'] * $addnum); $allstr = 'allvisit=allvisit+' . $v['visitnum']; if ($nowdate == $lastdate || JIEQI_NOW_TIME < $v['lastvisit']) { $daystr = 'dayvisit=dayvisit+' . $v['visitnum'];