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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[原创]一楼和二楼之间插入论坛公告

[复制链接]
猪宝贝2004 发表于 2005-9-23 13:31:55 | 显示全部楼层
更新了的...
回复

使用道具 举报

 楼主| lu5266 发表于 2005-9-23 13:36:46 | 显示全部楼层
原帖由 猪宝贝2004 于 2005-9-23 13:24 发表



一二楼显示【到目前为止没有论坛公告。】.......
麻烦瞅瞅
http://221.229.127.165:8010/newd ... id=2584&fpage=1


你的cache.php改好了没?
回复

使用道具 举报

野天 发表于 2005-9-23 13:43:58 | 显示全部楼层
看了你的站,赞一个插件装得够多,另外中秋风格还不换吗?

最后问一下,公告放在一二楼中间有什么好处?
回复

使用道具 举报

猪宝贝2004 发表于 2005-9-23 13:51:03 | 显示全部楼层
原帖由 lu5266 于 2005-9-23 13:36 发表


你的cache.php改好了没?


改了的...
回复

使用道具 举报

猪宝贝2004 发表于 2005-9-23 13:51:48 | 显示全部楼层
原帖由 野天 于 2005-9-23 13:43 发表
看了你的站,赞一个插件装得够多,另外中秋风格还不换吗?

最后问一下,公告放在一二楼中间有什么好处?



注意的眼球更多些啊
回复

使用道具 举报

猪宝贝2004 发表于 2005-9-23 13:58:58 | 显示全部楼层
没有附件功能,不然可以把3个文件传上来给大家看看呢

步骤应该不错,会不会跟其他什么插件有什么冲突
回复

使用道具 举报

 楼主| lu5266 发表于 2005-9-23 14:04:32 | 显示全部楼层
原帖由 野天 于 2005-9-23 13:43 发表
看了你的站,赞一个插件装得够多,另外中秋风格还不换吗?

最后问一下,公告放在一二楼中间有什么好处?


谢谢

没空换啊

会员是一直可以看到公告啊
回复

使用道具 举报

 楼主| lu5266 发表于 2005-9-23 14:05:15 | 显示全部楼层
原帖由 猪宝贝2004 于 2005-9-23 13:58 发表
没有附件功能,不然可以把3个文件传上来给大家看看呢

步骤应该不错,会不会跟其他什么插件有什么冲突


贴上来 啊
回复

使用道具 举报

 楼主| lu5266 发表于 2005-9-23 14:05:40 | 显示全部楼层
原帖由 猪宝贝2004 于 2005-9-23 13:51 发表



注意的眼球更多些啊


正解
回复

使用道具 举报

猪宝贝2004 发表于 2005-9-23 14:10:36 | 显示全部楼层
<?php

/*
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: [DISCUZ!]  Crossday Discuz! Board                                    ::
:: (c) 2001-2005 Comsenz Technology Ltd (www.discuz.com)                ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Author:  Crossday (tech@discuz.com) Cnteacher (cnteacher@discuz.com) ::
:: Version: 2.5F   2004/10/01 05:15                                     ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*/

if(!defined('IN_DISCUZ')) {
        exit('Access Denied');
}

function array_del( &$array , $keys){
        $f=explode(',',$keys);
        foreach( $f as $key) {
                if(trim($f)) unset($array["$key"]);
        }
}

function updatecache($cachename = '') {
        global $db, $bbname, $table_styles, $table_stylevars, $table_templates, $table_usergroups,$table_admingroups;

        $cachescript = array(       
                                'settings'        => array('settings'),
                                'index'                => array('announcements','onlinelist', 'forumlinks'),
                                'forumdisplay'        => array('announcements_forum','forums','icons','onlinelist'),
                                'viewthread'        => array('forums', 'usergroups', 'ranks','bbcodes','smilies','announcements'
),
                                'post'                => array('smilies', 'icons'),
                                'censor'        => array('censor'),
                                'forums'        => array('forums'),
                                'ipbanned'        => array('ipbanned'),
                                'pm'                => array('bbcodes','smilies'),
                                'plugins'        => array('plugins', 'plugins_settings')
                        );

        foreach($cachescript as $script => $cachenames) {
                if(!$cachename || ($cachename && in_array($cachename, $cachenames))) {
                        writetocache($script, $cachenames);
                }
        }
        if(!$cachename || $cachename == 'styles') {
                $stylevars = array();
                $query = $db->query("SELECT * FROM $table_stylevars");
                while($var = $db->fetch_array($query)) {
                        $stylevars[$var['styleid']][$var['variable']] = $var['substitute'];
                }
                $query = $db->query("SELECT s.*, t.charset, t.directory AS tpldir FROM $table_styles s LEFT JOIN $table_templates t ON s.templateid=t.templateid");
                while($data = $db->fetch_array($query)) {
                        $data = array_merge($data, $stylevars[$data['styleid']]);

                        $data['bgcode'] = strpos($data['bgcolor'], '.') ? "background-image: url(\"$data[imgdir]/$data[bgcolor]\")" : "background-color: $data[bgcolor]";
                        $data['catbgcode'] = strpos($data['catcolor'], '.') ? "background-image: url(\"$data[imgdir]/$data[catcolor]\")" : "background-color: $data[catcolor]";
                        $data['headerbgcode'] = strpos($data['headercolor'], '.') ? "background-image: url(\"$data[imgdir]/$data[headercolor]\")" : "background-color: $data[headercolor]";
                        $data['boardlogo'] = image($data['boardimg'], $data['imgdir'], "alt=\"$bbname\"");
                        $data['bold'] = $data['nobold'] ? 'normal' : 'bold';

                        writetocache($data['styleid'], '', getcachevars($data, 'CONST'), 'style_');
                }
        }
        if(!$cachename || $cachename == 'usergroups') {
                $query = $db->query("SELECT * FROM $table_usergroups");
                while($data = $db->fetch_array($query)) {
                        array_del($data,'type,creditshigher,creditslower,groupavatar');
                        $tempdate =getcachevars($data);
                        $gid=$data['groupid'];
                        if ($gid<4 ){
                                $query2 = $db->query("SELECT * FROM $table_admingroups where admingid='$gid'");
                                $data2 = $db->fetch_array($query2);
                                array_del($data2,'admingid');
                                $tempdate .=PHP_NEXTLINE.getcachevars($data2);
                        }
                        writetocache($data['groupid'], '', $tempdate, 'usergroup_');
                }
        }
        if(!$cachename || $cachename == 'admingroups') {
                $table=$GLOBALS['table_admingroups'];
                $query = $db->query("SELECT * FROM $table");
                while($data = $db->fetch_array($query)) {
                        writetocache($data['admingid'], '', getcachevars($data), 'admingroup_');
                }
        }

}

function writetocache($script, $cachenames, $cachedata = '', $prefix = 'cache_') {
        global $db;
        if(is_array($cachenames) && !$cachedata) {
                foreach($cachenames as $name) {
                        $cachedata .= getcachearray($name);
                }
        }

        $dir = "./forumdata/cache/";
        if(!is_dir($dir)) {
                @mkdir($dir, 0777);
        }               
        if(@$fp = fopen("$dir$prefix$script.php", 'w')) {
                fwrite($fp, "<?php".PHP_NEXTLINE."//Discuz! cache file, DO NOT modify me!".
                        PHP_NEXTLINE."//Created on ".date("M j, Y, G:i").PHP_NEXTLINE.PHP_NEXTLINE."$cachedata".PHP_CLOSE_TAG);
                fclose($fp);
        } else {
                dexit('Can not write to cache file, please check directory ./forumdata/ and ./forumdata/cache/ .');
        }
}

function getcachearray($cachename) {
        global $db, $announcements_num;

        $cols = '*';
        $conditions = '';
        switch($cachename) {
                case settings:
                        $table = $GLOBALS['table_settings'];
                        break;
                case plugins:
                        $table = $GLOBALS['table_plugins'];
                        $cols = 'plug_title, plug_key, plug_stats, plug_author, plug_version';
                        break;
                case plugins_settings:
                        $table = $GLOBALS['table_plugins_settings'];
                        $cols = 'conf_key, conf_group, conf_value';
                        $conditions ='WHERE conf_cached ORDER BY conf_group';
                        break;
                case usergroups:
                        $table = $GLOBALS['table_usergroups'];
                        $cols = "groupid,grouptitle,color,stars,groupavatar,allowavatar,allowsigbbcode,allowsigimgcode";
                        $conditions = "ORDER BY creditslower ASC";
                        break;
                case announcements:
                        $table = $GLOBALS['table_announcements'];
                        $cols = " id, subject, posturl, starttime, endtime";
                        $conditions = "ORDER BY displayorder ASC, starttime DESC";
                        break;
                case announcements_forum:
                        $table = $GLOBALS['table_announcements'];
                        $cols = " id, author, posturl, subject,starttime";
                        $ann_num = $announcements_num ? $announcements_num : 1 ;
                        $conditions = "ORDER BY displayorder ASC, starttime DESC LIMIT 0, $ann_num";
                        break;
                case forums:
                        $table = $GLOBALS['table_forums'];
                        $cols = "fid, type, name, fup, viewperm";
                        $conditions = "WHERE status='1' ORDER BY displayorder";
                        break;
                case forumlinks:
                        $table = $GLOBALS['table_forumlinks'];
                        $conditions = "ORDER BY displayorder";
                        break;
                case smilies:
                        $table = $GLOBALS['table_smilies'];
                        $cols = "code,url";
                        $conditions = "WHERE type='smiley' ORDER BY LENGTH(code) DESC";
                        break;
                case icons:
                        $table = $GLOBALS['table_smilies'];
                        $cols = "id,url";
                        $conditions = "WHERE type='icon'";
                        break;
                case ipbanned:
                        $table = $GLOBALS['table_banned'];
                        $cols = "ip1,ip2,ip3,ip4,expiration ";
                        $conditions = "WHERE expiration>".time().' ORDER BY `expiration` DESC';
                        break;
                case censor:
                        $table = $GLOBALS['table_words'];
                        break;
                case onlinelist:
                        $table = $GLOBALS['table_onlinelist'];
                        $cols = "groupid,url,title";
                        $conditions = "WHERE 1 ORDER BY displayorder";
                        break;
                case bbcodes:
                        $table = $GLOBALS['table_bbcodes'];
                        $cols = "tag,replacement,params,nest";
                        $conditions = "WHERE available=1";
                        break;
                case ranks:
                        $table = $GLOBALS['table_ranks'];
                        $cols='ranktitle,postshigher,stars,color';
                        $conditions = "WHERE 1 ORDER BY postshigher desc";
                        break;
                break;

        }
        if (!$table) return;
        $data = array();
        $query = $db->query("SELECT $cols FROM $table $conditions");
        switch($cachename) {
                case 'announcements_forum':
                        if ($announcements_num){
                                while($announcement = $db->fetch_array($query)) {
                                        $data[] = $announcement;
                                }
                        }else{
                                $data = array();
                        }
                        break;

                case 'settings':
                        $nocache_settings='welcomemsg,bbrulestxt,welcomemsgtxt,bbrules,censoruser,maxonlines';
                        while($settings=$db->fetch_array($query)) {
                                $data["$settings[variable]"]=$settings['value'];
                        }
                        array_del($data,$nocache_settings);
                        $query = $db->query("SELECT COUNT(*) FROM $GLOBALS[table_members]");
                        $data['totalmembers'] = $db->result($query, 0);
                        $query = $db->query("SELECT username FROM $GLOBALS[table_members] ORDER BY regdate DESC LIMIT 1");
                        $data['lastmember'] = $db->result($query, 0);

                        $data["pluglink"] ='';
                        $data["plugins_table"] = array();
                        $data["plugins_script"] = array();
                        $query = $db->query("SELECT plug_title,plug_key,plug_stats,plug_tables  FROM $GLOBALS[table_plugins]");
                        while($plugs = $db->fetch_array($query)) {
                                if ($plugs[plug_stats] == 2){
                                        $data["pluglink"] .= '| <a href="plugins.php?p='.$plugs[plug_key].'"><font class="navtd">'.$plugs['plug_title'].'</font></a> ';
                                        $data["plugins_script"][] = $plugs['plug_key'];
                                }
                                if ($plugs[plug_tables]){
                                        $tb = array();
                                        $tb = explode(",", $plugs['plug_tables']);
                                        if (is_array($tb) && count($tb) ){
                                                foreach($tb as $t_tables){
                                                        if (trim($t_tables)){
                                                                $data["plugins_table"][] = $t_tables;
                                                        }
                                                }

                                        }
                                        unset($tb,$t_tables);
                                }
                        }
                        unset($settings,$query,$plugs);
                        break;

                case 'censor':
                        $data['find'] = $data['replace'] = array();
                        while($censor = $db->fetch_array($query)) {
                                $censor['find'] = "/".str_replace("/", "\/",preg_quote( $censor['find']))."/i";
                                $censor['find'] = preg_replace("/\\\\\{(\d+)\\\\\}/is", ".{0,\\1}", $censor['find']);

                                $data['find'][]  = $censor['find'];
                                $data['replace'][] = addslashes($censor['replacement']);
                        }
                        break;

                case 'bbcodes':
                        $data['replacearray'] = $data['searcharray']= array();
                        while($bbcodes = $db->fetch_array($query)) {
                                $data['searcharray'][] = "/\\[".str_replace("/", "\/",preg_quote( $bbcodes['tag']))."](.+?)\\[\\/".str_replace("/", "\/",preg_quote( $bbcodes['tag'])).'\\]/is';
                                $bbcodes['replacement'] = preg_replace("/[\n\r]/s", '', $bbcodes['replacement']);

                                $data['replacearray'][] = str_replace('{','\\',str_replace('}','',$bbcodes['replacement']));
                        }
                        break;

                case 'usergroups':
                        while($usergroups = $db->fetch_array($query)) {
                                if ($usergroups[color]){
                                        $usergroups['grouptitle'] = '<font color="'.$usergroups['color'].'">'.$usergroups['grouptitle'].'</font>';
                                }

                                $data["$usergroups[groupid]"]=array(
                                        'grouptitle' =>$usergroups[grouptitle],
                                        'groupcolor' =>$usergroups[color],
                                        'stars' =>$usergroups[stars],
                                        'groupavatar' =>$usergroups[groupavatar],
                                        'allowavatar' =>$usergroups[allowavatar],
                                        'allowsigbbcode' =>$usergroups[allowsigbbcode],
                                        'allowsigimgcode' =>$usergroups[allowsigimgcode],
                                );
                        }
                        break;

                case 'forums':
                        while($forum = $db->fetch_array($query)) {
                                $forum['name'] = strip_tags($forum['name']);
                                $data[$forum['fid']] = $forum;
                                unset($forum['fid']);
                        }
                        break;

                case 'icons':
                        $data = array();
                        while($icon = $db->fetch_array($query)) {
                                $data["$icon[id]"] = $icon[url];
                        }
                        break;

                case 'ranks':
                        $data = array();
                        while($rank = $db->fetch_array($query)) {
                                if ($rank['color']){
                                        $rank['ranktitle'] = '<font color="'.$rank['color'].'">'.$rank['ranktitle'].'</font>';
                                }
                                $data[] = array('ranktitle' => $rank['ranktitle'],
                                                                'postshigher' => intval($rank['postshigher']),
                                                                'stars' => intval($rank['stars']));
                        }
                        break;

                case 'plugins':
                        $data = array();
                        while($plugin = $db->fetch_array($query)) {
                                $data["$plugin[plug_key]"] = $plugin;
                        }
                        break;

                case 'plugins_settings':
                        $data = array();
                        while($settings = $db->fetch_array($query)) {
                                        $data["$settings[conf_group]"]["$settings[conf_key]"] = $settings[conf_value];
                        }

                case 'ipbanned':
                        $mark='';
                        while($ipband = $db->fetch_array($query)) {
                                $data['expiration'] = $ipband['expiration'];
                                $ip = $ipband['ip1']>0?$ipband['ip1']:'\\d+';
                                $ip .='\\.'.($ipband['ip2']>0?$ipband['ip2']:'\\d+');
                                $ip .='\\.'.($ipband['ip3']>0?$ipband['ip3']:'\\d+');
                                $ip .='\\.'.($ipband['ip4']>0?$ipband['ip4']:'\\d+');
                                $data['regexp'] .= "$mark$ip";
                                $mark='|';
                        }
                        break;

                case 'forumlinks':
                        $tightlink_text = $tightlink_logo = '';
                        while($flink = $db->fetch_array($query)) {
                                if($flink['note']) {
                                        $forumlink['content'] = "<a href=\"$flink[url]\" target=\"_blank\"><span class=\"bold\">$flink[name]</span></a><br>$flink[note]";
                                        if($flink['logo']) {
                                                $forumlink['type'] = 1;
                                                $forumlink['logo'] = $flink['logo'];
                                        } else {
                                                $forumlink['type'] = 2;
                                        }
                                        $data[] = $forumlink;
                                } else {
                                        if($flink['logo']) {
                                                $tightlink_logo .= " &nbsp; <a href=\"$flink[url]\" target=\"_blank\"><img src=\"$flink[logo]\" border=\"0\" alt=\"$flink[name]\"></a>";
                                        } else {
                                                $tightlink_text .= "<a href=\"$flink[url]\" target=\"_blank\">[$flink[name]]</a> ";
                                        }
                                }
                        }
                        if($tightlink_logo || $tightlink_text) {
                                $tightlink_logo .= $tightlink_text ? '<br>' : '';
                                $data[] = array('type' => 3, 'content' => $tightlink_logo.$tightlink_text);
                        }
                        break;

                        case onlinelist:
                        $data['legend']=$mark='';
                        while($onlinelist = $db->fetch_array($query)) {
                                $data['legend'] .=$mark.'<img src="images/common/'.$onlinelist[url].'" border=0>&nbsp;'.$onlinelist[title];
                                $data["$onlinelist[groupid]"] = $onlinelist[url];
                                $mark='&nbsp;&nbsp;&nbsp;&nbsp;';
                        }
                        break;


                default:
                        while($datarow = $db->fetch_array($query)) {
                                $data[] = $datarow;
                        }
        }
        return "\$_DCACHE['$cachename'] = ".var_export( $data, TRUE).';'.PHP_NEXTLINE.PHP_NEXTLINE;
}

function getcachevars($data, $type = 'VAR') {
        if (is_array($data) && count($data)) {
                foreach($data as $key => $val) {
                        $val = str_replace("'", "\\'", $val);
                        $evaluate .= $type == 'VAR' ? "\$$key = '$val';".PHP_NEXTLINE : "define('".strtoupper($key)."', '$val');".PHP_NEXTLINE;
                }
        } else {
        $evaluate = PHP_NEXTLINE;
    }
        return $evaluate;
}

if (!function_exists('var_export')){

        function var_export($array, $return = FALSE ) {
                if ($return) {
                        return arrayeval($array);
                }else{
                        print_r($array);
                }
        }

        function arrayeval($array, $level = 0) {
                for($i = 0; $i <= $level; $i++) {
                        $space .= "\t";
                }
                $evaluate = "Array\n$space(\n";
                $comma = "$space";
                foreach($array as $key => $val) {
                        $key = is_string($key) ? "'".addcslashes($key, '\'\\')."'" : $key;
                        $val = is_string($val) ? "'".addcslashes($val, '\'\\')."'" : $val;
                        if(is_array($val)) {
                                $evaluate .= "$comma$key => ".arrayeval($val, $level + 1);
                        } else {
                                $evaluate .= "$comma$key => $val";
                        }
                        $comma = ",\n$space";
                }
                $evaluate .= "\n$space)";
                return $evaluate;
        }
}


?>
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 01:09 , Processed in 0.027492 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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