Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[插件] [整合美化]首页四格+社区之星后台控制全Cache版 FOR DZ4.1正式版[6.1更新]

[复制链接]
hhkkggll 发表于 2006-6-22 13:59:06 | 显示全部楼层
原帖由 mousecat 于 2006-6-22 01:54 发表


我感觉是和cache有关的


請幫手看看,那裡出錯,因我是新手,找不到頭緒!!

  1. <?php

  2. /*
  3.         [Discuz!] (C)2001-2006 Comsenz Inc.
  4.         This is NOT a freeware, use is subject to license terms

  5.         $RCSfile: cache.func.php,v $
  6.         $Revision: 1.22.2.3 $
  7.         $Date: 2006/03/07 06:44:55 $
  8. */

  9. define('DISCUZ_KERNEL_VERSION', '4.1.0');
  10. define('DISCUZ_KERNEL_RELEASE', '20060303');

  11. if(isset($_GET['kernel_version'])) {
  12.         exit('Crossday Discuz! Board<br>Developed by Comsenz Inc.<br><br>Version: '.DISCUZ_KERNEL_VERSION.'<br>Release: '.DISCUZ_KERNEL_RELEASE);
  13. } elseif(!defined('IN_DISCUZ')) {
  14.         exit('Access Denied');
  15. }

  16. function arrayeval($array, $level = 0) {
  17.         $space = '';
  18.         for($i = 0; $i <= $level; $i++) {
  19.                 $space .= "\t";
  20.         }
  21.         $evaluate = "Array\n$space(\n";
  22.         $comma = $space;
  23.         foreach($array as $key => $val) {
  24.                 $key = is_string($key) ? '\''.addcslashes($key, '\'\\').'\'' : $key;
  25.                 $val = !is_array($val) && (!preg_match("/^\-?[1-9]\d*$/", $val) || strlen($val) > 12) ? '\''.addcslashes($val, '\'\\').'\'' : $val;
  26.                 if(is_array($val)) {
  27.                         $evaluate .= "$comma$key => ".arrayeval($val, $level + 1);
  28.                 } else {
  29.                         $evaluate .= "$comma$key => $val";
  30.                 }
  31.                 $comma = ",\n$space";
  32.         }
  33.         $evaluate .= "\n$space)";
  34.         return $evaluate;
  35. }

  36. function updatecache($cachename = '') {
  37.         global $db, $bbname, $tablepre;

  38.         $cachescript = array
  39.                 (
  40.                 'settings'        => array('settings'),
  41.                 'crons'                => array('crons'),
  42.                 'index'                => array('announcements', 'onlinelist', 'forumlinks'),
  43.                 'forumdisplay'        => array('announcements_forum', 'globalstick', 'forums', 'icons', 'onlinelist'),
  44.                 'viewthread'        => array('forums', 'usergroups', 'ranks', 'bbcodes', 'smilies', 'fields_thread'),
  45.                 'post'                => array('bbcodes', 'smilies_display', 'smilies', 'icons'),
  46.                 'blog'                => array('usergroups', 'ranks', 'bbcodes', 'smilies'),
  47.                 'forums'        => array('forums'),
  48.                 'profilefields'        => array('fields_required', 'fields_optional'),
  49.                 'censor'        => array('censor'),
  50.                 'ipbanned'        => array('ipbanned'),
  51.                 'bbcodes'        => array('bbcodes', 'smilies'),
  52.                  'toplist'        => array('newthread', 'newreply', 'topdigest', 'topviews'),//TOPLIST_首页四格_全Cache版_By oytktk
  53.                 'poststar'        => array('daystar', 'yestodaystar','weekstar', 'monthstar', 'yearstar'),
  54.                 'medals'        => array('medals')
  55.                 );

  56.         foreach($cachescript as $script => $cachenames) {
  57.                 if(!$cachename || ($cachename && in_array($cachename, $cachenames))) {
  58.                         writetocache($script, $cachenames);
  59.                 }
  60.         }

  61.         if(!$cachename || $cachename == 'styles') {
  62.                 $stylevars = array();
  63.                 $query = $db->query("SELECT * FROM {$tablepre}stylevars");
  64.                 while($var = $db->fetch_array($query)) {
  65.                         $stylevars[$var['styleid']][$var['variable']] = $var['substitute'];
  66.                 }
  67.                 $query = $db->query("SELECT s.*, t.directory AS tpldir FROM {$tablepre}styles s LEFT JOIN {$tablepre}templates t ON s.templateid=t.templateid");
  68.                 while($data = $db->fetch_array($query)) {
  69.                         $data = array_merge($data, $stylevars[$data['styleid']]);

  70.                         $data['bgcode'] = strpos($data['bgcolor'], '.') ? "background-image: url("$data[imgdir]/$data[bgcolor]")" : "background-color: $data[bgcolor]";
  71.                         $data['maintablebgcode'] = strpos($data['maintablecolor'], '.') ? "background="$data[maintablecolor]"" : "bgcolor="$data[maintablecolor]"";
  72.                         $data['catbgcode'] = strpos($data['catcolor'], '.') ? "background-image: url("$data[imgdir]/$data[catcolor]")" : "background-color: $data[catcolor]";
  73.                         $data['headerbgcode'] = strpos($data['headercolor'], '.') ? "background-image: url("$data[imgdir]/$data[headercolor]")" : "background-color: $data[headercolor]";
  74.                         $data['boardlogo'] = image($data['boardimg'], $data['imgdir'], "alt="$bbname"");
  75.                         $data['bold'] = $data['nobold'] ? 'normal' : 'bold';

  76.                         writetocache($data['styleid'], '', getcachevars($data, 'CONST'), 'style_');
  77.                 }
  78.         }

  79.         if(!$cachename || $cachename == 'usergroups') {
  80.                 $query = $db->query("SELECT * FROM {$tablepre}usergroups u
  81.                                         LEFT JOIN {$tablepre}admingroups a ON u.groupid=a.admingid");
  82.                 while($data = $db->fetch_array($query)) {
  83.                         $ratearray = array();
  84.                         if($data['raterange']) {
  85.                                 foreach(explode("\n", $data['raterange']) as $rating) {
  86.                                         $rating = explode("\t", $rating);
  87.                                         $ratearray[$rating[0]] = array('min' => $rating[1], 'max' => $rating[2], 'mrpd' => $rating[3]);
  88.                                 }
  89.                         }
  90.                         $data['raterange'] = $ratearray;
  91.                         $data['grouptitle'] = $data['color'] ? '<font color="'.$data['color'].'">'.$data['grouptitle'].'</font>' : $data['grouptitle'];
  92.                         $data['grouptype'] = $data['type'];
  93.                         $data['grouppublic'] = $data['system'] != 'private';
  94.                         $data['groupcreditshigher'] = $data['creditshigher'];
  95.                         $data['groupcreditslower'] = $data['creditslower'];
  96.                         unset($data['type'], $data['system'], $data['creditshigher'], $data['creditslower'], $data['color'], $data['groupavatar'], $data['admingid']);
  97.                         foreach($data as $key => $val) {
  98.                                 if(!isset($data[$key])) {
  99.                                         unset($data[$key]);
  100.                                 }
  101.                         }
  102.                         writetocache($data['groupid'], '', getcachevars($data), 'usergroup_');
  103.                 }
  104.         }

  105.         if(!$cachename || $cachename == 'admingroups') {
  106.                 $query = $db->query("SELECT * FROM {$tablepre}admingroups");
  107.                 while($data = $db->fetch_array($query)) {
  108.                         writetocache($data['admingid'], '', getcachevars($data), 'admingroup_');
  109.                 }
  110.         }

  111.         if(!$cachename || $cachename == 'plugins') {
  112.                 $query = $db->query("SELECT pluginid, available, adminid, name, identifier, datatables, directory, copyright, modules FROM {$tablepre}plugins");
  113.                 while($plugin = $db->fetch_array($query)) {
  114.                         $data = array_merge($plugin, array('modules' => array()), array('vars' => array()));
  115.                         $plugin['modules'] = unserialize($plugin['modules']);
  116.                         if(is_array($plugin['modules'])) {
  117.                                 foreach($plugin['modules'] as $module) {
  118.                                         $data['modules'][$module['name']] = $module;
  119.                                 }
  120.                         }
  121.                         $queryvars = $db->query("SELECT variable, value FROM {$tablepre}pluginvars WHERE pluginid='$plugin[pluginid]'");
  122.                         while($var = $db->fetch_array($queryvars)) {
  123.                                 $data['vars'][$var['variable']] = $var['value'];
  124.                         }
  125.                         writetocache($plugin['identifier'], '', "\$_DPLUGIN['$plugin[identifier]'] = ".arrayeval($data), 'plugin_');
  126.                 }
  127.         }
  128. }

  129. function updatesettings() {
  130.         global $_DCACHE;
  131.         if(isset($_DCACHE['settings']) && is_array($_DCACHE['settings'])) {
  132.                 writetocache('settings', '', '$_DCACHE[\'settings\'] = '.arrayeval($_DCACHE['settings']));
  133.         }
  134. }

  135. function writetocache($script, $cachenames, $cachedata = '', $prefix = 'cache_') {
  136.         if(is_array($cachenames) && !$cachedata) {
  137.                 foreach($cachenames as $name) {
  138.                         $cachedata .= getcachearray($name);
  139.                 }
  140.         }

  141.         $dir = DISCUZ_ROOT.'./forumdata/cache/';
  142.         if(!is_dir($dir)) {
  143.                 @mkdir($dir, 0777);
  144.         }
  145.         if(@$fp = fopen("$dir$prefix$script.php", 'w')) {
  146.                 fwrite($fp, "<?php\n//Discuz! cache file, DO NOT modify me!\n".
  147.                         "//Created on ".date("M j, Y, G:i")."\n\n$cachedata?>");
  148.                 fclose($fp);
  149.         } else {
  150.                 dexit('Can not write to cache files, please check directory ./forumdata/ and ./forumdata/cache/ .');
  151.         }
  152. }

  153. function getcachearray($cachename) {
  154.         global $db, $timestamp, $tablepre;

  155.         $cols = '*';
  156.         $conditions = '';
  157.         switch($cachename) {
  158.                 case 'settings':
  159.                         $table = 'settings';
  160.                         $conditions = "WHERE variable NOT IN ('bbrules', 'bbrulestxt', 'maxonlines', 'welcomemsg', 'welcomemsgtxt', 'newsletter', 'creditsnotify', 'custombackup')";
  161.                         break;
  162.                 case 'crons':
  163.                         $table = 'crons';
  164.                         $cols = 'cronid, name, filename, nextrun, weekday, day, hour, minute';
  165.                         $conditions = "WHERE available>'0'";
  166.                         break;
  167.                 case 'usergroups':
  168.                         $table = 'usergroups';
  169.                         $cols = 'groupid, type, grouptitle, creditshigher, creditslower, stars, color, groupavatar, readaccess, allowavatar, allowcusbbcode, allowuseblog';
  170.                         $conditions = "ORDER BY creditslower";
  171.                         break;
  172.                 case 'ranks':
  173.                         $table = 'ranks';
  174.                         $cols = 'ranktitle, postshigher, stars, color';
  175.                         $conditions = "ORDER BY postshigher DESC";
  176.                         break;
  177.                 case 'announcements':
  178.                         $table = 'announcements';
  179.                         $cols = 'id, subject, starttime, endtime';
  180.                         $conditions = "WHERE starttime<='$timestamp' ORDER BY displayorder, starttime DESC, id DESC";
  181.                         break;
  182.                 case 'announcements_forum':
  183.                         $table = 'announcements a';
  184.                         $cols = 'a.id, a.author, a.message, m.uid AS authorid, a.subject, a.starttime';
  185.                         $conditions = "LEFT JOIN {$tablepre}members m ON m.username=a.author WHERE a.starttime<='$timestamp' ORDER BY a.displayorder, a.starttime DESC, a.id DESC LIMIT 1";
  186.                         break;
  187.                 case 'globalstick':
  188.                         $table = 'forums';
  189.                         $cols = 'fid, type, fup';
  190.                         $conditions = "WHERE status='1' AND type IN ('forum', 'sub') ORDER BY type";
  191.                         break;
  192.                 case 'forums':
  193.                         $table = 'forums f';
  194.                         $cols = 'f.fid, f.type, f.name, f.fup, ff.viewperm, a.uid';
  195.                         $conditions = "LEFT JOIN {$tablepre}forumfields ff ON ff.fid=f.fid LEFT JOIN {$tablepre}access a ON a.fid=f.fid AND a.allowview='1' WHERE f.status='1' ORDER BY displayorder";
  196.                         break;
  197.                 case 'onlinelist':
  198.                         $table = 'onlinelist';
  199.                         $conditions = "ORDER BY displayorder";
  200.                         break;
  201.                 case 'forumlinks':
  202.                         $table = 'forumlinks';
  203.                         $conditions = "ORDER BY displayorder";
  204.                         break;
  205.                 case 'bbcodes':
  206.                         $table = 'bbcodes';
  207.                         $conditions = "WHERE available='1'";
  208.                         break;
  209.                 case 'smilies':
  210.                         $table = 'smilies';
  211.                         $cols = 'code, url';
  212.                         $conditions = "WHERE type='smiley' ORDER BY LENGTH(code) DESC";
  213.                         break;
  214.                 case 'smilies_display':
  215.                         $table = 'smilies';
  216.                         $cols = 'code, url';
  217.                         $conditions = "WHERE type='smiley' ORDER BY displayorder";
  218.                         break;
  219.                 case 'icons':
  220.                         $table = 'smilies';
  221.                         $cols = 'id, url';
  222.                         $conditions = "WHERE type='icon' ORDER BY displayorder";
  223.                         break;
  224.                 case 'fields_required':
  225.                         $table = 'profilefields';
  226.                         $cols = 'fieldid, invisible, title, description, required, unchangeable, selective, choices';
  227.                         $conditions = "WHERE available='1' AND required='1' ORDER BY displayorder";
  228.                         break;
  229.                 case 'fields_optional':
  230.                         $table = 'profilefields';
  231.                         $cols = 'fieldid, invisible, title, description, required, unchangeable, selective, choices';
  232.                         $conditions = "WHERE available='1' AND required='0' ORDER BY displayorder";
  233.                         break;
  234.                 case 'fields_thread':
  235.                         $table = 'profilefields';
  236.                         $cols = 'fieldid, title, selective, choices';
  237.                         $conditions = "WHERE available='1' AND invisible='0' AND showinthread='1' ORDER BY displayorder";
  238.                         break;
  239.                 case 'ipbanned':
  240.                         $db->query("DELETE FROM {$tablepre}banned WHERE expiration<'$timestamp'");
  241.                         $table = 'banned';
  242.                         $cols = 'ip1, ip2, ip3, ip4, expiration';
  243.                         break;
  244.                 case 'censor':
  245.                         $table = 'words';
  246.                         $cols = 'find, replacement';
  247.                         break;
  248.   //首页四格TOPLIST_CACHE版, By oytktk 代码首
  249.                 case 'newthread':
  250.                         $table = 'threads t';
  251.                         $cols = 't.tid, t.fid, t.author, t.subject, t.dateline, t.lastpost, t.lastposter, t.views, t.replies, t.highlight, f.name';
  252.                         $conditions = "LEFT JOIN {$tablepre}forums f ON f.fid=t.fid WHERE t.displayorder!='-1' ORDER BY t.dateline DESC LIMIT 0, 10";
  253.                         break;

  254.                 case 'newreply':
  255.                         $table = 'threads t';
  256.                         $cols = 't.tid, t.fid, t.author, t.subject, t.dateline, t.lastpost, t.lastposter, t.views, t.replies, t.highlight, f.name';
  257.                         $conditions = "LEFT JOIN {$tablepre}forums f ON f.fid=t.fid WHERE t.replies>0 and t.displayorder!='-1'  ORDER BY t.lastpost DESC LIMIT 0, 10";
  258.                         break;
  259.                 case 'topdigest':
  260.                         $table = 'threads t';
  261.                         $cols = 't.tid, t.fid, t.author, t.subject, t.digest, t.dateline, t.lastpost, t.lastposter, t.views, t.replies, t.highlight, f.name';
  262.                         $conditions = "LEFT JOIN {$tablepre}forums f ON f.fid=t.fid WHERE digest>0 ORDER BY rand() LIMIT 0, 10";
  263.                         break;
  264.                
  265.                 case 'topviews':
  266.                         $table = 'threads t';
  267.                         $view = rand(1,3)==1 ? 'views' : 'replies';
  268.                         $cols = 't.tid, t.fid, t.author, t.subject, t.dateline, t.lastpost, t.lastposter, t.views, t.replies, t.highlight, f.name';
  269.                         $conditions = "LEFT JOIN {$tablepre}forums f ON f.fid=t.fid WHERE t.displayorder!='-1' ORDER BY t.$view DESC LIMIT 0, 10";
  270.                         break;

  271.                 //首页四格TOPLIST_CACHE版, By oytktk 代码尾

  272. //===============社区明星BY 33201 开始
  273.                 case 'daystar':
  274.                         $month=date(n);
  275.                         $date=date(j);
  276.                         $year=date(Y);
  277.                         $time=mktime(0,0,0,$month,$date,$year);
  278.                         $table = 'posts p';
  279.                         $cols = 'count(p.pid) as num,p.author,p.authorid,m.uid,m.credits,m.posts,m.digestposts ,me.avatar,m.oltime,me.avatarwidth,me.avatarheight';
  280.                         $conditions = "left join {$tablepre}members m on p.authorid=m.uid  left join {$tablepre}memberfields me on p.authorid=me.uid where p.dateline>$time  group by p.authorid order by num desc limit 0,10";
  281.                         break;
  282.                 case 'yestodaystar':
  283.                         $month=date(n);
  284.                         $date=date(j);
  285.                         $year=date(Y);
  286.                         $time=mktime(0,0,0,$month,$date,$year);
  287.                         $ytime=mktime(0,0,0,$month,$date-1,$year);
  288.                         $table = 'posts p';
  289.                         $cols = 'count(p.pid) as num,p.author,p.authorid,m.uid,m.credits,m.posts,m.digestposts ,me.avatar,m.oltime,me.avatarwidth,me.avatarheight';
  290.                         $conditions = "left join {$tablepre}members m on p.authorid=m.uid  left join {$tablepre}memberfields me on p.authorid=me.uid where p.dateline<=$time and p.dateline>$ytime  group by p.authorid order by num desc limit 0,10";
  291.                         break;
  292.                 case 'weekstar':
  293.                         $month=date(n);
  294.                         $date=date(j);
  295.                         $year=date(Y);
  296.                         $week=date(w);
  297.                         $time=mktime(0,0,0,$month,$date,$year);
  298.                         $weektime=mktime(0,0,0,$month,$date-$week,$year);
  299.                         $table = 'posts p';
  300.                         $cols = 'count(p.pid) as num,p.author,p.authorid,m.uid,m.credits,m.posts,m.digestposts ,me.avatar,m.oltime,me.avatarwidth,me.avatarheight';
  301.                         $conditions = "left join {$tablepre}members m on p.authorid=m.uid  left join {$tablepre}memberfields me on p.authorid=me.uid where p.dateline>=$weektime  group by p.authorid order by num desc limit 0,10";
  302.                         break;
  303.                 case 'monthstar':
  304.                         $month=date(n);
  305.                         $year=date(Y);
  306.                         $monthtime=mktime(0,0,0,$month,1,$year);
  307.                         $table = 'posts p';
  308.                         $cols = 'count(p.pid) as num,p.author,p.authorid,m.uid,m.credits,m.posts,m.digestposts ,me.avatar,m.oltime,me.avatarwidth,me.avatarheight';
  309.                         $conditions = "left join {$tablepre}members m on p.authorid=m.uid  left join {$tablepre}memberfields me on p.authorid=me.uid where p.dateline>=$monthtime  group by p.authorid order by num desc limit 0,10";
  310.                         break;
  311.                
  312.                 case 'yearstar':
  313.                         $year=date(Y);
  314.                         $yeartime=mktime(0,0,0,1,1,$year);
  315.                         $table = 'posts p';
  316.                         $cols = 'count(p.pid) as num,p.author,p.authorid,m.uid,m.credits,m.posts,m.digestposts ,me.avatar,m.oltime,me.avatarwidth,me.avatarheight';
  317.                         $conditions = "left join {$tablepre}members m on p.authorid=m.uid  left join {$tablepre}memberfields me on p.authorid=me.uid where p.dateline>=$yeartime  group by p.authorid order by num desc limit 0,10";
  318.                         break;

  319. //===================社区明星BY 33201 结束

  320.                 case 'medals':
  321.                         $table = 'medals';
  322.                         $cols = 'medalid, name, image';
  323.                         $conditions = "WHERE available='1'";
  324.                         break;
  325.         }

  326.         $data = array();

  327.         $query = $db->query("SELECT $cols FROM {$tablepre}$table $conditions");
  328.         switch($cachename) {
  329. //首页四格TOPLIST_CACHE版, By oytktk 代码首

  330.                 case 'newthread':
  331.                         $colorarray = array('', 'red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'purple', 'gray');
  332.                         while($topthread = $db->fetch_array($query)) {
  333.                                 $threadcolor = sprintf('%02d', $topthread['highlight']);
  334.                                 $topthread['author'] = $topthread['author'] ? $topthread['author'] : '游客';
  335.                                 $topthread['subjectc'] = cutstr($topthread['subject'], 28);
  336.                                 $topthread['threadcolor'] = $threadcolor[1] ? " style="color: ".$colorarray[$threadcolor[1]].""" : NULL;
  337.                                 $topthread['dateline'] = gmdate("Y-m-d H:i", $topthread['dateline'] + $GLOBALS['timeoffset'] * 3600);
  338.                                 $topthread['lastpost'] = gmdate("Y-m-d H:i", $topthread['lastpost'] + $GLOBALS['timeoffset'] * 3600);
  339.                                 $topthread['name'] =  AddSlashes(strip_tags(trim($topthread['name'])));
  340.                                 $data[] = $topthread;
  341.                         }
  342.                         break;

  343.                 case 'newreply':
  344.                         $colorarray = array('', 'red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'purple', 'gray');
  345.                         while($topthread = $db->fetch_array($query)) {
  346.                                 $threadcolor = sprintf('%02d', $topthread['highlight']);
  347.                                 $topthread['author'] = $topthread['author'] ? $topthread['author'] : '游客';
  348.                                 $topthread['subjectc'] = cutstr($topthread['subject'], 26);
  349.                                 $topthread['threadcolor'] = $threadcolor[1] ? " style="color: ".$colorarray[$threadcolor[1]].""" : NULL;
  350.                                 $topthread['dateline'] = gmdate("Y-m-d H:i", $topthread['dateline'] + $GLOBALS['timeoffset'] * 3600);
  351.                                 $topthread['lastpost'] = gmdate("Y-m-d H:i", $topthread['lastpost'] + $GLOBALS['timeoffset'] * 3600);
  352.                                 $topthread['name'] =  AddSlashes(strip_tags(trim($topthread['name'])));
  353.                                 $data[] = $topthread;
  354.                         }
  355.                         break;

  356.                 case 'topdigest':
  357.                         $colorarray = array('', 'red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'purple', 'gray');
  358.                         while($topthread = $db->fetch_array($query)) {
  359.                                 $threadcolor = sprintf('%02d', $topthread['highlight']);
  360.                                 $digest = array('1'=>'[Ⅰ]','2'=>'[Ⅱ]','3'=>'[Ⅲ]');
  361.                                 $topthread['subjectc'] = $digest[$topthread['digest']]."-".cutstr($topthread['subject'], 23);
  362.                                 $topthread['author'] = $topthread['author'] ? $topthread['author'] : '游客';
  363.                                 $topthread['threadcolor'] = $threadcolor[1] ? " style="color: ".$colorarray[$threadcolor[1]].""" : NULL;
  364.                                 $topthread['dateline'] = gmdate("Y-m-d H:i", $topthread['dateline'] + $GLOBALS['timeoffset'] * 3600);
  365.                                 $topthread['lastpost'] = gmdate("Y-m-d H:i", $topthread['lastpost'] + $GLOBALS['timeoffset'] * 3600);
  366.                                 $topthread['name'] =  AddSlashes(strip_tags(trim($topthread['name'])));
  367.                                 $data[] = $topthread;
  368.                         }
  369.                         break;

  370.                 case 'topviews':
  371.                         $colorarray = array('', 'red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'purple', 'gray');
  372.                         while($topthread = $db->fetch_array($query)) {
  373.                                 $threadcolor = sprintf('%02d', $topthread['highlight']);
  374.                                 $topthread['subjectc'] = cutstr($topthread['subject'], 32);
  375.                                 $topthread['threadcolor'] = $threadcolor[1] ? " style="color: ".$colorarray[$threadcolor[1]].""" : NULL;
  376.                                 $topthread['author'] = $topthread['author'] ? $topthread['author'] : '游客';
  377.                                 $topthread['dateline'] = gmdate("Y-m-d H:i", $topthread['dateline'] + $GLOBALS['timeoffset'] * 3600);
  378.                                 $topthread['lastpost'] = gmdate("Y-m-d H:i", $topthread['lastpost'] + $GLOBALS['timeoffset'] * 3600);
  379.                                 $topthread['name'] =  AddSlashes(strip_tags(trim($topthread['name'])));
  380.                                 $data[] = $topthread;
  381.                         }
  382.                         break;


  383.                 //首页四格TOPLIST_CACHE版, By oytktk 代码尾

  384. //===================社区明星BY 33201 开始
  385.                 case 'daystar':
  386.                         while($toppost = $db->fetch_array($query)) {
  387.                                 $toppost['author'] = $toppost['author'] ? $toppost['author'] : '游客';
  388.                                 $toppost['authorid'] = $toppost['authorid'] ? $toppost['authorid'] : '游客';
  389.                                 $toppost['avatar'] = $toppost['avatar'] ? $toppost['avatar'] : 'images/nopic.gif';
  390.                                 $toppost['avatarwidth'] = $toppost['avatarwidth'] ? $toppost['avatarwidth'] : '80';
  391.                                 $toppost['avatarheight'] = $toppost['avatarheight'] ? $toppost['avatarheight'] : '80';
  392.                                 $data[] = $toppost;
  393.                         }
  394.                         break;
  395.                 case 'yestodaystar':
  396.                         while($toppost = $db->fetch_array($query)) {
  397.                                 $toppost['author'] = $toppost['author'] ? $toppost['author'] : '游客';
  398.                                 $toppost['authorid'] = $toppost['authorid'] ? $toppost['authorid'] : '游客';
  399.                                 $toppost['avatar'] = $toppost['avatar'] ? $toppost['avatar'] : 'images/nopic.gif';
  400.                                 $toppost['avatarwidth'] = $toppost['avatarwidth'] ? $toppost['avatarwidth'] : '80';
  401.                                 $toppost['avatarheight'] = $toppost['avatarheight'] ? $toppost['avatarheight'] : '80';
  402.                                 $data[] = $toppost;
  403.                         }
  404.                         break;
  405.                 case 'weekstar':
  406.                         while($toppost = $db->fetch_array($query)) {
  407.                                 $toppost['author'] = $toppost['author'] ? $toppost['author'] : '游客';
  408.                                 $toppost['authorid'] = $toppost['authorid'] ? $toppost['authorid'] : '游客';
  409.                                 $toppost['avatar'] = $toppost['avatar'] ? $toppost['avatar'] : 'images/nopic.gif';
  410.                                 $toppost['avatarwidth'] = $toppost['avatarwidth'] ? $toppost['avatarwidth'] : '80';
  411.                                 $toppost['avatarheight'] = $toppost['avatarheight'] ? $toppost['avatarheight'] : '80';
  412.                                 $data[] = $toppost;
  413.                         }
  414.                         break;
  415.                 case 'monthstar':
  416.                         while($toppost = $db->fetch_array($query)) {
  417.                                 $toppost['author'] = $toppost['author'] ? $toppost['author'] : '游客';
  418.                                 $toppost['authorid'] = $toppost['authorid'] ? $toppost['authorid'] : '游客';
  419.                                 $toppost['avatar'] = $toppost['avatar'] ? $toppost['avatar'] : 'images/nopic.gif';
  420.                                 $toppost['avatarwidth'] = $toppost['avatarwidth'] ? $toppost['avatarwidth'] : '80';
  421.                                 $toppost['avatarheight'] = $toppost['avatarheight'] ? $toppost['avatarheight'] : '80';
  422.                                 $data[] = $toppost;
  423.                         }
  424.                         break;
  425.                 case 'yearstar':
  426.                         while($toppost = $db->fetch_array($query)) {
  427.                                 $toppost['author'] = $toppost['author'] ? $toppost['author'] : '游客';
  428.                                 $toppost['authorid'] = $toppost['authorid'] ? $toppost['authorid'] : '游客';
  429.                                 $toppost['avatar'] = $toppost['avatar'] ? $toppost['avatar'] : 'images/nopic.gif';
  430.                                 $toppost['avatarwidth'] = $toppost['avatarwidth'] ? $toppost['avatarwidth'] : '80';
  431.                                 $toppost['avatarheight'] = $toppost['avatarheight'] ? $toppost['avatarheight'] : '80';
  432.                                 $data[] = $toppost;
  433.                         }
  434.                         break;

  435. //=====================社区明星BY 33201 结束

  436.                 case 'settings':
  437.                         $data['qihoo_links'] = array();
  438.                         while($setting = $db->fetch_array($query)) {
  439.                                 if($setting['variable'] == 'extcredits') {
  440.                                         if(is_array($setting['value'] = unserialize($setting['value']))) {
  441.                                                 foreach($setting['value'] as $key => $value) {
  442.                                                         if($value['available']) {
  443.                                                                 unset($setting['value'][$key]['available']);
  444.                                                         } else {
  445.                                                                 unset($setting['value'][$key]);
  446.                                                         }
  447.                                                 }
  448.                                         }
  449.                                 } elseif($setting['variable'] == 'qihoo_keywords') {
  450.                                         foreach(explode("\n", trim($setting['value'])) as $keyword) {
  451.                                                 if($keyword = trim($keyword)) {
  452.                                                         $data['qihoo_links']['keywords'][] = '<a href="search.php?srchtype=qihoo&srchtxt='.rawurlencode($keyword).'&searchsubmit=yes" target="_blank">'.dhtmlspecialchars(trim($keyword)).'</a>';
  453.                                                 }
  454.                                         }
  455.                                 } elseif($setting['variable'] == 'qihoo_topics') {
  456.                                         if(is_array($topics = unserialize($setting['value']))) {
  457.                                                 foreach($topics as $topic) {
  458.                                                         if($topic['topic'] = trim($topic['topic'])) {
  459.                                                                 $data['qihoo_links']['topics'][] = '<a href="topic.php?topic='.rawurlencode($topic['topic']).'&keyword='.rawurlencode($topic['keyword']).'&stype='.$topic['stype'].'&length='.$topic['length'].'&relate='.$topic['relate'].'" target="_blank">'.dhtmlspecialchars(trim($topic['topic'])).'</a>';
  460.                                                         }
  461.                                                 }
  462.                                         }
  463.                                 } elseif($setting['variable'] == 'creditspolicy') {
  464.                                         $setting['value'] = unserialize($setting['value']);
  465.                                 } elseif($setting['variable'] == 'creditsformula') {
  466.                                         $setting['value'] = preg_replace("/(digestposts|posts|pageviews|oltime|extcredits[1-8])/", "\$member['\\1']", $setting['value']);
  467.                                 } elseif($setting['variable'] == 'maxsmilies') {
  468.                                         $setting['value'] = $setting['value'] <= 0 ? -1 : $setting['value'];
  469.                                 }

  470.                                 if(!in_array($setting['variable'], array('qihoo_keywords', 'qihoo_topics'))) {
  471.                                         $GLOBALS[$setting['variable']] = $data[$setting['variable']] = $setting['value'];
  472.                                 }
  473.                         }
  474.                         if($data['stylejump']) {
  475.                                 $data['stylejump'] = array();
  476.                                 $query = $db->query("SELECT styleid, name FROM {$tablepre}styles WHERE available='1'");
  477.                                 while($style = $db->fetch_array($query)) {
  478.                                         $data['stylejump'][$style['styleid']] = dhtmlspecialchars($style['name']);
  479.                                 }
  480.                         }
  481.                         $query = $db->query("SELECT COUNT(*) FROM {$tablepre}members");
  482.                         $GLOBALS['totlamembers'] = $data['totalmembers'] = $db->result($query, 0);
  483.                         $query = $db->query("SELECT username FROM {$tablepre}members ORDER BY uid DESC LIMIT 1");
  484.                         $GLOBALS['lastmember'] = $data['lastmember'] = $db->result($query, 0);
  485.                         $GLOBALS['version'] = $data['version'] = DISCUZ_KERNEL_VERSION;
  486.                         $modreasonsarray = array();
  487.                         foreach(explode("\n", trim($data['modreasons'])) as $reason) {
  488.                                 $reason = trim($reason);
  489.                                 $modreasonarray[] = $reason ? array(dhtmlspecialchars($reason), $reason) : array('', '--------');
  490.                         }
  491.                         $GLOBALS['modreasons'] = $data['modreasons'] = $modreasonarray;

  492.                         $query = $db->query("SELECT nextrun FROM {$tablepre}crons WHERE available>'0' AND nextrun>'$timestamp' ORDER BY nextrun LIMIT 1");
  493.                         $data['cronnextrun'] = $db->result($query, 0);

  494.                         $data['todaysbdays'] = '';
  495.                         if($data['bdaystatus']) {
  496.                                 if(empty($_DCACHE['settings']['todaysbdays'])) {
  497.                                         $bdaymembers = array();
  498.                                         $query = $db->query("SELECT uid, username, email, bday FROM {$tablepre}members WHERE bday LIKE '%-".gmdate('m-d', $timestamp + $data['timeoffset'] * 3600)."' ORDER BY bday");
  499.                                         while($bdaymember = $db->fetch_array($query)) {
  500.                                                 $birthyear = intval($bdaymember['bday']);
  501.                                                 $bdaymembers[] = '<a href="viewpro.php?uid='.$bdaymember['uid'].'" target="_blank" '.($birthyear ? 'alt="'.$bdaymember['bday'].'"' : '').'>'.$bdaymember['username'].'</a>';
  502.                                         }
  503.                                         $data['todaysbdays'] = implode(', ', $bdaymembers);
  504.                                 } else {
  505.                                         $data['todaysbdays'] = $_DCACHE['settings']['todaysbdays'];
  506.                                 }
  507.                         }

  508.                         $data['advertisements'] = array();
  509.                         $query = $db->query("SELECT * FROM {$tablepre}advertisements WHERE available>'0' AND starttime<='$timestamp' ORDER BY displayorder");
  510.                         if($db->num_rows($query)) {
  511.                                 while($adv = $db->fetch_array($query)) {
  512.                                         $data['advertisements']['items'][$adv['advid']] = $adv['code'];
  513.                                         if($adv['targets'] == '') {
  514.                                                 $data['advertisements']['types'][$adv['type']]['all'][] = $adv['advid'];
  515.                                         } else {
  516.                                                 foreach(explode("\t", $adv['targets']) as $target) {
  517.                                                         if($target == 0) {
  518.                                                                 $data['advertisements']['types'][$adv['type']]['index'][] = $adv['advid'];
  519.                                                         } else {
  520.                                                                 $data['advertisements']['types'][$adv['type']]['forum_'.$target][] = $adv['advid'];
  521.                                                         }
  522.                                                 }
  523.                                         }
  524.                                 }
  525.                                 $query = $db->query("SELECT starttime FROM {$tablepre}advertisements WHERE available>'0' AND starttime>'$timestamp' ORDER BY starttime LIMIT 1");
  526.                                 $data['advertisements']['lateststarttime'] = intval($db->result($query, 0));
  527.                                 $query = $db->query("SELECT endtime FROM {$tablepre}advertisements WHERE available>'0' AND endtime>'$timestamp' ORDER BY endtime LIMIT 1");
  528.                                 $data['advertisements']['latestendtime'] = intval($db->result($query, 0));
  529.                         }

  530.                         $data['plugins'] = array();
  531.                         $query = $db->query("SELECT available, name, identifier, directory, datatables, modules FROM {$tablepre}plugins");
  532.                         while($plugin = $db->fetch_array($query)) {
  533.                                 $plugin['modules'] = unserialize($plugin['modules']);
  534.                                 if(is_array($plugin['modules'])) {
  535.                                         foreach($plugin['modules'] as $module) {
  536.                                                 if($plugin['available'] && isset($module['name'])) {
  537.                                                         switch($module['type']) {
  538.                                                                 case 1:
  539.                                                                         $data['plugins']['links'][$plugin['identifier']][$module['name']] = array('adminid' => $module['adminid'], 'url' => "<a href="$module[url]">$module[menu]</a>");
  540.                                                                         break;
  541.                                                                 case 2:
  542.                                                                         $data['plugins']['links'][$plugin['identifier']][$module['name']] = array('adminid' => $module['adminid'], 'url' => "<a href="plugin.php?identifier=$plugin[identifier]&module=$module[name]">$module[menu]</a>", 'directory' => $plugin['directory']);
  543.                                                                         break;
  544.                                                                 case 4:
  545.                                                                         $data['plugins']['include'][] = array('adminid' => $module['adminid'], 'script' => $plugin['directory'].$module['name']);
  546.                                                                         break;
  547.                                                         }
  548.                                                 }
  549.                                         }
  550.                                 }
  551.                         }

  552.                         $data['hooks'] = array();
  553.                         $query = $db->query("SELECT ph.title, ph.code, p.identifier FROM {$tablepre}plugins p
  554.                                 LEFT JOIN {$tablepre}pluginhooks ph ON ph.pluginid=p.pluginid AND ph.available='1'
  555.                                 WHERE p.available='1' ORDER BY p.identifier");
  556.                         while($hook = $db->fetch_array($query)) {
  557.                                 if($hook['title'] && $hook['code']) {
  558.                                         $data['hooks'][$hook['identifier'].'_'.$hook['title']] = $hook['code'];
  559.                                 }
  560.                         }
  561.                         break;
  562.                 case 'crons':
  563.                         while($cron = $db->fetch_array($query)) {
  564.                                 $cronid = $cron['cronid'];
  565.                                 $cron['filename'] = str_replace(array('..', '/', '\\'), array('', '', ''), $cron['filename']);
  566.                                 $cron['minute'] = explode("\t", $cron['minute']);
  567.                                 unset($cron['cronid']);
  568.                                 $data[$cronid] = $cron;
  569.                         }
  570.                         break;
  571.                 case 'usergroups':
  572.                         global $userstatusby;
  573.                         while($group = $db->fetch_array($query)) {
  574.                                 $groupid = $group['groupid'];
  575.                                 $group['grouptitle'] = $group['color'] ? '<font color="'.$group['color'].'">'.$group['grouptitle'].'</font>' : $group['grouptitle'];
  576.                                 if($userstatusby == 2) {
  577.                                         $group['byrank'] = $group['type'] == 'member' ? 1 : 0;
  578.                                 }
  579.                                 if($userstatusby == 0 || ($userstatusby == 2 && $group['type'] == 'member')) {
  580.                                         unset($group['grouptitle'], $group['stars']);
  581.                                 }
  582.                                 if($group['type'] != 'member') {
  583.                                         unset($group['creditshigher'], $group['creditslower']);
  584.                                 }
  585.                                 unset($group['groupid'], $group['color']);
  586.                                 $data[$groupid] = $group;
  587.                         }
  588.                         break;
  589.                 case 'ranks':
  590.                         global $userstatusby;
  591.                         if($userstatusby == 2) {
  592.                                 while($rank = $db->fetch_array($query)) {
  593.                                         $rank['ranktitle'] = $rank['color'] ? '<font color="'.$rank['color'].'">'.$rank['ranktitle'].'</font>' : $rank['ranktitle'];
  594.                                         unset($rank['color']);
  595.                                         $data[] = $rank;
  596.                                 }
  597.                         }
  598.                         break;
  599.                 case 'announcements_forum':
  600.                         if($data = $db->fetch_array($query)) {
  601.                                 $data['authorid'] = intval($data['authorid']);
  602.                                 $data['message'] = cutstr(strip_tags($data['message']), 18);
  603.                         } else {
  604.                                 $data = array();
  605.                         }
  606.                         break;
  607.                 case 'globalstick':
  608.                         $fuparray = $threadarray = array();
  609.                         while($forum = $db->fetch_array($query)) {
  610.                                 switch($forum['type']) {
  611.                                         case 'forum':
  612.                                                 $fuparray[$forum['fid']] = $forum['fup'];
  613.                                                 break;
  614.                                         case 'sub':
  615.                                                 $fuparray[$forum['fid']] = $fuparray[$forum['fup']];
  616.                                                 break;
  617.                                 }
  618.                         }
  619.                         $query = $db->query("SELECT tid, fid, displayorder FROM {$tablepre}threads WHERE displayorder IN (2, 3)");
  620.                         while($thread = $db->fetch_array($query)) {
  621.                                 switch($thread['displayorder']) {
  622.                                         case 2:
  623.                                                 $threadarray[$fuparray[$thread['fid']]][] = $thread['tid'];
  624.                                                 break;
  625.                                         case 3:
  626.                                                 $threadarray['global'][] = $thread['tid'];
  627.                                                 break;
  628.                                 }
  629.                         }
  630.                         foreach(array_unique($fuparray) as $gid) {
  631.                                 if(!empty($threadarray[$gid])) {
  632.                                         $data['categories'][$gid] = array(
  633.                                                 'tids'        => implode(',', $threadarray[$gid]),
  634.                                                 'count'        => intval(@count($threadarray[$gid]))
  635.                                         );
  636.                                 }
  637.                         }
  638.                         $data['global'] = array(
  639.                                 'tids'        => empty($threadarray['global']) ? 0 : implode(',', $threadarray['global']),
  640.                                 'count'        => intval(@count($threadarray['global']))
  641.                         );
  642.                         break;
  643.                 case 'censor':
  644.                         $banned = $mod = array();
  645.                         $data = array('filter' => array(), 'banned' => '', 'mod' => '');
  646.                         while($censor = $db->fetch_array($query)) {
  647.                                 $censor['find'] = preg_replace("/\\\{(\d+)\\\}/", ".{0,\\1}", preg_quote($censor['find'], '/'));
  648.                                 switch($censor['replacement']) {
  649.                                         case '{BANNED}':
  650.                                                 $banned[] = $censor['find'];
  651.                                                 break;
  652.                                         case '{MOD}':
  653.                                                 $mod[] = $censor['find'];
  654.                                                 break;
  655.                                         default:
  656.                                                 $data['filter']['find'][] = '/'.$censor['find'].'/i';
  657.                                                 $data['filter']['replace'][] = $censor['replacement'];
  658.                                                 break;
  659.                                 }
  660.                         }
  661.                         if($banned) {
  662.                                 $data['banned'] = '/('.implode('|', $banned).')/i';
  663.                         }
  664.                         if($mod) {
  665.                                 $data['mod'] = '/('.implode('|', $mod).')/i';
  666.                         }
  667.                         break;
  668.                 case 'forums':
  669.                         while($forum = $db->fetch_array($query)) {
  670.                                 if(!isset($data[$forum['fid']])) {
  671.                                         $forum['name'] = strip_tags($forum['name']);
  672.                                         if($forum['uid']) {
  673.                                                 $forum['users'] = "\t$forum[uid]\t";
  674.                                         }
  675.                                         unset($forum['uid']);
  676.                                         $data[$forum['fid']] = $forum;
  677.                                 } elseif($forum['uid']) {
  678.                                         if(!$data[$forum['fid']]['users']) {
  679.                                                 $data[$forum['fid']]['users'] = "\t";
  680.                                         }
  681.                                         $data[$forum['fid']]['users'] .= "$forum[uid]\t";
  682.                                 }
  683.                         }
  684.                         break;
  685.                 case 'onlinelist':
  686.                         $data['legend'] = '';
  687.                         while($list = $db->fetch_array($query)) {
  688.                                 $data[$list['groupid']] = $list['url'];
  689.                                 $data['legend'] .= "<img src="images/common/$list[url]"> $list[title]       ";
  690.                         }
  691.                         break;
  692.                 case 'forumlinks':
  693.                         $tightlink_text = $tightlink_logo = '';
  694.                         while($flink = $db->fetch_array($query)) {
  695.                                 if($flink['note']) {
  696.                                         $forumlink['content'] = "<a href="$flink[url]" target="_blank"><span class="bold">$flink[name]</span></a><br>$flink[note]";
  697.                                         if($flink['logo']) {
  698.                                                 $forumlink['type'] = 1;
  699.                                                 $forumlink['logo'] = $flink['logo'];
  700.                                         } else {
  701.                                                 $forumlink['type'] = 2;
  702.                                         }
  703.                                         $data[] = $forumlink;
  704.                                 } else {
  705.                                         if($flink['logo']) {
  706.                                                 $tightlink_logo .= "<a href="$flink[url]" target="_blank"><img src="$flink[logo]" border="0" alt="$flink[name]"></a> ";
  707.                                         } else {
  708.                                                 $tightlink_text .= "<a href="$flink[url]" target="_blank">[$flink[name]]</a> ";
  709.                                         }
  710.                                 }
  711.                         }
  712.                         if($tightlink_logo || $tightlink_text) {
  713.                                 $tightlink_logo .= $tightlink_logo ? '<br>' : '';
  714.                                 $data[] = array('type' => 3, 'content' => $tightlink_logo.$tightlink_text);
  715.                         }
  716.                         break;
  717.                 case 'bbcodes':
  718.                         $regexp = array        (        1 => "/\[{bbtag}](.+?)\[\/{bbtag}\]/is",
  719.                                                 2 => "/\[{bbtag}=(['"]?)(.+?)(['"]?)\](.+?)\[\/{bbtag}\]/is",
  720.                                                 3 => "/\[{bbtag}=(['"]?)(.+?)(['"]?),(['"]?)(.+?)(['"]?)\](.+?)\[\/{bbtag}\]/is"
  721.                                         );

  722.                         while($bbcode = $db->fetch_array($query)) {
  723.                                 $search = str_replace('{bbtag}', $bbcode['tag'], $regexp[$bbcode['params']]);
  724.                                 $bbcode['replacement'] = preg_replace("/([\r\n])/", '', $bbcode['replacement']);
  725.                                 switch($bbcode['params']) {
  726.                                         case 2:
  727.                                                 $bbcode['replacement'] = str_replace('{1}', '\\2', $bbcode['replacement']);
  728.                                                 $bbcode['replacement'] = str_replace('{2}', '\\4', $bbcode['replacement']);
  729.                                                 break;
  730.                                         case 3:
  731.                                                 $bbcode['replacement'] = str_replace('{1}', '\\2', $bbcode['replacement']);
  732.                                                 $bbcode['replacement'] = str_replace('{2}', '\\5', $bbcode['replacement']);
  733.                                                 $bbcode['replacement'] = str_replace('{3}', '\\7', $bbcode['replacement']);
  734.                                                 break;
  735.                                         default:
  736.                                                 $bbcode['replacement'] = str_replace('{1}', '\\1', $bbcode['replacement']);
  737.                                                 break;
  738.                                 }
  739.                                 $replace = $bbcode['replacement'];

  740.                                 for($i = 0; $i < $bbcode['nest']; $i++) {
  741.                                         $data['searcharray'][] = $search;
  742.                                         $data['replacearray'][] = $replace;
  743.                                 }
  744.                         }

  745.                         break;
  746.                 case 'smilies':
  747.                         $data = array('searcharray' => array(), 'replacearray' => array());
  748.                         while($smiley = $db->fetch_array($query)) {
  749.                                 $data['searcharray'][] = '/'.preg_quote(dhtmlspecialchars($smiley['code']), '/').'/';
  750.                                 $data['replacearray'][] = $smiley['url'];
  751.                         }
  752.                         break;
  753.                 case 'smilies_display':
  754.                         while($smiley = $db->fetch_array($query)) {
  755.                                 $smiley['code'] = dhtmlspecialchars($smiley['code']);
  756.                                 $data[] = $smiley;
  757.                         }
  758.                         break;
  759.                 case 'icons':
  760.                         while($icon = $db->fetch_array($query)) {
  761.                                 $data[$icon['id']] = $icon['url'];
  762.                         }
  763.                         break;
  764.                 case (in_array($cachename, array('fields_required', 'fields_optional', 'fields_thread'))):
  765.                         while($field = $db->fetch_array($query)) {
  766.                                 $choices = array();
  767.                                 if($field['selective']) {
  768.                                         foreach(explode("\n", $field['choices']) as $item) {
  769.                                                 list($index, $choice) = explode('=', $item);
  770.                                                 $choices[trim($index)] = trim($choice);
  771.                                         }
  772.                                         $field['choices'] = $choices;
  773.                                 } else {
  774.                                         unset($field['choices']);
  775.                                 }
  776.                                 $data[] = $field;
  777.                         }
  778.                         break;
  779.                 case 'ipbanned':
  780.                         if($db->num_rows($query)) {
  781.                                 $data['expiration'] = 0;
  782.                                 $data['regexp'] = $separator = '';
  783.                         }
  784.                         while($banned = $db->fetch_array($query)) {
  785.                                 $data['expiration'] = !$data['expiration'] || $banned['expiration'] < $data['expiration'] ? $banned['expiration'] : $data['expiration'];
  786.                                 $data['regexp'] .=        $separator.
  787.                                                         ($banned['ip1'] == '-1' ? '\\d+\\.' : $banned['ip1'].'\\.').
  788.                                                         ($banned['ip2'] == '-1' ? '\\d+\\.' : $banned['ip2'].'\\.').
  789.                                                         ($banned['ip3'] == '-1' ? '\\d+\\.' : $banned['ip3'].'\\.').
  790.                                                         ($banned['ip4'] == '-1' ? '\\d+' : $banned['ip4']);
  791.                                 $separator = '|';
  792.                         }
  793.                         break;
  794.                 case 'medals':
  795.                         while($medal = $db->fetch_array($query)) {
  796.                                 $data[$medal['medalid']] = array('name' => $medal['name'], 'image' => $medal['image']);
  797.                         }
  798.                         break;
  799.                 default:
  800.                         while($datarow = $db->fetch_array($query)) {
  801.                                 $data[] = $datarow;
  802.                         }
  803.         }

  804.         return "\$_DCACHE['$cachename'] = ".arrayeval($data).";\n\n";
  805. }

  806. function getcachevars($data, $type = 'VAR') {
  807.         $evaluate = '';
  808.         foreach($data as $key => $val) {
  809.                 if(is_array($val)) {
  810.                         $evaluate .= "\$$key = ".arrayeval($val).";\n";
  811.                 } else {
  812.                         $val = addcslashes($val, '\'\\');
  813.                         $evaluate .= $type == 'VAR' ? "\$$key = '$val';\n" : "define('".strtoupper($key)."', '$val');\n";
  814.                 }
  815.         }
  816.         return $evaluate;
  817. }

  818. ?>
复制代码
回复

使用道具 举报

 楼主| mousecat 发表于 2006-6-22 22:56:30 | 显示全部楼层
原帖由 啊神! 于 2006-6-22 04:26 发表
我用的就是utf那个, 是这断代码出了问题  不知道有没有解决办法.
//========== 社区明星BY 33201 开始
$nopoststar ='<td width=17%>姓名:<font color=red><b> 虚位以待!</b></fon ...

编辑之后还要存为utf的
回复

使用道具 举报

 楼主| mousecat 发表于 2006-6-22 23:02:01 | 显示全部楼层

回复 #101 hhkkggll 的帖子

问一问原作者吧,我也看不出来什么大问题
回复

使用道具 举报

啊神! 发表于 2006-6-22 23:56:12 | 显示全部楼层
问题已经解决 非常感谢 mousecat 的帮助.

[ 本帖最后由 啊神! 于 2006-6-23 00:36 编辑 ]
回复

使用道具 举报

啊神! 发表于 2006-6-23 03:52:42 | 显示全部楼层
又有个问题了 精华贴前面出现乱码 把cache.func.php 保存utf8也没用。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

啊神! 发表于 2006-6-25 04:29:42 | 显示全部楼层
没人知道原因。
回复

使用道具 举报

hhkkggll 发表于 2006-6-26 14:20:34 | 显示全部楼层
原帖由 hhkkggll 于 2006-6-18 01:31 发表
:'(
安裝完成之後,出現附件的錯誤,其他功能就正常煩請幫忙解決!!!!
謝謝!!!


唉!!
重新再檢查,重新再安裝,都解決不了,又沒有人可以幫忙!!
只有放棄!!!可惜!!可惜!!
回复

使用道具 举报

leo_mx 发表于 2006-6-28 17:05:12 | 显示全部楼层
我的装上了也是乱码,。。。真郁闷!!!刚刚又恢复,,昨天装到半夜的另一个插件也就那么阵王了
回复

使用道具 举报

黑川健太 发表于 2006-7-4 13:57:48 | 显示全部楼层
我安装成功。
不过有个小问题

可以在cache.func.php里面把新加入的那段代码中4个ORDER BY前全部加上and f.fid!=''(引号里是隐藏帖子所在论坛的fid号,例如:and f.fid!='3')更新缓存就行了


如果要隐藏多个板块里面的帖子,是不是这样 and f.fid!='12,13,14,15'

*我这样做了,但是只有 fid12 板块的帖子不显示罢了。
回复

使用道具 举报

 楼主| mousecat 发表于 2006-7-6 06:22:35 | 显示全部楼层
好像数据库被恢复了!

楼上的可以用and f.fid!='12' and f.fid!='13'....
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-12-23 06:10 , Processed in 0.028679 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表