示例#1
0
文件: funstat.php 项目: thu0ng91/jmc
/**
 * 通用的点击统计处理
 * 
 * 先判断是否重复的点击、然后检查是否缓存点击,然后更新点击数
 * 
 * @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;
    }
}
示例#2
0
}
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'];