⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mtdb_base.php

📁 1. 记录每个帖子的访问人情况
💻 PHP
📖 第 1 页 / 共 3 页
字号:
            $daterange = '';        }        if ($limit > 0) {            $limit = "limit $limit";        } else {            $limit = '';        }        if ($cat_name = isset($args['category']) ? $args['category'] : null) {            $cats = preg_split('/\s+(AND|OR)\s+/', $cat_name);            $is_and = preg_match('/\sAND\s/', $args['category']);            $name_list = '';            foreach ($cats as $cat) {                if ($name_list != '') $name_list .= ',';                $name_list .= "'".$this->escape($cat)."'";            }            $sql = "                select $distinct mt_entry.*, mt_category.*, mt_placement.*, mt_trackback.*, mt_author.*                  from mt_placement, mt_category, mt_entry            left outer join mt_trackback on trackback_entry_id = entry_id,                       mt_author            $comment_join                 where category_id = placement_category_id                   $blog_filter                   $entry_filter                   and entry_id = placement_entry_id                   and entry_status = 2                   and entry_author_id = author_id                   $author_filter                   and category_label in ($name_list)                   $daterange                   $day_limit                 order by $sort_field $order                 $limit $offset            ";        } else {            $sql = "                select $distinct mt_entry.*, mt_placement.*, mt_trackback.*, mt_author.*                  from mt_entry            left outer join mt_placement on placement_entry_id = entry_id and placement_is_primary = 1            left outer join mt_trackback on trackback_entry_id = entry_id,                       mt_author            $comment_join                 where entry_status = 2                   $blog_filter                   $entry_filter                   and entry_author_id = author_id                   $author_filter                   $daterange                   $day_limit                 order by $sort_field $order                 $limit $offset            ";        }        $entries = $this->get_results($sql, ARRAY_A);        $id_list = array();        $last_date = '';        $seen = array();        if (is_array($entries)) {            foreach ($entries as $key => $entry) {                if (isset($seen[$entry['entry_id']]))                    continue;                $id_list[] = $entry['entry_id'];                $entries[$key]['entry_created_on'] = preg_replace('/[^0-9]/', '', $entries[$key]['entry_created_on']);                $entries[$key]['EntriesHeader'] = $key == 0;                $entries[$key]['EntriesFooter'] = $key == count($entries)-1;                $entry_date = substr($entry['entry_created_on'],0,10);                $entries[$key]['DateHeader'] = 0;                $entries[$key]['DateFooter'] = 0;                $entries[$key]['EntryBreak'] = 0;                if ($last_date != $entry_date) {                    $entries[$key]['DateHeader'] = 1;                    $entries[$key]['DateFooter'] = $key > 0;                    $last_date = $entry_date;                }                if ($key == count($entries)-1) {                    $entries[$key]['DateFooter'] = 1;                } else {                    $entries[$key]['DateFooter'] = $last_date != substr($entries[$key+1]['entry_created_on'],0,10);                }                if (!$entries[$key]['DateFooter']) {                    if (!$entries[$key]['EntriesFooter']) {                        $entries[$key]['EntryBreak'] = 1;                    }                }                $seen[$entries[$key]['entry_id']] = 1;            }        }        # pre-cache comment counts and categories for these entries        $this->cache_comment_counts($id_list);        $this->cache_ping_counts($id_list);        $this->cache_categories($id_list);        $this->cache_permalinks($id_list);        return $entries;    }/*    function now_ts($blog) {        $tsa = offset_time_list(time(), $blog);        $now = sprintf("%04d%02d%02d%02d%02d%02d", $tsa[5] + 1900, $tsa[4] + 1, $tsa[3], $tsa[2], $tsa[1], $tsa[0]);        return $now;    }*/    function &fetch_categories($args) {        # load categories        if (isset($args['blog_id'])) {            $blog_filter = 'and category_blog_id = '.intval($args['blog_id']);        }        if (isset($args['category_id'])) {            if (isset($args['children'])) {                if (isset($this->_cat_id_cache['c'.$args['category_id']])) {                    $cat = $this->_cat_id_cache['c'.$args['category_id']];                    if (isset($cat['_children'])) {                        $children = $cat['_children'];                        if ($children === false) {                            return null;                        } else {                            return $children;                        }                    }                }                $cat_filter = 'and category_parent = '.intval($args['category_id']);            } else {                $cat_filter = 'and category_id = '.intval($args['category_id']);                $limit = 1;            }        } elseif (isset($args['label'])) {            $cat_filter = 'and category_label = \''.$this->escape($args['label']).'\'';            $limit = 1;        } else {            $limit = $args['lastn'];            if (isset($args['sort_order'])) {                if ($args['sort_order'] == 'ascend') {                    $sort_order = 'asc';                } elseif ($args['sort_order'] == 'descend') {                    $sort_order = 'desc';                }            } else {                $sort_order = '';            }        }        if ($args['show_empty']) {            $join_clause = 'left outer join mt_placement on placement_category_id = category_id left outer join mt_entry on entry_id = placement_entry_id and entry_status = 2';            if (isset($args['entry_id'])) {                $join_clause .= ' and entry_id = ' . intval($args['entry_id']);            }        } else {            $join_clause = ', mt_placement, mt_entry';            $cat_filter .= ' and placement_category_id = category_id and entry_id = placement_entry_id';            if (isset($args['entry_id'])) {                $cat_filter .= ' and entry_id = ' . intval($args['entry_id']);            }        }        if ($limit > 0) {            $limit = "limit $limit";        } else {            $limit = '';        }        $sql = "            select mt_category.*, mt_trackback.*, count(mt_placement.placement_id) as category_count              from mt_category $join_clause                   left outer join mt_trackback on trackback_category_id = category_id             where 1 = 1                   $cat_filter                   $blog_filter             group by category_id             order by category_label $sort_order             $limit        ";        if (empty($cat_filter) && (!isset($args['entry_id']))) {            $args['top_level_categories'] = 1;        }        $categories = $this->get_results($sql, ARRAY_A);        if (!$categories) {            return null;        }        if (isset($args['children']) && isset($parent_cat)) {            $parent_cat['_children'] =& $categories;        } else {            $id_list = array();            foreach ($categories as $cid => $cat) {                $cat_id = $cat['category_id'];                if (isset($args['top_level_categories']) || !isset($this->_cat_id_cache['c'.$cat_id])) {                    $id_list[] = $cat_id;                    $this->_cat_id_cache['c'.$cat_id] = $categories[$cid];                }                if (isset($args['top_level_categories'])) {                    $this->_cat_id_cache['c'.$cat_id]['_children'] = false;                }            }            $top_cats = array();            foreach ($categories as $cid => $cat) {                if ($cat['category_parent'] > 0) {                    if (!isset($categories[$cid]['category_parent'])) {                        $parent_id = $cat['category_parent'];                        if (isset($this->_cat_id_cache['c'.$parent_id])) {                            if (isset($args['top_level_categories'])) {                                $parent =& $this->fetch_category($categories[$cid]['category_parent']);                                if (!isset($parent['_children']) || ($parent['_children'] === false)) {                                    $parent['_children'] = array(&$categories[$cid]);                                } else {                                    $parent['_children'][] = $categories[$cid];                                }                            }                        }                    } else {                        if (isset($args['top_level_categories'])) {                            $parent =& $this->fetch_category($categories[$cid]['category_parent']);                            $parent['_children'][] = $categories[$cid];                        }                    }                }                if ((!$cat['category_parent']) && ($args['top_level_categories'])) {                    $top_cats[] = $categories[$cid];                }            }            $this->cache_category_links($id_list);            if ($args['top_level_categories']) {                return $top_cats;            }        }        return $categories;    }    function &fetch_entry($entry_id) {        if (isset($this->_entry_id_cache['entry_id'])) {            return $this->_entry_id_cache[$entry_id];        }        list($entry) = $this->fetch_entries(array('entry_id' => $entry_id));        $this->_entry_id_cache[$entry_id] = $entry;        return $entry;    }    function &fetch_author($author_id) {        if (isset($this->_author_id_cache[$author_id])) {            return $this->_author_id_cache[$author_id];        }        $author = $this->get_row("            select *              from mt_author             where author_id=$author_id        ", ARRAY_A);        $this->_author_id_cache[$author_id] = $author;        return $author;    }    function cache_permalinks(&$entry_list) {        $id_list = '';        foreach ($entry_list as $entry_id) {            if (!isset($this->_entry_link_cache[$entry_id.';Individual'])) {                $id_list .= ','.$entry_id;                $this->_entry_link_cache[$entry_id.';Individual'] = '';             }        }        if (empty($id_list))            return;        $id_list = substr($id_list, 1);        $query = "            select fileinfo_entry_id, fileinfo_url, blog_site_url              from mt_fileinfo, mt_templatemap, mt_blog             where fileinfo_entry_id in ($id_list)               and fileinfo_archive_type = 'Individual'               and blog_id = fileinfo_blog_id               and templatemap_id = fileinfo_templatemap_id               and templatemap_is_preferred = 1        ";        $results = $this->get_results($query, ARRAY_N);        if ($results) {            foreach ($results as $row) {                $blog_url = $row[2];                $blog_url = preg_replace('!(https?://(?:[^/]+))/.*!', '$1', $blog_url);                $url = $blog_url . $row[1];                $this->_entry_link_cache[$row[0].';Individual'] = $url;            }        }    }    function cache_category_links(&$cat_list) {        $id_list = '';        foreach ($cat_list as $cat_id) {            if (!isset($this->_cat_link_cache[$cat_id])) {                $id_list .= ','.$cat_id;                $this->_cat_link_cache[$cat_id] = '';            }        }        if (empty($id_list))            return;        $id_list = substr($id_list, 1);        $query = "            select fileinfo_category_id, fileinfo_url, blog_site_url              from mt_fileinfo, mt_templatemap, mt_blog             where fileinfo_category_id in ($id_list)               and fileinfo_archive_type = 'Category'               and blog_id = fileinfo_blog_id               and templatemap_id = fileinfo_templatemap_id               and templatemap_is_preferred = 1        ";        $results = $this->get_results($query, ARRAY_N);        if ($results) {            foreach ($results as $row) {                $blog_url = $row[2];                $blog_url = preg_replace('!(https?://(?:[^/]+))/.*!', '$1', $blog_url);                $url = $blog_url . $row[1];                $this->_cat_link_cache[$row[0]] = $url;            }        }    }    function cache_comment_counts(&$entry_list) {        $id_list = '';        foreach ($entry_list as $entry_id) {            if (!isset($this->_comment_count_cache[$entry_id])) {                $id_list .= ','.$entry_id;            }        }        if (empty($id_list))            return;        $id_list = substr($id_list, 1);        $query = "            select comment_entry_id, count(*)              from mt_comment             where comment_entry_id in ($id_list)               and comment_visible = 1             group by comment_entry_id        ";        $results = $this->get_results($query, ARRAY_N);        foreach ($entry_list as $entry_id) {            $this->_comment_count_cache[$entry_id] = 0;        }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -