function block_fetch_content($bid, $isjscall = false, $forceupdate = false) { global $_G; static $allowmem = null, $cachettl = null; if ($allowmem === null) { $allowmem = ($cachettl = getglobal('setting/memory/diyblockoutput')) !== null && memory('check'); } $str = ''; $block = empty($_G['block'][$bid]) ? array() : $_G['block'][$bid]; if (!$block) { return; } if ($forceupdate) { block_updatecache($bid, true); $block = $_G['block'][$bid]; } elseif ($block['cachetime'] > 0 && $_G['timestamp'] - $block['dateline'] > $block['cachetime']) { $block['cachetimerange'] = empty($block['cachetimerange']) ? isset($_G['setting']['blockcachetimerange']) ? $_G['setting']['blockcachetimerange'] : '' : $block['cachetimerange']; $inrange = empty($block['cachetimerange']) ? true : false; if (!$inrange) { $block['cachetimerange'] = explode(',', $block['cachetimerange']); $hour = date('G', TIMESTAMP); if ($block['cachetimerange'][0] <= $block['cachetimerange'][1]) { $inrange = $block['cachetimerange'][0] <= $hour && $block['cachetimerange'][1] >= $hour; } else { $inrange = !($block['cachetimerange'][1] < $hour && $block['cachetimerange'][0] > $hour); } } if ($isjscall || $block['punctualupdate']) { block_updatecache($bid, true); $block = $_G['block'][$bid]; } elseif ((empty($_G['blockupdate']) || $block['dateline'] < $_G['blockupdate']['dateline']) && $inrange) { $_G['blockupdate'] = array('bid' => $bid, 'dateline' => $block['dateline']); } } $hidediv = $isjscall || $block['blocktype']; $_cache_key = 'blockcache_' . ($isjscall ? 'js' : 'htm') . '_' . $bid; if ($allowmem && empty($block['hidedisplay']) && empty($block['nocache']) && ($str = memory('get', $_cache_key)) !== false) { } else { if ($hidediv) { if ($block['summary']) { $str .= $block['summary']; } $str .= block_template($bid); } else { if ($block['title']) { $str .= $block['title']; } $str .= '<div id="portal_block_' . $bid . '_content" class="dxb_bc">'; if ($block['summary']) { $str .= "<div class=\"portal_block_summary\">{$block['summary']}</div>"; } $str .= block_template($bid); $str .= '</div>'; } if ($allowmem && empty($block['hidedisplay']) && empty($block['nocache'])) { memory('set', $_cache_key, $str, C::t('common_block')->cache_ttl); } } if (!$hidediv) { $classname = !empty($block['classname']) ? $block['classname'] . ' ' : ''; $div = "<div id=\"portal_block_{$bid}\" class=\"{$classname}block move-span\">"; if (($_GET['diy'] === 'yes' || $_GET['inajax']) && check_diy_perm()) { $div .= "<div class='block-name'>{$block['name']} (ID:{$bid})</div>"; } $str = $div . $str . "</div>"; } if ($block['blockclass'] == 'html_html' && $block['script'] == 'search') { $str = strtr($str, array('{FORMHASH}' => FORMHASH)); } return !empty($block['hidedisplay']) ? '' : $str; }
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(); } if (!defined('IN_MOBILE') && !defined('IN_ARCHIVER')) { $tipsService = Cloud::loadClass('Service_DiscuzTips'); $tipsService->show(); } $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 ($_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') && !checkmobile()) { if (diskfreespace(DISCUZ_ROOT . './' . $_G['setting']['cachethreaddir']) > 1000000) { if ($fp = @fopen(CACHE_FILE, 'w')) { flock($fp, LOCK_EX); 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() { global $_G; if (defined('DISCUZ_OUTPUTED')) { return; } else { define('DISCUZ_OUTPUTED', 1); } if (!empty($_G['blockupdate'])) { block_updatecache($_G['blockupdate']['bid']); } $_G['domain'] = array(); foreach ($_G['config']['app']['domain'] as $app => $domain) { if ($domain || $_G['config']['app']['domain']['default']) { $domain = empty($domain) ? $_G['config']['app']['domain']['default'] : $domain; $_G['domain']['search'][$app] = "<a href=\"{$app}.php"; $_G['domain']['replace'][$app] = '<a href="http://' . $domain . $_G['siteroot'] . $app . '.php'; $_G['domain']['pregxp'][$app] = '<a href\\="http\\:\\/\\/(' . preg_quote($domain . $_G['siteroot'], '/') . ')' . preg_quote($app . '.php', '/'); } else { $_G['domain']['pregxp'][$app] = "<a href\\=\"(){$app}.php"; } } if ($_G['setting']['rewritestatus'] || $_G['domain']['search']) { $content = ob_get_contents(); $_G['domain']['search'] && ($content = str_replace($_G['domain']['search'], $_G['domain']['replace'], $content)); $_G['config']['app']['domain']['default'] && ($content = preg_replace("/<a href=\"([^\"]+)\"/e", "rewriteoutput('site_default', 0, '" . $_G['config']['app']['domain']['default'] . $_G['siteroot'] . "', '\\1')", $content)); if ($_G['setting']['rewritestatus'] && !defined('IN_MODCP') && !defined('IN_ADMINCP')) { $searcharray = $replacearray = array(); $array = rewritedata(); $content = preg_replace($array['search'], $array['replace'], $content); } ob_end_clean(); $_G['gzipcompress'] ? ob_start('ob_gzhandler') : ob_start(); echo $content; } if ($_G['setting']['ftp']['connid']) { @ftp_close($_G['setting']['ftp']['connid']); } $_G['setting']['ftp'] = array(); if (defined('CACHE_FILE') && CACHE_FILE && !defined('CACHE_FORBIDDEN')) { global $_G; if (diskfreespace(DISCUZ_ROOT . './' . $_G['setting']['cachethreaddir']) > 1000000) { if ($fp = @fopen(CACHE_FILE, 'w')) { flock($fp, LOCK_EX); 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(); } }
if (!block_check_favorite($_G['uid'], $bid)) { $setarr = array('uid' => $_G['uid'], 'bid' => $bid); block_add_favorite($setarr); $favoriteop = 'add'; } else { block_delete_favorite($_G['uid'], $bid); $favoriteop = 'del'; } } elseif ($op == 'delrecommend') { $perm = getblockperm($bid); if (!$perm['allowmanage'] && !$perm['allowrecommend']) { showmessage('block_no_right_recommend'); } if ($_GET['dataid'] = dintval($_GET['dataid'])) { C::t('common_block_item_data')->delete($_GET['dataid']); block_updatecache($bid, true); } showmessage('do_success'); } elseif ($op == 'moreurl') { if (!$bid || !$allowmanage) { showmessage('block_edit_nopermission'); } if (submitcheck('moreurlsubmit')) { $arr = array('perpage' => max(1, intval($_POST['perpage'])), 'seotitle' => $_POST['seotitle'], 'seokeywords' => $_POST['seokeywords'], 'seodescription' => $_POST['seodescription']); $block['param']['moreurl'] = $arr; C::t('common_block')->update($bid, array('param' => serialize($block['param']))); showmessage('do_success', 'portal.php?mod=portalcp&ac=block&op=moreurl&bid=' . $bid, array('bid' => $bid)); } $block['param']['moreurl'] = !empty($block['param']['moreurl']) ? $block['param']['moreurl'] : array('perpage' => 20, 'seotitle' => $block['name'], 'keywords' => '', 'description' => ''); } include_once template("portal/portalcp_block");
function block_fetch_content($bid, $isjscall = false, $forceupdate = false) { global $_G; static $allowmem = null; if ($allowmem === null) { $allowmem = getglobal('setting/memory/diyblockoutput/enable') && memory('check'); } $str = ''; $block = empty($_G['block'][$bid]) ? array() : $_G['block'][$bid]; if (!$block) { return; } if ($forceupdate) { block_updatecache($bid, true); $block = $_G['block'][$bid]; } elseif ($block['cachetime'] > 0 && $_G['timestamp'] - $block['dateline'] > $block['cachetime']) { if ($isjscall || $block['punctualupdate']) { block_updatecache($bid, true); $block = $_G['block'][$bid]; } elseif (empty($_G['blockupdate']) || $block['dateline'] < $_G['blockupdate']['dateline']) { $_G['blockupdate'] = array('bid' => $bid, 'dateline' => $block['dateline']); } } if ($allowmem && empty($block['hidedisplay']) && empty($block['nocache'])) { $str = memory('get', 'blockcache_' . $bid . '_' . ($isjscall ? 'js' : 'htm')); if ($str !== null) { if ($block['blockclass'] == 'html_html' && $block['script'] == 'search') { $str = strtr($str, array('{FORMHASH}' => FORMHASH)); } return $str; } } if ($isjscall || $block['blocktype']) { if ($block['summary']) { $str .= $block['summary']; } $str .= block_template($bid); } else { $classname = !empty($block['classname']) ? $block['classname'] . ' ' : ''; $str .= "<div id=\"portal_block_{$bid}\" class=\"{$classname}block move-span\">"; if ($block['title']) { $str .= $block['title']; } $str .= '<div id="portal_block_' . $bid . '_content" class="dxb_bc">'; if ($block['summary']) { $block['summary'] = stripslashes($block['summary']); $str .= "<div class=\"portal_block_summary\">{$block['summary']}</div>"; } $str .= block_template($bid); $str .= '</div>'; $str .= "</div>"; } if ($allowmem && empty($block['hidedisplay']) && empty($block['nocache'])) { memory('set', 'blockcache_' . $bid . '_' . ($isjscall ? 'js' : 'htm'), $str, getglobal('setting/memory/diyblockoutput/ttl')); } if ($block['blockclass'] == 'html_html' && $block['script'] == 'search') { $str = strtr($str, array('{FORMHASH}' => FORMHASH)); } return !empty($block['hidedisplay']) ? '' : $str; }
} showmessage('do_success', dreferer('portal.php?mod=portalcp&ac=blockdata&op=manage&bid=' . $bid)); } elseif (submitcheck('managedatasubmit')) { unset($item['thumbpath']); $item['stickgrade'] = intval($_POST['stickgrade']); DB::update('common_block_item_data', $item, array('dataid' => $dataid)); showmessage('do_success', dreferer('portal.php?mod=portalcp&ac=block&op=itemdata&bid=' . $bid)); } } } elseif ($op == 'getblock') { if (!$bid || !$allowmanage) { showmessage('block_edit_nopermission'); } block_get_batch($bid); if (!empty($_GET['forceupdate'])) { block_updatecache($bid, !empty($_GET['forceupdate'])); } if (strexists($block['summary'], '<script')) { $block['summary'] = lang('portalcp', 'block_diy_nopreview'); $_G['block'][$bid] = $block; $_G['block'][$bid]['cachetime'] = 0; $_G['block'][$bid]['nocache'] = true; } $html = block_fetch_content($bid, $block['blocktype']); } elseif ($op == 'saveblockclassname') { if (!$bid || !$allowmanage) { showmessage('block_edit_nopermission'); } if (submitcheck('saveclassnamesubmit')) { $setarr = array('classname' => getstr($_POST['classname'], 100, 0, 0, 0, -1)); DB::update('common_block', $setarr, array('bid' => $bid));
function output() { global $_G; if (defined('DISCUZ_OUTPUTED')) { return; } else { define('DISCUZ_OUTPUTED', 1); } if (!empty($_G['blockupdate'])) { block_updatecache($_G['blockupdate']['bid']); } $_G['domain'] = array(); $port = empty($_SERVER['SERVER_PORT']) || $_SERVER['SERVER_PORT'] == '80' ? '' : ':' . $_SERVER['SERVER_PORT']; foreach ($_G['config']['app']['domain'] as $app => $domain) { if ($domain || $_G['config']['app']['domain']['default']) { $domain = empty($domain) ? $_G['config']['app']['domain']['default'] : $domain; $_G['domain']['search'][$app] = "<a href=\"{$app}.php"; $_G['domain']['replace'][$app] = '<a href="http://' . $domain . $port . $_G['siteroot']; $_G['domain']['pregxprw'][$app] = '<a href\\="http\\:\\/\\/(' . preg_quote($domain . $port . $_G['siteroot'], '/') . ')'; } else { $_G['domain']['pregxprw'][$app] = "<a href\\=\"(){$app}.php"; } } if (defined('DISCUZ_DEBUG') && DISCUZ_DEBUG && @(include libfile('function/debug'))) { function_exists('debugmessage') && debugmessage(); } }