erify' => array('verify1', 'verify2', 'verify3', 'verify4', 'verify5', 'verify6', 'verify7'), ); $profiletable = ''; foreach($tablefields as $table => $fields) { if(in_array($field, $fields)) { $profiletable = $table; break; } } if($profiletable) { if(is_array($_G['member']) && $_G['member']['uid']) { space_merge($_G['member'], $profiletable); } else { foreach($tablefields[$profiletable] as $k) { $_G['member'][$k] = ''; } } return $_G['member'][$field]; } return null; } function daddslashes($string, $force = 1) { if(is_array($string)) { $keys = array_keys($string); foreach($keys as $key) { $val = $string[$key]; unset($string[$key]); $string[addslashes($key)] = daddslashes($val, $force); } } else { $string = addslashes($string); } return $string; } function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) { $ckey_length = 4; $key = md5($key != '' ? $key : getglobal('authkey')); $keya = md5(substr($key, 0, 16)); $keyb = md5(substr($key, 16, 16)); $keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : ''; $cryptkey = $keya.md5($keya.$keyc); $key_length = strlen($cryptkey); $string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string; $string_length = strlen($string); $result = ''; $box = range(0, 255); $rndkey = array(); for($i = 0; $i <= 255; $i++) { $rndkey[$i] = ord($cryptkey[$i % $key_length]); } for($j = $i = 0; $i < 256; $i++) { $j = ($j + $box[$i] + $rndkey[$i]) % 256; $tmp = $box[$i]; $box[$i] = $box[$j]; $box[$j] = $tmp; } for($a = $j = $i = 0; $i < $string_length; $i++) { $a = ($a + 1) % 256; $j = ($j + $box[$a]) % 256; $tmp = $box[$a]; $box[$a] = $box[$j]; $box[$j] = $tmp; $result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256])); } if($operation == 'DECODE') { if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) === substr(md5(substr($result, 26).$keyb), 0, 16)) { return substr($result, 26); } else { return ''; } } else { return $keyc.str_replace('=', '', base64_encode($result)); } } function fsocketopen($hostname, $port = 80, &$errno, &$errstr, $timeout = 15) { $fp = ''; if(function_exists('fsockopen')) { $fp = @fsockopen($hostname, $port, $errno, $errstr, $timeout); } elseif(function_exists('pfsockopen')) { $fp = @pfsockopen($hostname, $port, $errno, $errstr, $timeout); } elseif(function_exists('stream_socket_client')) { $fp = @stream_socket_client($hostname.':'.$port, $errno, $errstr, $timeout); } return $fp; } function dfsockopen($url, $limit = 0, $post = '', $cookie = '', $bysocket = FALSE, $ip = '', $timeout = 15, $block = TRUE, $encodetype = 'URLENCODE', $allowcurl = TRUE, $position = 0, $files = array()) { require_once libfile('function/filesock'); return _dfsockopen($url, $limit, $post, $cookie, $bysocket, $ip, $timeout, $block, $encodetype, $allowcurl, $position, $files); } function dhtmlspecialchars($string, $flags = null) { if(is_array($string)) { foreach($string as $key => $val) { $string[$key] = dhtmlspecialchars($val, $flags); } } else { if($flags === null) { $string = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $string); } else { if(PHP_VERSION < '5.4.0') { $string = htmlspecialchars($string, $flags); } else { if(strtolower(CHARSET) == 'utf-8') { $charset = 'UTF-8'; } else { $charset = 'ISO-8859-1'; } $string = htmlspecialchars($string, $flags, $charset); } } } return $string; } function dexit($message = '') { echo $message; output(); exit(); } function dheader($string, $replace = true, $http_response_code = 0) { $islocation = substr(strtolower(trim($string)), 0, 8) == 'location'; if(defined('IN_MOBILE') && strpos($string, 'mobile') === false && $islocation) { if (strpos($string, '?') === false) { $string = $string.'?mobile='.IN_MOBILE; } else { if(strpos($string, '#') === false) { $string = $string.'&mobile='.IN_MOBILE; } else { $str_arr = explode('#', $string); $str_arr[0] = $str_arr[0].'&mobile='.IN_MOBILE; $string = implode('#', $str_arr); } } } $string = str_replace(array("\r", "\n"), array('', ''), $string); if(empty($http_response_code) || PHP_VERSION < '4.3' ) { @header($string, $replace); } else { @header($string, $replace, $http_response_code); } if($islocation) { exit(); } } function dsetcookie($var, $value = '', $life = 0, $prefix = 1, $httponly = false) { global $_G; $config = $_G['config']['cookie']; $_G['cookie'][$var] = $value; $var = ($prefix ? $config['cookiepre'] : '').$var; $_COOKIE[$var] = $value; if($value === '' || $life < 0) { $value = ''; $life = -1; } if(defined('IN_MOBILE')) { $httponly = false; } $life = $life > 0 ? getglobal('timestamp') + $life : ($life < 0 ? getglobal('timestamp') - 31536000 : 0); $path = $httponly && PHP_VERSION < '5.2.0' ? $config['cookiepath'].'; HttpOnly' : $config['cookiepath']; $secure = $_G['isHTTPS']; if(PHP_VERSION < '5.2.0') { setcookie($var, $value, $life, $path, $config['cookiedomain'], $secure); } else { setcookie($var, $value, $life, $path, $config['cookiedomain'], $secure, $httponly); } } function getcookie($key) { global $_G; return isset($_G['cookie'][$key]) ? $_G['cookie'][$key] : ''; } function fileext($filename) { return addslashes(strtolower(substr(strrchr($filename, '.'), 1, 10))); } function formhash($specialadd = '') { global $_G; $hashadd = defined('IN_ADMINCP') ? 'Only For Discuz! Admin Control Panel' : ''; return substr(md5(substr($_G['timestamp'], 0, -7).$_G['username'].$_G['uid'].$_G['authkey'].$hashadd.$specialadd), 8, 8); } function checkrobot($useragent = '') { static $kw_spiders = array('bot', 'crawl', 'spider' ,'slurp', 'sohu-search', 'lycos', 'robozilla'); static $kw_browsers = array('msie', 'netscape', 'opera', 'konqueror', 'mozilla'); $useragent = strtolower(empty($useragent) ? $_SERVER['HTTP_USER_AGENT'] : $useragent); if(dstrpos($useragent, $kw_spiders)) return true; if(strpos($useragent, 'http://') === false && dstrpos($useragent, $kw_browsers)) return false; return false; } function checkmobile() { global $_G; $mobile = array(); static $touchbrowser_list =array('iphone', 'android', 'phone', 'mobile', 'wap', 'netfront', 'java', 'opera mobi', 'opera mini', 'ucweb', 'windows ce', 'symbian', 'series', 'webos', 'sony', 'blackberry', 'dopod', 'nokia', 'samsung', 'palmsource', 'xda', 'pieplus', 'meizu', 'midp', 'cldc', 'motorola', 'foma', 'docomo', 'up.browser', 'up.link', 'blazer', 'helio', 'hosin', 'huawei', 'novarra', 'coolpad', 'webos', 'techfaith', 'palmsource', 'alcatel', 'amoi', 'ktouch', 'nexian', 'ericsson', 'philips', 'sagem', 'wellcom', 'bunjalloo', 'maui', 'smartphone', 'iemobile', 'spice', 'bird', 'zte-', 'longcos', 'pantech', 'gionee', 'portalmmm', 'jig browser', 'hiptop', 'benq', 'haier', '^lct', '320x320', '240x320', '176x220', 'windows phone'); static $wmlbrowser_list = array('cect', 'compal', 'ctl', 'lg', 'nec', 'tcl', 'alcatel', 'ericsson', 'bird', 'daxian', 'dbtel', 'eastcom', 'pantech', 'dopod', 'philips', 'haier', 'konka', 'kejian', 'lenovo', 'benq', 'mot', 'soutec', 'nokia', 'sagem', 'sgh', 'sed', 'capitel', 'panasonic', 'sonyericsson', 'sharp', 'amoi', 'panda', 'zte'); static $pad_list = array('ipad'); $useragent = strtolower($_SERVER['HTTP_USER_AGENT']); if(dstrpos($useragent, $pad_list)) { return false; } if(($v = dstrpos($useragent, $touchbrowser_list, true))){ $_G['mobile'] = $v; return '2'; } if(($v = dstrpos($useragent, $wmlbrowser_list))) { $_G['mobile'] = $v; return '3'; //wml版 } $brower = array('mozilla', 'chrome', 'safari', 'opera', 'm3gate', 'winwap', 'openwave', 'myop'); if(dstrpos($useragent, $brower)) return false; $_G['mobile'] = 'unknown'; if(isset($_G['mobiletpl'][$_GET['mobile']])) { return true; } else { return false; } } function dstrpos($string, $arr, $returnvalue = false) { if(empty($string)) return false; foreach((array)$arr as $v) { if(strpos($string, $v) !== false) { $return = $returnvalue ? $v : true; return $return; } } return false; } function isemail($email) { return strlen($email) > 6 && strlen($email) <= 32 && preg_match("/^([A-Za-z0-9\-_.+]+)@([A-Za-z0-9\-]+[.][A-Za-z0-9\-.]+)$/", $email); } function quescrypt($questionid, $answer) { return $questionid > 0 && $answer != '' ? substr(md5($answer.md5($questionid)), 16, 8) : ''; } function random($length, $numeric = 0) { $seed = base_convert(md5(microtime().$_SERVER['DOCUMENT_ROOT']), 16, $numeric ? 10 : 35); $seed = $numeric ? (str_replace('0', '', $seed).'012340567890') : ($seed.'zZ'.strtoupper($seed)); if($numeric) { $hash = ''; } else { $hash = chr(rand(1, 26) + rand(0, 1) * 32 + 64); $length--; } $max = strlen($seed) - 1; for($i = 0; $i < $length; $i++) { $hash .= $seed[mt_rand(0, $max)]; } return $hash; } function strexists($string, $find) { return !(strpos($string, $find) === FALSE); } function avatar($uid, $size = 'middle', $returnsrc = FALSE, $real = FALSE, $static = FALSE, $ucenterurl = '') { global $_G; if($_G['setting']['plugins']['func'][HOOKTYPE]['avatar']) { $_G['hookavatar'] = ''; $param = func_get_args(); hookscript('avatar', 'global', 'funcs', array('param' => $param), 'avatar'); if($_G['hookavatar']) { return $_G['hookavatar']; } } static $staticavatar; if($staticavatar === null) { $staticavatar = $_G['setting']['avatarmethod']; } $ucenterurl = empty($ucenterurl) ? $_G['setting']['ucenterurl'] : $ucenterurl; $size = in_array($size, array('big', 'middle', 'small')) ? $size : 'middle'; $uid = abs(intval($uid)); if(!$staticavatar && !$static) { $timestamp = $uid == $_G['uid'] ? "&ts=1" : ""; return $returnsrc ? $ucenterurl.'/avatar.php?uid='.$uid.'&size='.$size.($real ? '&type=real' : '').$timestamp : ''; } else { $uid = sprintf("%09d", $uid); $dir1 = substr($uid, 0, 3); $dir2 = substr($uid, 3, 2); $dir3 = substr($uid, 5, 2); $file = $ucenterurl.'/data/avatar/'.$dir1.'/'.$dir2.'/'.$dir3.'/'.substr($uid, -2).($real ? '_real' : '').'_avatar_'.$size.'.jpg'; return $returnsrc ? $file : ''; } } function lang($file, $langvar = null, $vars = array(), $default = null) { global $_G; $fileinput = $file; list($path, $file) = explode('/', $file); if(!$file) { $file = $path; $path = ''; } if(strpos($file, ':') !== false) { $path = 'plugin'; list($file) = explode(':', $file); } if($path != 'plugin') { $key = $path == '' ? $file : $path.'_'.$file; if(!isset($_G['lang'][$key])) { include DISCUZ_ROOT.'./source/language/'.($path == '' ? '' : $path.'/').'lang_'.$file.'.php'; $_G['lang'][$key] = $lang; } if(defined('IN_MOBILE') && !defined('TPL_DEFAULT')) { include DISCUZ_ROOT.'./source/language/mobile/lang_template.php'; $_G['lang'][$key] = array_merge($_G['lang'][$key], $lang); } if($file != 'error' && !isset($_G['cache']['pluginlanguage_system'])) { loadcache('pluginlanguage_system'); } if(!isset($_G['hooklang'][$fileinput])) { if(isset($_G['cache']['pluginlanguage_system'][$fileinput]) && is_array($_G['cache']['pluginlanguage_system'][$fileinput])) { $_G['lang'][$key] = array_merge($_G['lang'][$key], $_G['cache']['pluginlanguage_system'][$fileinput]); } $_G['hooklang'][$fileinput] = true; } $returnvalue = &$_G['lang']; } else { if(empty($_G['config']['plugindeveloper'])) { loadcache('pluginlanguage_script'); } elseif(!isset($_G['cache']['pluginlanguage_script'][$file]) && preg_match("/^[a-z]+[a-z0-9_]*$/i", $file)) { if(@include(DISCUZ_ROOT.'./data/plugindata/'.$file.'.lang.php')) { $_G['cache']['pluginlanguage_script'][$file] = $scriptlang[$file]; } else { loadcache('pluginlanguage_script'); } } $returnvalue = & $_G['cache']['pluginlanguage_script']; !is_array($returnvalue) && $returnvalue = array(); $key = &$file; } $return = $langvar !== null ? (isset($returnvalue[$key][$langvar]) ? $returnvalue[$key][$langvar] : null) : (is_array($returnvalue[$key]) ? $returnvalue[$key] : array()); $return = $return === null ? ($default !== null ? $default : ($path != 'plugin' ? '' : $file . ':') . $langvar) : $return; $searchs = $replaces = array(); if($vars && is_array($vars)) { foreach($vars as $k => $v) { $searchs[] = '{'.$k.'}'; $replaces[] = $v; } } if(is_string($return) && strpos($return, '{_G/') !== false) { preg_match_all('/\{_G\/(.+?)\}/', $return, $gvar); foreach($gvar[0] as $k => $v) { $searchs[] = $v; $replaces[] = getglobal($gvar[1][$k]); } } $return = str_replace($searchs, $replaces, $return); return $return; } function checktplrefresh($maintpl, $subtpl, $timecompare, $templateid, $cachefile, $tpldir, $file) { static $tplrefresh, $timestamp, $targettplname; if($tplrefresh === null) { $tplrefresh = getglobal('config/output/tplrefresh'); $timestamp = getglobal('timestamp'); } if(empty($timecompare) || $tplrefresh == 1 || ($tplrefresh > 1 && !($timestamp % $tplrefresh))) { if(!file_exists(DISCUZ_ROOT.$subtpl)){ $subtpl = substr($subtpl, 0, -4).'.php'; } if(empty($timecompare) || @filemtime(DISCUZ_ROOT.$subtpl) > $timecompare) { require_once DISCUZ_ROOT.'/source/class/class_template.php'; $template = new template(); $template->parse_template($maintpl, $templateid, $tpldir, $file, $cachefile); if($targettplname === null) { $targettplname = getglobal('style/tplfile'); if(!empty($targettplname)) { include_once libfile('function/block'); $targettplname = strtr($targettplname, ':', '_'); update_template_block($targettplname, getglobal('style/tpldirectory'), $template->blocks); } $targettplname = true; } return TRUE; } } return FALSE; } function template($file, $templateid = 0, $tpldir = '', $gettplfile = 0, $primaltpl='') { global $_G; if($_G['setting']['plugins']['func'][HOOKTYPE]['template']) { $param = func_get_args(); $hookreturn = hookscript('template', 'global', 'funcs', array('param' => $param, 'caller' => 'template'), 'template'); if($hookreturn) { return $hookreturn; } } static $_init_style = false; if($_init_style === false) { C::app()->_init_style(); $_init_style = true; } $oldfile = $file; if(strpos($file, ':') !== false) { $clonefile = ''; list($templateid, $file, $clonefile) = explode(':', $file); $oldfile = $file; $file = empty($clonefile) ? $file : $file.'_'.$clonefile; if($templateid == 'diy') { $indiy = false; $_G['style']['tpldirectory'] = $tpldir ? $tpldir : (defined('TPLDIR') ? TPLDIR : ''); $_G['style']['prefile'] = ''; $diypath = DISCUZ_ROOT.'./data/diy/'.$_G['style']['tpldirectory'].'/'; //DIY模板文件目录 $preend = '_diy_preview'; $_GET['preview'] = !empty($_GET['preview']) ? $_GET['preview'] : ''; $curtplname = $oldfile; $basescript = $_G['mod'] == 'viewthread' && !empty($_G['thread']) ? 'forum' : $_G['basescript']; if(isset($_G['cache']['diytemplatename'.$basescript])) { $diytemplatename = &$_G['cache']['diytemplatename'.$basescript]; } else { if(!isset($_G['cache']['diytemplatename'])) { loadcache('diytemplatename'); } $diytemplatename = &$_G['cache']['diytemplatename']; } $tplsavemod = 0; if(isset($diytemplatename[$file]) && file_exists($diypath.$file.'.htm') && ($tplsavemod = 1) || empty($_G['forum']['styleid']) && ($file = $primaltpl ? $primaltpl : $oldfile) && isset($diytemplatename[$file]) && file_exists($diypath.$file.'.htm')) { $tpldir = 'data/diy/'.$_G['style']['tpldirectory'].'/'; !$gettplfile && $_G['style']['tplsavemod'] = $tplsavemod; $curtplname = $file; if(isset($_GET['diy']) && $_GET['diy'] == 'yes' || isset($_GET['diy']) && $_GET['preview'] == 'yes') { //DIY模式或预览模式下做以下判断 $flag = file_exists($diypath.$file.$preend.'.htm'); if($_GET['preview'] == 'yes') { $file .= $flag ? $preend : ''; } else { $_G['style']['prefile'] = $flag ? 1 : ''; } } $indiy = true; } else { $file = $primaltpl ? $primaltpl : $oldfile; } $tplrefresh = $_G['config']['output']['tplrefresh']; if($indiy && ($tplrefresh ==1 || ($tplrefresh > 1 && !($_G['timestamp'] % $tplrefresh))) && filemtime($diypath.$file.'.htm') < filemtime(DISCUZ_ROOT.$_G['style']['tpldirectory'].'/'.($primaltpl ? $primaltpl : $oldfile).'.htm')) { if (!updatediytemplate($file, $_G['style']['tpldirectory'])) { unlink($diypath.$file.'.htm'); $tpldir = ''; } } if (!$gettplfile && empty($_G['style']['tplfile'])) { $_G['style']['tplfile'] = empty($clonefile) ? $curtplname : $oldfile.':'.$clonefile; } $_G['style']['prefile'] = !empty($_GET['preview']) && $_GET['preview'] == 'yes' ? '' : $_G['style']['prefile']; } else { $tpldir = './source/plugin/'.$templateid.'/template'; } } $file .= !empty($_G['inajax']) && ($file == 'common/header' || $file == 'common/footer') ? '_ajax' : ''; $tpldir = $tpldir ? $tpldir : (defined('TPLDIR') ? TPLDIR : ''); $templateid = $templateid ? $templateid : (defined('TEMPLATEID') ? TEMPLATEID : ''); $filebak = $file; if(defined('IN_MOBILE') && !defined('TPL_DEFAULT') && strpos($file, $_G['mobiletpl'][IN_MOBILE].'/') === false || (isset($_G['forcemobilemessage']) && $_G['forcemobilemessage'])) { if(IN_MOBILE == 2) { $oldfile .= !empty($_G['inajax']) && ($oldfile == 'common/header' || $oldfile == 'common/footer') ? '_ajax' : ''; } $file = $_G['mobiletpl'][IN_MOBILE].'/'.$oldfile; } if(!$tpldir) { $tpldir = './template/default'; } $tplfile = $tpldir.'/'.$file.'.htm'; $file == 'common/header' && defined('CURMODULE') && CURMODULE && $file = 'common/header_'.$_G['basescript'].'_'.CURMODULE; if(defined('IN_MOBILE') && !defined('TPL_DEFAULT')) { if(strpos($tpldir, 'plugin')) { if(!file_exists(DISCUZ_ROOT.$tpldir.'/'.$file.'.htm') && !file_exists(DISCUZ_ROOT.$tpldir.'/'.$file.'.php')) { $url = $_SERVER['REQUEST_URI'].(strexists($_SERVER['REQUEST_URI'], '?') ? '&' : '?').'mobile=no'; showmessage('mobile_template_no_found', '', array('url' => $url)); } else { $mobiletplfile = $tpldir.'/'.$file.'.htm'; } } !$mobiletplfile && $mobiletplfile = $file.'.htm'; if(strpos($tpldir, 'plugin') && (file_exists(DISCUZ_ROOT.$mobiletplfile) || file_exists(substr(DISCUZ_ROOT.$mobiletplfile, 0, -4).'.php'))) { $tplfile = $mobiletplfile; } elseif(!file_exists(DISCUZ_ROOT.TPLDIR.'/'.$mobiletplfile) && !file_exists(substr(DISCUZ_ROOT.TPLDIR.'/'.$mobiletplfile, 0, -4).'.php')) { $mobiletplfile = './template/default/'.$file.'.htm'; if(!file_exists(DISCUZ_ROOT.$mobiletplfile) && !$_G['forcemobilemessage']) { $tplfile = str_replace($_G['mobiletpl'][IN_MOBILE].'/', '', $tplfile); $file = str_replace($_G['mobiletpl'][IN_MOBILE].'/', '', $file); define('TPL_DEFAULT', true); } else { $tplfile = $mobiletplfile; } } else { $tplfile = TPLDIR.'/'.$mobiletplfile; } } $cachefile = './data/template/'.(defined('STYLEID') ? STYLEID.'_' : '_').$templateid.'_'.str_replace('/', '_', $file).'.tpl.php'; if($templateid != 1 && !file_exists(DISCUZ_ROOT.$tplfile) && !file_exists(substr(DISCUZ_ROOT.$tplfile, 0, -4).'.php') && !file_exists(DISCUZ_ROOT.($tplfile = $tpldir.$filebak.'.htm'))) { $tplfile = './template/default/'.$filebak.'.htm'; } if($gettplfile) { return $tplfile; } checktplrefresh($tplfile, $tplfile, @filemtime(DISCUZ_ROOT.$cachefile), $templateid, $cachefile, $tpldir, $file); return DISCUZ_ROOT.$cachefile; } function dsign($str, $length = 16){ return substr(md5($str.getglobal('config/security/authkey')), 0, ($length ? max(8, $length) : 16)); } function modauthkey($id) { return md5(getglobal('username').getglobal('uid').getglobal('authkey').substr(TIMESTAMP, 0, -7).$id); } function getcurrentnav() { global $_G; if(!empty($_G['mnid'])) { return $_G['mnid']; } $mnid = ''; $_G['basefilename'] = $_G['basefilename'] == $_G['basescript'] ? $_G['basefilename'] : $_G['basescript'].'.php'; if(isset($_G['setting']['navmns'][$_G['basefilename']])) { if($_G['basefilename'] == 'home.php' && $_GET['mod'] == 'space' && (empty($_GET['do']) || in_array($_GET['do'], array('follow', 'view')))) { $_GET['mod'] = 'follow'; } foreach($_G['setting']['navmns'][$_G['basefilename']] as $navmn) { if($navmn[0] == array_intersect_assoc($navmn[0], $_GET) || (isset($_GET['gid']) && $navmn[0]['mod'] == 'forumdisplay' && $navmn[0]['fid'] == $_GET['gid']) || ($navmn[0]['mod'] == 'space' && $_GET['mod'] == 'spacecp' && ($navmn[0]['do'] == $_GET['ac'] || $navmn[0]['do'] == 'album' && $_GET['ac'] == 'upload'))) { $mnid = $navmn[1]; } } } if(!$mnid && isset($_G['setting']['navdms'])) { foreach($_G['setting']['navdms'] as $navdm => $navid) { if(strpos(strtolower($_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']), $navdm) !== false && strpos(strtolower($_SERVER['HTTP_HOST']), $navdm) === false) { $mnid = $navid; break; } } } if(!$mnid && isset($_G['setting']['navmn'][$_G['basefilename']])) { $mnid = $_G['setting']['navmn'][$_G['basefilename']]; } return $mnid; } function loaducenter() { require_once DISCUZ_ROOT.'./config/config_ucenter.php'; require_once DISCUZ_ROOT.'./uc_client/client.php'; } function loadcache($cachenames, $force = false) { global $_G; static $loadedcache = array(); $cachenames = is_array($cachenames) ? $cachenames : array($cachenames); $caches = array(); foreach ($cachenames as $k) { if(!isset($loadedcache[$k]) || $force) { $caches[] = $k; $loadedcache[$k] = true; } } if(!empty($caches)) { $cachedata = C::t('common_syscache')->fetch_all($caches); foreach($cachedata as $cname => $data) { if($cname == 'setting') { $_G['setting'] = $data; } elseif($cname == 'usergroup_'.$_G['groupid']) { $_G['cache'][$cname] = $_G['group'] = $data; } elseif($cname == 'style_default') { $_G['cache'][$cname] = $_G['style'] = $data; } elseif($cname == 'grouplevels') { $_G['grouplevels'] = $data; } else { $_G['cache'][$cname] = $data; } } } return true; } function dgmdate($timestamp, $format = 'dt', $timeoffset = '9999', $uformat = '') { global $_G; $format == 'u' && !$_G['setting']['dateconvert'] && $format = 'dt'; static $dformat, $tformat, $dtformat, $offset, $lang; if($dformat === null) { $dformat = getglobal('setting/dateformat'); $tformat = getglobal('setting/timeformat'); $dtformat = $dformat.' '.$tformat; $offset = getglobal('member/timeoffset'); $sysoffset = getglobal('setting/timeoffset'); $offset = $offset == 9999 ? ($sysoffset ? $sysoffset : 0) : $offset; $lang = lang('core', 'date'); } $timeoffset = $timeoffset == 9999 ? $offset : $timeoffset; $timestamp += $timeoffset * 3600; $format = empty($format) || $format == 'dt' ? $dtformat : ($format == 'd' ? $dformat : ($format == 't' ? $tformat : $format)); if($format == 'u') { $todaytimestamp = TIMESTAMP - (TIMESTAMP + $timeoffset * 3600) % 86400 + $timeoffset * 3600; $s = gmdate(!$uformat ? $dtformat : $uformat, $timestamp); $time = TIMESTAMP + $timeoffset * 3600 - $timestamp; if($timestamp >= $todaytimestamp) { if($time > 3600) { $return = intval($time / 3600).' '.$lang['hour'].$lang['before']; } elseif($time > 1800) { $return = $lang['half'].$lang['hour'].$lang['before']; } elseif($time > 60) { $return = intval($time / 60).' '.$lang['min'].$lang['before']; } elseif($time > 0) { $return = $time.' '.$lang['sec'].$lang['before']; } elseif($time == 0) { $return = $lang['now']; } else { $return = $s; } if($time >=0 && !defined('IN_MOBILE')) { $return = ''.$return.''; } } elseif(($days = intval(($todaytimestamp - $timestamp) / 86400)) >= 0 && $days < 7) { if($days == 0) { $return = $lang['yday'].' '.gmdate($tformat, $timestamp); } elseif($days == 1) { $return = $lang['byday'].' '.gmdate($tformat, $timestamp); } else { $return = ($days + 1).' '.$lang['day'].$lang['before']; } if(!defined('IN_MOBILE')) { $return = ''.$return.''; } } else { $return = $s; } return $return; } else { return gmdate($format, $timestamp); } } function dmktime($date) { if(strpos($date, '-')) { $time = explode('-', $date); return mktime(0, 0, 0, $time[1], $time[2], $time[0]); } return 0; } function dnumber($number) { return abs($number) > 10000 ? ''.intval($number / 10000).lang('core', '10k').'' : $number; } function savecache($cachename, $data) { C::t('common_syscache')->insert($cachename, $data); } function save_syscache($cachename, $data) { savecache($cachename, $data); } function block_get($parameter) { include_once libfile('function/block'); block_get_batch($parameter); } function block_display($bid) { include_once libfile('function/block'); block_display_batch($bid); } function dimplode($array) { if(!empty($array)) { $array = array_map('addslashes', $array); return "'".implode("','", is_array($array) ? $array : array($array))."'"; } else { return 0; } } function libfile($libname, $folder = '') { $libpath = '/source/'.$folder; if(strstr($libname, '/')) { list($pre, $name) = explode('/', $libname); $path = "{$libpath}/{$pre}/{$pre}_{$name}"; } else { $path = "{$libpath}/{$libname}"; } return preg_match('/^[\w\d\/_]+$/i', $path) ? realpath(DISCUZ_ROOT.$path.'.php') : false; } function dstrlen($str) { if(strtolower(CHARSET) != 'utf-8') { return strlen($str); } $count = 0; for($i = 0; $i < strlen($str); $i++){ $value = ord($str[$i]); if($value > 127) { $count++; if($value >= 192 && $value <= 223) $i++; elseif($value >= 224 && $value <= 239) $i = $i + 2; elseif($value >= 240 && $value <= 247) $i = $i + 3; } $count++; } return $count; } function cutstr($string, $length, $dot = ' ...') { if(strlen($string) <= $length) { return $string; } $pre = chr(1); $end = chr(1); $string = str_replace(array('&', '"', '<', '>'), array($pre.'&'.$end, $pre.'"'.$end, $pre.'<'.$end, $pre.'>'.$end), $string); $strcut = ''; if(strtolower(CHARSET) == 'utf-8') { $n = $tn = $noc = 0; while($n < strlen($string)) { $t = ord($string[$n]); if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) { $tn = 1; $n++; $noc++; } elseif(194 <= $t && $t <= 223) { $tn = 2; $n += 2; $noc += 2; } elseif(224 <= $t && $t <= 239) { $tn = 3; $n += 3; $noc += 2; } elseif(240 <= $t && $t <= 247) { $tn = 4; $n += 4; $noc += 2; } elseif(248 <= $t && $t <= 251) { $tn = 5; $n += 5; $noc += 2; } elseif($t == 252 || $t == 253) { $tn = 6; $n += 6; $noc += 2; } else { $n++; } if($noc >= $length) { break; } } if($noc > $length) { $n -= $tn; } $strcut = substr($string, 0, $n); } else { $_length = $length - 1; for($i = 0; $i < $length; $i++) { if(ord($string[$i]) <= 127) { $strcut .= $string[$i]; } else if($i < $_length) { $strcut .= $string[$i].$string[++$i]; } } } $strcut = str_replace(array($pre.'&'.$end, $pre.'"'.$end, $pre.'<'.$end, $pre.'>'.$end), array('&', '"', '<', '>'), $strcut); $pos = strrpos($strcut, chr(1)); if($pos !== false) { $strcut = substr($strcut,0,$pos); } return $strcut.$dot; } function dstripslashes($string) { if(empty($string)) return $string; if(is_array($string)) { foreach($string as $key => $val) { $string[$key] = dstripslashes($val); } } else { $string = stripslashes($string); } return $string; } function aidencode($aid, $type = 0, $tid = 0) { global $_G; $s = !$type ? $aid.'|'.substr(md5($aid.md5($_G['config']['security']['authkey']).TIMESTAMP.$_G['uid']), 0, 8).'|'.TIMESTAMP.'|'.$_G['uid'].'|'.$tid : $aid.'|'.md5($aid.md5($_G['config']['security']['authkey']).TIMESTAMP).'|'.TIMESTAMP; return rawurlencode(base64_encode($s)); } function getforumimg($aid, $nocache = 0, $w = 140, $h = 140, $type = '') { global $_G; $key = dsign($aid.'|'.$w.'|'.$h); return 'forum.php?mod=image&aid='.$aid.'&size='.$w.'x'.$h.'&key='.rawurlencode($key).($nocache ? '&nocache=yes' : '').($type ? '&type='.$type : ''); } function rewriteoutput($type, $returntype, $host) { global $_G; $fextra = ''; if($type == 'forum_forumdisplay') { list(,,, $fid, $page, $extra) = func_get_args(); $r = array( '{fid}' => empty($_G['setting']['forumkeys'][$fid]) ? $fid : $_G['setting']['forumkeys'][$fid], '{page}' => $page ? $page : 1, ); } elseif($type == 'forum_viewthread') { list(,,, $tid, $page, $prevpage, $extra) = func_get_args(); $r = array( '{tid}' => $tid, '{page}' => $page ? $page : 1, '{prevpage}' => $prevpage && !IS_ROBOT ? $prevpage : 1, ); } elseif($type == 'home_space') { list(,,, $uid, $username, $extra) = func_get_args(); $_G['setting']['rewritecompatible'] && $username = rawurlencode($username); $r = array( '{user}' => $uid ? 'uid' : 'username', '{value}' => $uid ? $uid : $username, ); } elseif($type == 'home_blog') { list(,,, $uid, $blogid, $extra) = func_get_args(); $r = array( '{uid}' => $uid, '{blogid}' => $blogid, ); } elseif($type == 'group_group') { list(,,, $fid, $page, $extra) = func_get_args(); $r = array( '{fid}' => $fid, '{page}' => $page ? $page : 1, ); } elseif($type == 'portal_topic') { list(,,, $name, $extra) = func_get_args(); $r = array( '{name}' => $name, ); } elseif($type == 'portal_article') { list(,,, $id, $page, $extra) = func_get_args(); $r = array( '{id}' => $id, '{page}' => $page ? $page : 1, ); } elseif($type == 'forum_archiver') { list(,, $action, $value, $page, $extra) = func_get_args(); $host = ''; $r = array( '{action}' => $action, '{value}' => $value, ); if($page) { $fextra = '?page='.$page; } } elseif($type == 'plugin') { list(,, $pluginid, $module,, $param, $extra) = func_get_args(); $host = ''; $r = array( '{pluginid}' => $pluginid, '{module}' => $module, ); if($param) { $fextra = '?'.$param; } } $href = str_replace(array_keys($r), $r, $_G['setting']['rewriterule'][$type]).$fextra; if(!$returntype) { return ''; } else { return $host.$href; } } function mobilereplace($file, $replace) { return helper_mobile::mobilereplace($file, $replace); } function mobileoutput() { helper_mobile::mobileoutput(); } function output() { global $_G; if(defined('DISCUZ_OUTPUTED')) { return; } else { define('DISCUZ_OUTPUTED', 1); } if(!empty($_G['blockupdate'])) { block_updatecache($_G['blockupdate']['bid']); } if(defined('IN_MOBILE')) { mobileoutput(); } $havedomain = implode('', $_G['setting']['domain']['app']); if($_G['setting']['rewritestatus'] || !empty($havedomain)) { $content = ob_get_contents(); $content = output_replace($content); ob_end_clean(); $_G['gzipcompress'] ? ob_start('ob_gzhandler') : ob_start(); echo $content; } if(isset($_G['makehtml'])) { helper_makehtml::make_html(); } if($_G['setting']['ftp']['connid']) { @ftp_close($_G['setting']['ftp']['connid']); } $_G['setting']['ftp'] = array(); if(defined('CACHE_FILE') && CACHE_FILE && !defined('CACHE_FORBIDDEN') && !defined('IN_MOBILE') && !IS_ROBOT && !checkmobile()) { if(diskfreespace(DISCUZ_ROOT.'./'.$_G['setting']['cachethreaddir']) > 1000000) { if($fp = @fopen(CACHE_FILE, 'w')) { flock($fp, LOCK_EX); $content = empty($content) ? ob_get_contents() : $content; $temp_md5 = md5(substr($_G['timestamp'], 0, -3).substr($_G['config']['security']['authkey'], 3, -3)); $temp_formhash = substr($temp_md5, 8, 8); $content = preg_replace('/(name=[\'|\"]formhash[\'|\"] value=[\'\"]|formhash=)('.constant("FORMHASH").')/ismU', '${1}'.$temp_formhash, $content); $temp_siteurl = 'siteurl_'.substr($temp_md5, 16, 8); $content = preg_replace('/("|\')('.preg_quote($_G['siteurl'], '/').')/ismU', '${1}'.$temp_siteurl, $content); fwrite($fp, empty($content) ? ob_get_contents() : $content); } @fclose($fp); chmod(CACHE_FILE, 0777); } } if(defined('DISCUZ_DEBUG') && DISCUZ_DEBUG && @include(libfile('function/debug'))) { function_exists('debugmessage') && debugmessage(); } } function output_replace($content) { global $_G; if(defined('IN_MODCP') || defined('IN_ADMINCP')) return $content; if(!empty($_G['setting']['output']['str']['search'])) { if(empty($_G['setting']['domain']['app']['default'])) { $_G['setting']['output']['str']['replace'] = str_replace('{CURHOST}', $_G['siteurl'], $_G['setting']['output']['str']['replace']); } $content = str_replace($_G['setting']['output']['str']['search'], $_G['setting']['output']['str']['replace'], $content); } if(!empty($_G['setting']['output']['preg']['search']) && (empty($_G['setting']['rewriteguest']) || empty($_G['uid']))) { if(empty($_G['setting']['domain']['app']['default'])) { $_G['setting']['output']['preg']['search'] = str_replace('\{CURHOST\}', preg_quote($_G['siteurl'], '/'), $_G['setting']['output']['preg']['search']); $_G['setting']['output']['preg']['replace'] = str_replace('{CURHOST}', $_G['siteurl'], $_G['setting']['output']['preg']['replace']); } foreach($_G['setting']['output']['preg']['search'] as $key => $value) { $content = preg_replace_callback($value, create_function('$matches', 'return '.$_G['setting']['output']['preg']['replace'][$key].';'), $content); } } return $content; } function output_ajax() { global $_G; $s = ob_get_contents(); ob_end_clean(); $s = preg_replace("/([\\x01-\\x08\\x0b-\\x0c\\x0e-\\x1f])+/", ' ', $s); $s = str_replace(array(chr(0), ']]>'), array(' ', ']]>'), $s); if(defined('DISCUZ_DEBUG') && DISCUZ_DEBUG && @include(libfile('function/debug'))) { function_exists('debugmessage') && $s .= debugmessage(1); } $havedomain = implode('', $_G['setting']['domain']['app']); if($_G['setting']['rewritestatus'] || !empty($havedomain)) { $s = output_replace($s); } return $s; } function runhooks($scriptextra = '') { if(!defined('HOOKTYPE')) { define('HOOKTYPE', !defined('IN_MOBILE') ? 'hookscript' : 'hookscriptmobile'); } if(defined('CURMODULE')) { global $_G; if($_G['setting']['plugins']['func'][HOOKTYPE]['common']) { hookscript('common', 'global', 'funcs', array(), 'common'); } hookscript(CURMODULE, $_G['basescript'], 'funcs', array(), '', $scriptextra); } } function hookscript($script, $hscript, $type = 'funcs', $param = array(), $func = '', $scriptextra = '') { global $_G; static $pluginclasses; if($hscript == 'home') { if($script == 'space') { $scriptextra = !$scriptextra ? $_GET['do'] : $scriptextra; $script = 'space'.(!empty($scriptextra) ? '_'.$scriptextra : ''); } elseif($script == 'spacecp') { $scriptextra = !$scriptextra ? $_GET['ac'] : $scriptextra; $script .= !empty($scriptextra) ? '_'.$scriptextra : ''; } } if(!isset($_G['setting'][HOOKTYPE][$hscript][$script][$type])) { return; } if(!isset($_G['cache']['plugin'])) { loadcache('plugin'); } foreach((array)$_G['setting'][HOOKTYPE][$hscript][$script]['module'] as $identifier => $include) { if($_G['pluginrunlist'] && !in_array($identifier, $_G['pluginrunlist'])) { continue; } $hooksadminid[$identifier] = !$_G['setting'][HOOKTYPE][$hscript][$script]['adminid'][$identifier] || ($_G['setting'][HOOKTYPE][$hscript][$script]['adminid'][$identifier] && $_G['adminid'] > 0 && $_G['setting']['hookscript'][$hscript][$script]['adminid'][$identifier] >= $_G['adminid']); if($hooksadminid[$identifier]) { @include_once DISCUZ_ROOT.'./source/plugin/'.$include.'.class.php'; } } if(@is_array($_G['setting'][HOOKTYPE][$hscript][$script][$type])) { $_G['inhookscript'] = true; $funcs = !$func ? $_G['setting'][HOOKTYPE][$hscript][$script][$type] : array($func => $_G['setting'][HOOKTYPE][$hscript][$script][$type][$func]); foreach($funcs as $hookkey => $hookfuncs) { foreach($hookfuncs as $hookfunc) { if($hooksadminid[$hookfunc[0]]) { $classkey = (HOOKTYPE != 'hookscriptmobile' ? '' : 'mobile').'plugin_'.($hookfunc[0].($hscript != 'global' ? '_'.$hscript : '')); if(!class_exists($classkey, false)) { continue; } if(!isset($pluginclasses[$classkey])) { $pluginclasses[$classkey] = new $classkey; } if(!method_exists($pluginclasses[$classkey], $hookfunc[1])) { continue; } $return = call_user_func(array($pluginclasses[$classkey], $hookfunc[1]), $param); if(substr($hookkey, -7) == '_extend' && !empty($_G['setting']['pluginhooks'][$hookkey])) { continue; } if(is_array($return)) { if(!isset($_G['setting']['pluginhooks'][$hookkey]) || is_array($_G['setting']['pluginhooks'][$hookkey])) { foreach($return as $k => $v) { $_G['setting']['pluginhooks'][$hookkey][$k] .= $v; } } else { foreach($return as $k => $v) { $_G['setting']['pluginhooks'][$hookkey][$k] = $v; } } } else { if(!is_array($_G['setting']['pluginhooks'][$hookkey])) { $_G['setting']['pluginhooks'][$hookkey] .= $return; } else { foreach($_G['setting']['pluginhooks'][$hookkey] as $k => $v) { $_G['setting']['pluginhooks'][$hookkey][$k] .= $return; } } } } } } } $_G['inhookscript'] = false; } function hookscriptoutput($tplfile) { global $_G; if(!empty($_G['hookscriptoutput'])) { return; } hookscript('global', 'global'); $_G['hookscriptoutput'] = true; if(defined('CURMODULE')) { $param = array('template' => $tplfile, 'message' => $_G['hookscriptmessage'], 'values' => $_G['hookscriptvalues']); hookscript(CURMODULE, $_G['basescript'], 'outputfuncs', $param); } } function pluginmodule($pluginid, $type) { global $_G; $pluginid = $pluginid ? preg_replace("/[^A-Za-z0-9_:]/", '', $pluginid) : ''; if(!isset($_G['cache']['plugin'])) { loadcache('plugin'); } list($identifier, $module) = explode(':', $pluginid); if(!is_array($_G['setting']['plugins'][$type]) || !array_key_exists($pluginid, $_G['setting']['plugins'][$type])) { showmessage('plugin_nonexistence'); } if(!empty($_G['setting']['plugins'][$type][$pluginid]['url'])) { dheader('location: '.$_G['setting']['plugins'][$type][$pluginid]['url']); } $directory = $_G['setting']['plugins'][$type][$pluginid]['directory']; if(empty($identifier) || !preg_match("/^[a-z]+[a-z0-9_]*\/$/i", $directory) || !preg_match("/^[a-z0-9_\-]+$/i", $module)) { showmessage('undefined_action'); } if(@!file_exists(DISCUZ_ROOT.($modfile = './source/plugin/'.$directory.$module.'.inc.php'))) { showmessage('plugin_module_nonexistence', '', array('mod' => $modfile)); } return DISCUZ_ROOT.$modfile; } function updatecreditbyaction($action, $uid = 0, $extrasql = array(), $needle = '', $coef = 1, $update = 1, $fid = 0) { $credit = credit::instance(); if($extrasql) { $credit->extrasql = $extrasql; } return $credit->execrule($action, $uid, $needle, $coef, $update, $fid); } function checklowerlimit($action, $uid = 0, $coef = 1, $fid = 0, $returnonly = 0) { require_once libfile('function/credit'); return _checklowerlimit($action, $uid, $coef, $fid, $returnonly); } function batchupdatecredit($action, $uids = 0, $extrasql = array(), $coef = 1, $fid = 0) { $credit = & credit::instance(); if($extrasql) { $credit->extrasql = $extrasql; } return $credit->updatecreditbyrule($action, $uids, $coef, $fid); } function updatemembercount($uids, $dataarr = array(), $checkgroup = true, $operation = '', $relatedid = 0, $ruletxt = '', $customtitle = '', $custommemo = '') { if(!empty($uids) && (is_array($dataarr) && $dataarr)) { require_once libfile('function/credit'); return _updatemembercount($uids, $dataarr, $checkgroup, $operation, $relatedid, $ruletxt, $customtitle, $custommemo); } return true; } function checkusergroup($uid = 0) { $credit = & credit::instance(); $credit->checkusergroup($uid); } function checkformulasyntax($formula, $operators, $tokens) { $var = implode('|', $tokens); $operator = implode('', $operators); $operator = str_replace( array('+', '-', '*', '/', '(', ')', '{', '}', '\''), array('\+', '\-', '\*', '\/', '\(', '\)', '\{', '\}', '\\\''), $operator ); if(!empty($formula)) { if(!preg_match("/^([$operator\.\d\(\)]|(($var)([$operator\(\)]|$)+))+$/", $formula) || !is_null(eval(preg_replace("/($var)/", "\$\\1", $formula).';'))){ return false; } } return true; } function checkformulacredits($formula) { return checkformulasyntax( $formula, array('+', '-', '*', '/', ' '), array('extcredits[1-8]', 'digestposts', 'posts', 'threads', 'oltime', 'friends', 'doings', 'polls', 'blogs', 'albums', 'sharings') ); } function debug($var = null, $vardump = false) { echo '
';
	$vardump = empty($var) ? true : $vardump;
	if($vardump) {
		var_dump($var);
	} else {
		print_r($var);
	}
	exit();
}

function debuginfo() {
	global $_G;
	if(getglobal('setting/debug')) {
		$db = & DB::object();
		$_G['debuginfo'] = array(
		    'time' => number_format((microtime(true) - $_G['starttime']), 6),
		    'queries' => $db->querynum,
		    'memory' => ucwords(C::memory()->type)
		    );
		if($db->slaveid) {
			$_G['debuginfo']['queries'] = 'Total '.$db->querynum.', Slave '.$db->slavequery;
		}
		return TRUE;
	} else {
		return FALSE;
	}
}

function getfocus_rand($module) {
	global $_G;

	if(empty($_G['setting']['focus']) || !array_key_exists($module, $_G['setting']['focus']) || !empty($_G['cookie']['nofocus_'.$module]) || !$_G['setting']['focus'][$module]) {
		return null;
	}
	loadcache('focus');
	if(empty($_G['cache']['focus']['data']) || !is_array($_G['cache']['focus']['data'])) {
		return null;
	}
	$focusid = $_G['setting']['focus'][$module][array_rand($_G['setting']['focus'][$module])];
	return $focusid;
}

function check_seccode($value, $idhash, $fromjs = 0, $modid = '') {
	return helper_seccheck::check_seccode($value, $idhash, $fromjs, $modid);
}

function check_secqaa($value, $idhash) {
	return helper_seccheck::check_secqaa($value, $idhash);
}

function seccheck($rule, $param = array()) {
	return helper_seccheck::seccheck($rule, $param);
}

function make_seccode($seccode = '') {
	return helper_seccheck::make_seccode($seccode);
}

function make_secqaa() {
	return helper_seccheck::make_secqaa();
}

function adshow($parameter) {
	global $_G;
	if($_G['inajax'] || $_G['group']['closead']) {
		return;
	}
	$return = (isset($_G['config']['plugindeveloper']) && $_G['config']['plugindeveloper'] == 2) ? '[ad '.$parameter.']' : '';
	$params = explode('/', $parameter);
	$customid = 0;
	$customc = explode('_', $params[0]);
	if($customc[0] == 'custom') {
		$params[0] = $customc[0];
		$customid = $customc[1];
	}
	$adcontent = null;
	if(empty($_G['setting']['advtype']) || !in_array($params[0], $_G['setting']['advtype'])) {
		$adcontent = '';
	}
	if($adcontent === null) {
		loadcache('advs');
		$adids = array();
		$evalcode = &$_G['cache']['advs']['evalcode'][$params[0]];
		$parameters = &$_G['cache']['advs']['parameters'][$params[0]];
		$codes = &$_G['cache']['advs']['code'][$_G['basescript']][$params[0]];
		if(!empty($codes)) {
			foreach($codes as $adid => $code) {
				$parameter = &$parameters[$adid];
				$checked = true;
				@eval($evalcode['check']);
				if($checked) {
					$adids[] = $adid;
				}
			}
			if(!empty($adids)) {
				$adcode = $extra = '';
				@eval($evalcode['create']);
				if(empty($notag)) {
					$adcontent = ''.$adcode.'';
				} else {
					$adcontent = $adcode;
				}
			}
		}
	}
	$adfunc = 'ad_'.$params[0];
	$_G['setting']['pluginhooks'][$adfunc] = null;
	hookscript('ad', 'global', 'funcs', array('params' => $params, 'content' => $adcontent, 'customid' => $customid), $adfunc);
	if(!$_G['setting']['hookscript']['global']['ad']['funcs'][$adfunc]) {
		hookscript('ad', $_G['basescript'], 'funcs', array('params' => $params, 'content' => $adcontent, 'customid' => $customid), $adfunc);
	}
	return $return.($_G['setting']['pluginhooks'][$adfunc] === null ? $adcontent : $_G['setting']['pluginhooks'][$adfunc]);
}

function showmessage($message, $url_forward = '', $values = array(), $extraparam = array(), $custom = 0) {
	require_once libfile('function/message');
	return dshowmessage($message, $url_forward, $values, $extraparam, $custom);
}

function submitcheck($var, $allowget = 0, $seccodecheck = 0, $secqaacheck = 0) {
	if(!getgpc($var)) {
		return FALSE;
	} else {
		return helper_form::submitcheck($var, $allowget, $seccodecheck, $secqaacheck);
	}
}

function multi($num, $perpage, $curpage, $mpurl, $maxpages = 0, $page = 10, $autogoto = FALSE, $simple = FALSE, $jsfunc = FALSE) {
	return $num > $perpage ? helper_page::multi($num, $perpage, $curpage, $mpurl, $maxpages, $page, $autogoto, $simple, $jsfunc) : '';
}

function simplepage($num, $perpage, $curpage, $mpurl) {
	return helper_page::simplepage($num, $perpage, $curpage, $mpurl);
}

function censor($message, $modword = NULL, $return = FALSE, $modasban = TRUE) {
	return helper_form::censor($message, $modword, $return, $modasban);
}

function censormod($message) {
	return getglobal('group/ignorecensor') || !$message ? false :helper_form::censormod($message);
}

function space_merge(&$values, $tablename, $isarchive = false) {
	global $_G;

	$uid = empty($values['uid'])?$_G['uid']:$values['uid'];
	$var = "member_{$uid}_{$tablename}";
	if($uid) {
		if(!isset($_G[$var])) {
			$ext = $isarchive ? '_archive' : '';
			if(($_G[$var] = C::t('common_member_'.$tablename.$ext)->fetch($uid)) !== false) {
				if($tablename == 'field_home') {
					$_G['setting']['privacy'] = empty($_G['setting']['privacy']) ? array() : (is_array($_G['setting']['privacy']) ? $_G['setting']['privacy'] : dunserialize($_G['setting']['privacy']));
					$_G[$var]['privacy'] = empty($_G[$var]['privacy'])? array() : is_array($_G[$var]['privacy']) ? $_G[$var]['privacy'] : dunserialize($_G[$var]['privacy']);
					foreach (array('feed','view','profile') as $pkey) {
						if(empty($_G[$var]['privacy'][$pkey]) && !isset($_G[$var]['privacy'][$pkey])) {
							$_G[$var]['privacy'][$pkey] = isset($_G['setting']['privacy'][$pkey]) ? $_G['setting']['privacy'][$pkey] : array();
						}
					}
					$_G[$var]['acceptemail'] = empty($_G[$var]['acceptemail'])? array() : dunserialize($_G[$var]['acceptemail']);
					if(empty($_G[$var]['acceptemail'])) {
						$_G[$var]['acceptemail'] = empty($_G['setting']['acceptemail'])?array():dunserialize($_G['setting']['acceptemail']);
					}
				}
			} else {
				C::t('common_member_'.$tablename.$ext)->insert(array('uid'=>$uid));
				$_G[$var] = array();
			}
		}
		$values = array_merge($values, $_G[$var]);
	}
}

function runlog($file, $message, $halt=0) {
	helper_log::runlog($file, $message, $halt);
}

function stripsearchkey($string) {
	$string = trim($string);
	$string = str_replace('*', '%', addcslashes($string, '%_'));
	return $string;
}

function dmkdir($dir, $mode = 0777, $makeindex = TRUE){
	if(!is_dir($dir)) {
		dmkdir(dirname($dir), $mode, $makeindex);
		@mkdir($dir, $mode);
		if(!empty($makeindex)) {
			@touch($dir.'/index.html'); @chmod($dir.'/index.html', 0777);
		}
	}
	return true;
}

function dreferer($default = '') {
	global $_G;

	$default = empty($default) && $_ENV['curapp'] ? $_ENV['curapp'].'.php' : '';
	$_G['referer'] = !empty($_GET['referer']) ? $_GET['referer'] : $_SERVER['HTTP_REFERER'];
	$_G['referer'] = substr($_G['referer'], -1) == '?' ? substr($_G['referer'], 0, -1) : $_G['referer'];

	if(strpos($_G['referer'], 'member.php?mod=logging')) {
		$_G['referer'] = $default;
	}

	$reurl = parse_url($_G['referer']);

	if(!$reurl || (isset($reurl['scheme']) && !in_array(strtolower($reurl['scheme']), array('http', 'https')))) {
		$_G['referer'] = '';
	}

	list($http_host,)=explode(':', $_SERVER['HTTP_HOST']);

	if(!empty($reurl['host']) && !in_array($reurl['host'], array($http_host, 'www.'.$http_host)) && !in_array($http_host, array($reurl['host'], 'www.'.$reurl['host']))) {
		if(!in_array($reurl['host'], $_G['setting']['domain']['app']) && !isset($_G['setting']['domain']['list'][$reurl['host']])) {
			$domainroot = substr($reurl['host'], strpos($reurl['host'], '.')+1);
			if(empty($_G['setting']['domain']['root']) || (is_array($_G['setting']['domain']['root']) && !in_array($domainroot, $_G['setting']['domain']['root']))) {
				$_G['referer'] = $_G['setting']['domain']['defaultindex'] ? $_G['setting']['domain']['defaultindex'] : 'index.php';
			}
		}
	} elseif(empty($reurl['host'])) {
		$_G['referer'] = $_G['siteurl'].'./'.$_G['referer'];
	}

	$_G['referer'] = durlencode($_G['referer']);
	return $_G['referer'];
}

function ftpcmd($cmd, $arg1 = '') {
	static $ftp;
	$ftpconfig = getglobal('setting/ftp');
	if(empty($ftpconfig['on']) || empty($ftpconfig['host'])) {
		return $cmd == 'error' ? -101 : 0;
	} elseif($ftp == null) {
		$ftp = & discuz_ftp::instance();
	}
	if(!$ftp->enabled) {
		return $ftp->error();
	} elseif($ftp->enabled && !$ftp->connectid) {
		$ftp->connect();
	}
	switch ($cmd) {
		case 'upload' : return $ftp->upload(getglobal('setting/attachdir').'/'.$arg1, $arg1); break;
		case 'delete' : return $ftp->ftp_delete($arg1); break;
		case 'close'  : return $ftp->ftp_close(); break;
		case 'error'  : return $ftp->error(); break;
		case 'object' : return $ftp; break;
		default       : return false;
	}

}

function diconv($str, $in_charset, $out_charset = CHARSET, $ForceTable = FALSE) {
	global $_G;

	$in_charset = strtoupper($in_charset);
	$out_charset = strtoupper($out_charset);

	if(empty($str) || $in_charset == $out_charset) {
		return $str;
	}

	$out = '';

	if(!$ForceTable) {
		if(function_exists('iconv')) {
			$out = iconv($in_charset, $out_charset.'//IGNORE', $str);
		} elseif(function_exists('mb_convert_encoding')) {
			$out = mb_convert_encoding($str, $out_charset, $in_charset);
		}
	}

	if($out == '') {
		$chinese = new Chinese($in_charset, $out_charset, true);
		$out = $chinese->Convert($str);
	}

	return $out;
}

function widthauto() {
	global $_G;
	if($_G['disabledwidthauto']) {
		return 0;
	}
	if(!empty($_G['widthauto'])) {
		return $_G['widthauto'] > 0 ? 1 : 0;
	}
	if($_G['setting']['switchwidthauto'] && !empty($_G['cookie']['widthauto'])) {
		return $_G['cookie']['widthauto'] > 0 ? 1 : 0;
	} else {
		return $_G['setting']['allowwidthauto'] ? 0 : 1;
	}
}
function renum($array) {
	$newnums = $nums = array();
	foreach ($array as $id => $num) {
		$newnums[$num][] = $id;
		$nums[$num] = $num;
	}
	return array($nums, $newnums);
}

function sizecount($size) {
	if($size >= 1073741824) {
		$size = round($size / 1073741824 * 100) / 100 . ' GB';
	} elseif($size >= 1048576) {
		$size = round($size / 1048576 * 100) / 100 . ' MB';
	} elseif($size >= 1024) {
		$size = round($size / 1024 * 100) / 100 . ' KB';
	} else {
		$size = intval($size) . ' Bytes';
	}
	return $size;
}

function swapclass($class1, $class2 = '') {
	static $swapc = null;
	$swapc = isset($swapc) && $swapc != $class1 ? $class1 : $class2;
	return $swapc;
}

function writelog($file, $log) {
	helper_log::writelog($file, $log);
}

function getstatus($status, $position) {
	$t = $status & pow(2, $position - 1) ? 1 : 0;
	return $t;
}

function setstatus($position, $value, $baseon = null) {
	$t = pow(2, $position - 1);
	if($value) {
		$t = $baseon | $t;
	} elseif ($baseon !== null) {
		$t = $baseon & ~$t;
	} else {
		$t = ~$t;
	}
	return $t & 0xFFFF;
}

function notification_add($touid, $type, $note, $notevars = array(), $system = 0) {
	return helper_notification::notification_add($touid, $type, $note, $notevars, $system);
}

function manage_addnotify($type, $from_num = 0, $langvar = array()) {
	helper_notification::manage_addnotify($type, $from_num, $langvar);
}

function sendpm($toid, $subject, $message, $fromid = '', $replypmid = 0, $isusername = 0, $type = 0) {
	return helper_pm::sendpm($toid, $subject, $message, $fromid, $replypmid, $isusername, $type);
}

function g_icon($groupid, $return = 0) {
	global $_G;
	if(empty($_G['cache']['usergroups'][$groupid]['icon'])) {
		$s =  '';
	} else {
		if(preg_match('/^https?:\/\//is', $_G['cache']['usergroups'][$groupid]['icon'])) {
			$s = '';
		} else {
			$s = '';
		}
	}
	if($return) {
		return $s;
	} else {
		echo $s;
	}
}
function updatediytemplate($targettplname = '', $tpldirectory = '') {
	$r = false;
	$alldata = !empty($targettplname) ? array( C::t('common_diy_data')->fetch($targettplname, $tpldirectory)) : C::t('common_diy_data')->range();
	require_once libfile('function/portalcp');
	foreach($alldata as $value) {
		$r = save_diy_data($value['tpldirectory'], $value['primaltplname'], $value['targettplname'], dunserialize($value['diycontent']));
	}
	return $r;
}

function space_key($uid, $appid=0) {
	global $_G;
	return substr(md5($_G['setting']['siteuniqueid'].'|'.$uid.(empty($appid)?'':'|'.$appid)), 8, 16);
}


function getposttablebytid($tids, $primary = 0) {
	return table_forum_post::getposttablebytid($tids, $primary);
}

function getposttable($tableid = 0, $prefix = false) {
	return table_forum_post::getposttable($tableid, $prefix);
}

function memory($cmd, $key='', $value='', $ttl = 0, $prefix = '') {
	if($cmd == 'check') {
		return  C::memory()->enable ? C::memory()->type : '';
	} elseif(C::memory()->enable && in_array($cmd, array('set', 'add', 'get', 'rm', 'inc', 'dec'))) {
		if(defined('DISCUZ_DEBUG') && DISCUZ_DEBUG) {
			if(is_array($key)) {
				foreach($key as $k) {
					C::memory()->debug[$cmd][] = ($cmd == 'get' || $cmd == 'rm' || $cmd == 'add' ? $value : '').$prefix.$k;
				}
			} else {
				C::memory()->debug[$cmd][] = ($cmd == 'get' || $cmd == 'rm' || $cmd == 'add' ? $value : '').$prefix.$key;
			}
		}
		switch ($cmd) {
			case 'set': return C::memory()->set($key, $value, $ttl, $prefix); break;
			case 'add': return C::memory()->add($key, $value, $ttl, $prefix); break;
			case 'get': return C::memory()->get($key, $value); break;
			case 'rm': return C::memory()->rm($key, $value); break;
			case 'inc': return C::memory()->inc($key, $value ? $value : 1); break;
			case 'dec': return C::memory()->dec($key, $value ? $value : -1); break;
		}
	}
	return null;
}

function ipaccess($ip, $accessli



[原创]报到! - 文学艺术 -  台山同学网 -  Powered by Discuz!




















台山同学网

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2620|回复: 9

[原创]报到!

[复制链接]

该用户从未签到

18

主题

210

帖子

903

积分

排长

积分
903
发表于 2006-10-13 21:17:54 | 显示全部楼层 |阅读模式

偶尔发现这个网站,看到陌生而熟悉的身影,很高兴。感谢台前幕后操持的同学们。

前几天偶尔发现有个帖子里提到汪海洋,想起一篇旧作,贴来当见面礼,祝同学们健康开心。

fficeffice" />

童话之童

一、 跳格子

你小时侯究竟玩什么游戏呢?她常常反复地问。

跳格子,打飞机,跳橡皮筋,抓石仔,伏累累……她不满意了,翘起嘴巴,怎么一个我都没玩过的呢?一个!她加重了语气。

你们现在不流行这些了,你不是喜欢玩game、拼图、跳棋、七巧板吗?可是,可是,我想玩玩跳格子耶。她把尾音拉长,使出惯用的撒娇招数。

跳格子吗?我一向对技巧性活动感兴趣,学得快,动作优美,这是小学四年级体育老师说的。我这样告诉她时,她嘴角向下一撇,鼻子一耸,嘴里.嘻嘻地说,不相信。不相信?那我们来跳格子好了。

好啊!她高兴得跳起来。

这样的对话,常常过后就不算数了,没有时间,没有场地,对我来说,更多的,是没有兴趣。

其实,她对我跳格子的本事觊觎已久,我常说她的腿部柔韧性不够,是因为没有玩过我小时候的游戏。她总是不服气,然后说,你跳给我看看。

好。

乍暖还寒的日子,我果真放下一切繁务杂事,和她两个站在久违的阳光下,寒潮刚刚退却,草坪嫩嫩的小草在微风中摆着小手。我在地上方方正正地划好六对格子,将特意选好的一块小瓦片放在格子里。告诉她,弯起右腿,左腿单跳,将瓦片从这个格子踢到旁边的格子里,不能越线,也不能出界。

懂啦懂啦!她不耐烦了,学着我的动作一跳,哇……,瓦片地一声被她踩在脚底下。再跳,哐!瓦片飞出界外。我笑得弯下腰,她气得脸通红。行人经过,好奇而惊讶的目光,几个小孩也过来,站在一旁,你推我搡,跃跃欲试。

很快,他们就玩在一起,嘻嘻哈哈地没有了陌生和羞涩。我退在旁边,单腿跳了跳,感觉仍然不错。太阳暖洋洋地照着,只穿着一件单衣,身上竟有微汗。踢踢脚旁那块小小的瓦片,恍惚间,又回到了无拘无束的年代。一瞬间,身旁的嘻哈声渐渐隐退,代之以操场上追逐的疯狂,沙池里跳跃的欢呼,似是而非的花名外号,又模糊又清晰的呐喊声……

仿佛,业已消逝的脸孔,寻常的故事,从另外的轨道,重又回来身边。一种奇妙的向往在心间渐长——那些放肆而轻狂的日子哦。

她在跟小朋友道别了。

他们叫什么名字呀?……不知道。她还在踢那小瓦片,毫不在意我的提问。玩那么久,竟然也不问问叫什么吗。她才抬起头来,茫然地看着我,没有呀。

呵,这么一个共同玩耍的下午,对她来说也许是记忆的瞬息,很快消失了。只是多年以后,当有人跟她说,我也要玩跳格子,那时,她会不会想起,这样一个曾经阳光灿烂的下午呢?

一个又一个的瞬息,注定被她一个个丢失和遗忘,就象她的那些game、跳棋和不相信我的跳格子工夫一样,然后,她就长大了。她好奇我的过去,却不留意自己的现在,一个小小女孩,用自己的方式告诉我,回忆,为什么总在大人的词汇里出现。

蹦蹦跳跳地,她走在我前面,双手也没闲,身前身后摆着。也许,若干年以后,又该她陪另一个女孩或者男孩去玩跳格子吧?这一个泻满暖阳和冬意渐浓的日子,我竟恍惚起来。


二、那些公仔那些书

公仔书,即小人书。我指的当然是那种印刷粗糙,黑白两色,图案永远只分好人坏人的小开本连环画。童年,就在这种公仔书陪伴下,一步一趔地走过来了。

前几年在上海的书店里,突然看见小人书的招贴广告,脑子没来由地热了起来。多少年了,公仔书竟又出现。翻动貌似陌生的小书,生出几分惊喜。大多是古典名著,《红楼梦》,《水浒传》,《三国演义》……那次旅行的结果,是一百多本公仔书,由于超重,上飞机时要多交几十多块钱。

现在出版的公仔书,和以前的大相径庭。印刷精美,装潢别致,内容丰富,古典文学以连环图形式出现,是孩子们的福音哪。我买的那些,很有点古籍味道,信手翻阅,拙朴古雅气息徐来。只是,现在的孩子看这些公仔书,不知还有没有,我们小时候的兴奋和紧张呢?

公仔书是我们的成长密码,这是毋庸置疑的。透过公仔书,总能打开一些别人无法知道的记忆闸门,拾取关于成长的东西,比如责任感,使命感,信念,英雄情结,梦想激情,真善美等。公仔书,是童年连接外部世界和探索客观世界唯一的文化工具。

比如那个刘阿太,是公仔书里的反面人物,被手榴弹炸断一条腿,拄着拐杖。很长时间,这个丑陋形象是坏分子的化身。说谁不好,谁是刘阿太,憎恨谁,谁也是刘阿太,总之,刘阿太是永远不能翻身被人唾弃的人。现在还记得一位小朋友说的话,我,要做刘胡兰,宁死不做刘阿太。当然,死是什么他可能不懂,不过拿死来发誓,也说明当时人们思想淳朴,公仔书对小孩的潜移默化。

记得有史以来和同学结怨的,就为一本公仔书。《渔岛之子》,是父母送的生日礼物,拿到学校,小朋友们很羡慕,呼啦呼啦全围上来,嚷嚷要借去看。我用纸皮小心包好,每借一个叮咛一番,不准折角,不准弄脏,不准乱写乱画。那会儿,整天兴奋得不知天南地北,所有人对我言听计从。突然有一天,小朋友哭丧着脸说,书丢了。我懵,我怒,哭着叫着要他赔,可他没钱,又不敢告诉家长。我也不敢和家里说。

书丢了,所有欢乐和幸福也跟着丢失,梦往神牵着书里的情节,心里交织着痛惜、懊丧、后悔。甚至恨恨地想,小朋友肯定把书藏起故意不还我的。从此对他不理不睬。

如今想来真可笑,公仔书令我们贫乏的童年生活,增添多少值得回味和怀念的故事呀。现在的小孩,基本不能理解这种感情,他们也看公仔书,看分类繁多的公仔书,比如彩画书、粘贴书、立体书、发声书、漫画书,简直记不清自己有多少。此外,他们还玩电子游戏,看日本动画片,美国迪尼斯公司的儿童片,韩国的连载故事片,五彩缤纷,甚而眼花缭乱。

有那么多新潮的东西诱惑着,他们不可能将精神专注于某种读物上,更不会因为丢失一本公仔书而心思恍惚起来。时代文明的进步,使他们有更多的阅读自由和选择,也铸就了不能专心致志的习惯。烦躁喧嚣,浮光掠影是时代通病,在小孩子身上,不可避免地表现出来。他们看公仔书时,也许想的是《哈利·波特(第五、第六)》什么时候出版呢。

从一本小书带来了全部的欢乐,到忙于在书本、影片、多媒体中来回变换频道,这个社会,已经发生巨大变化。进步着,总是令人欣慰的。

三、海洋,谢谢你

有人说,他叫海洋。我心生一念,问,是曾经送我红胶线的海洋吗?他一楞,复呵呵大笑,有点尴尬地说,不记得了,应该不是吧?
我也笑了,其实我知道,他不是的。他不是那个手攥红胶线,掌心里淌着汗,然后偷偷塞到我手里,又一言不发地跑掉的小男生。

这一段往事,我只记得这些情节,在很长时间里,它根本就缩在记忆深处,而且还紧紧地拉上窗帘。我似乎不记得,或者,随着岁月默默地流转而消失了。

我以为,能在心路历程上刻下痕迹的,只是那些对生命有纪念价值的人和事。其他的,一如过往的风。

可是今天,那个短短头发、大眼睛、黑皮肤的男孩子,却以一种不可逆转的姿势,风一样盘旋着出现,轻轻地,掀开了那角帘幕,以及我曾经喜爱的红胶线。

小时候,很喜欢跳橡皮筋,一根红红的胶线,牵起无尽的欢乐和同学们的艳

羡。下课的十分钟时间,走廊上,操场边红胶线一拉,一得一,一得一,马兰开花二十一,二五六,二五七,二八二九三十一,童谣唱起来,大腿小腿跳起来。

也许年少爱闹事,也许童心作弄,几个男生,常来捣乱,故意冲过扯断胶线,还往女同学身上撞,然后嘻哈大笑,扬长而去。现在想来,那是小伙伴们寻求欢乐的所为,只是那时,谁喜欢鼻涕还没擦干的小毛头呢?并且,当时还流行男女同学互不理睬呢。

又一个下课的空隙,急急忙忙取出胶线,拉开,却发现断成无数小段,肯定是那些讨厌的男生干的,我气坏了。第二天上学,仍然气鼓鼓的不想说话。走过墙报栏时,一只小手,突然在面前出现,摊开,手心里一束红艳艳的胶线。我楞住了,他往我手里一塞,逃也似地跑开。

现在已经记不起,当时的表情和感觉,许是惊愕,是慌乱,是不解。因为,我只知道这个小男孩的名字,还知道他的家就在我家斜对面,只是,彼此从没说过话,他怎么,就给我红胶线呢?

事隔多年,其实我很少记起这段往事。但是,当这个叫海洋的人出现时,那个男孩子,就如滔滔海水汹涌着,呼啸着从记忆中冲出来。这时节便知道,其实有些人,有些事,不一定在生命里种下根,但它绮丽温和,或者粗糙笨拙,总在一个时间里留下气味。不是忘记了,不是丢失了,只是躲藏的太深太远,要用适当的温度,才能唤出业已冰冷的印象。

突然有一种奇怪的牵挂,一种莫名的心焦,那个男孩子现在怎样呢?他,还

记得这段往事吗,或者早已忘记了吧。这有什么要紧?我笑了,回想暖风一样,抚慰着沧桑的心。

如果,时间倒流到那个时候,我会说,海洋,谢谢你。



[此帖子已被 也也 在 2006-10-13 21:30:04 编辑过]

该用户从未签到

18

主题

210

帖子

903

积分

排长

积分
903
 楼主| 发表于 2006-10-13 21:31:37 | 显示全部楼层
好晕,三的排版总弄不好。
回复

使用道具 举报

该用户从未签到

39

主题

768

帖子

3498

积分

连长

积分
3498

社区居民

发表于 2006-10-14 05:18:27 | 显示全部楼层

也也,真实的故事最动人,谢谢你给我们送上这篇描写细腻,感人的回忆往事。

回复

使用道具 举报

该用户从未签到

18

主题

210

帖子

903

积分

排长

积分
903
 楼主| 发表于 2006-10-14 21:41:12 | 显示全部楼层
谢谢阅读.
回复

使用道具 举报

  • TA的每日心情
    开心
    2022-10-10 09:37
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    451

    主题

    8734

    帖子

    14万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    146748

    热心会员推广达人宣传达人突出贡献优秀版主论坛元老社区居民忠实会员最爱沙发社区劳模社区明星

    发表于 2006-10-15 09:22:47 | 显示全部楼层

    怎么现在才送上?征文比赛截止日期刚过。这样的好故事一定能胜出。

    不对,好故事随时都有人喜欢。请继续。

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2022-10-15 20:53
  • 签到天数: 7 天

    连续签到: 3 天

    [LV.3]偶尔看看II

    706

    主题

    1万

    帖子

    14万

    积分

    超级版主

    清溪流过碧山头 空水澄鲜一色秋

    Rank: 8Rank: 8

    积分
    145784

    活跃会员热心会员宣传达人突出贡献优秀版主论坛元老社区居民社区明星

    发表于 2006-10-15 11:14:37 | 显示全部楼层

    也也学妹:好平实流畅的童年回想,好文章!希望日后能常见到你的好作品。

    回复

    使用道具 举报

    该用户从未签到

    18

    主题

    210

    帖子

    903

    积分

    排长

    积分
    903
     楼主| 发表于 2006-10-15 20:16:54 | 显示全部楼层

    谢谢远游客和萝卜同学。没关系的,征文已提交了另一篇,猜一下呀。

    如同学们爱读,我将陆续发一些文字上来,恳请各位批评。

    回复

    使用道具 举报

    该用户从未签到

    19

    主题

    1043

    帖子

    3237

    积分

    连长

    积分
    3237
    发表于 2006-10-17 00:38:32 | 显示全部楼层
    引用
    原文由 也也 发表于 2006-10-15 20:16:54 :

    谢谢远游客和萝卜同学。没关系的,征文已提交了另一篇,猜一下呀。

    如同学们爱读,我将陆续发一些文字上来,恳请各位批评。


    也也:\"谢谢远游客和萝卜同学。没关系的,征文已提交了另一篇,猜一下呀。\"无聊已拜读了妳的佳作,请不要开示迷底。《征文》比赛引出真凤凰,我等之幸,同学网之光。
    回复

    使用道具 举报

    该用户从未签到

    6

    主题

    123

    帖子

    412

    积分

    排长

    积分
    412

    社区居民

    发表于 2006-10-17 01:37:30 | 显示全部楼层
    继续
    回复

    使用道具 举报

    该用户从未签到

    18

    主题

    210

    帖子

    903

    积分

    排长

    积分
    903
     楼主| 发表于 2006-10-17 21:41:47 | 显示全部楼层

    无聊同学,谢谢您阅读。不过您的话我不太明白,言重了吧:)

    回复

    使用道具 举报

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

    本版积分规则

    小黑屋|手机版|Archiver|台山同学会 ( 粤ICP备17038726号-1 )

    GMT+8, 2025-11-11 04:48 , Processed in 0.360423 second(s), 24 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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