本文整理汇总了PHP中discuz_process::unlock方法的典型用法代码示例。如果您正苦于以下问题:PHP discuz_process::unlock方法的具体用法?PHP discuz_process::unlock怎么用?PHP discuz_process::unlock使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类discuz_process
的用法示例。
在下文中一共展示了discuz_process::unlock方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: run
public static function run($cronid = 0)
{
global $_G;
$cron = $cronid ? C::t('common_cron')->fetch($cronid) : C::t('common_cron')->fetch_nextrun(TIMESTAMP);
$processname = 'DZ_CRON_' . (empty($cron) ? 'CHECKER' : $cron['cronid']);
if ($cronid && !empty($cron)) {
discuz_process::unlock($processname);
}
if (discuz_process::islocked($processname, 600)) {
return false;
}
if ($cron) {
$cron['filename'] = str_replace(array('..', '/', '\\'), '', $cron['filename']);
$cronfile = DISCUZ_ROOT . './source/include/cron/' . $cron['filename'];
$cron['minute'] = explode("\t", $cron['minute']);
self::setnextime($cron);
@set_time_limit(1000);
@ignore_user_abort(TRUE);
if (!@(include $cronfile)) {
return false;
}
}
self::nextcron();
discuz_process::unlock($processname);
return true;
}
示例2: build_cache_heats
function build_cache_heats()
{
global $_G;
$addsql = '';
$data = array();
if (discuz_process::islocked('update_heats_list')) {
return false;
}
if ($_G['setting']['indexhot']['status']) {
require_once libfile('function/post');
$_G['setting']['indexhot'] = array('status' => 1, 'limit' => intval($_G['setting']['indexhot']['limit'] ? $_G['setting']['indexhot']['limit'] : 10), 'days' => intval($_G['setting']['indexhot']['days'] ? $_G['setting']['indexhot']['days'] : 7), 'expiration' => intval($_G['setting']['indexhot']['expiration'] ? $_G['setting']['indexhot']['expiration'] : 900), 'messagecut' => intval($_G['setting']['indexhot']['messagecut'] ? $_G['setting']['indexhot']['messagecut'] : 200));
$messageitems = 2;
$limit = $_G['setting']['indexhot']['limit'];
foreach (C::t('forum_thread')->fetch_all_heats() as $heat) {
$post = C::t('forum_post')->fetch_threadpost_by_tid_invisible($heat['tid']);
$heat = array_merge($heat, (array) $post);
if ($limit == 0) {
break;
}
if ($messageitems > 0) {
$heat['message'] = !$heat['price'] ? messagecutstr($heat['message'], $_G['setting']['indexhot']['messagecut']) : '';
$data['message'][$heat['tid']] = $heat;
} else {
unset($heat['message']);
$data['subject'][$heat['tid']] = $heat;
}
$messageitems--;
$limit--;
}
$data['expiration'] = TIMESTAMP + $_G['setting']['indexhot']['expiration'];
}
savecache('heats', $data);
discuz_process::unlock('update_heats_list');
}
示例3: viewthread_updateviews
function viewthread_updateviews($tableid)
{
global $_G;
if (!$_G['setting']['preventrefresh'] || $_G['cookie']['viewid'] != 'tid_' . $_G['tid']) {
if (!$tableid && $_G['setting']['optimizeviews']) {
if ($_G['forum_thread']['addviews']) {
if ($_G['forum_thread']['addviews'] < 100) {
C::t('forum_threadaddviews')->update_by_tid($_G['tid']);
} else {
if (!discuz_process::islocked('update_thread_view')) {
$row = C::t('forum_threadaddviews')->fetch($_G['tid']);
C::t('forum_threadaddviews')->update($_G['tid'], array('addviews' => 0));
C::t('forum_thread')->increase($_G['tid'], array('views' => $row['addviews'] + 1), true);
discuz_process::unlock('update_thread_view');
}
}
} else {
C::t('forum_threadaddviews')->insert(array('tid' => $_G['tid'], 'addviews' => 1), false, true);
}
} else {
C::t('forum_thread')->increase($_G['tid'], array('views' => 1), true, $tableid);
}
}
dsetcookie('viewid', 'tid_' . $_G['tid']);
}
示例4: updatersscache
function updatersscache($num)
{
global $_G;
$processname = 'portal_rss_cache';
if (discuz_process::islocked($processname, 600)) {
return false;
}
DB::query("DELETE FROM " . DB::table('portal_rsscache') . "");
require_once libfile('function/post');
foreach ($_G['cache']['portalcategory'] as $catid => $catarray) {
$query = DB::query("SELECT aid, username, author, dateline, title, summary\r\n\t\t\tFROM " . DB::table('portal_article_title') . "\r\n\t\t\tWHERE catid='{$catid}' AND status=0\r\n\t\t\tORDER BY aid DESC LIMIT {$num}");
$catarray['catname'] = addslashes($catarray['catname']);
while ($article = DB::fetch($query)) {
$article['author'] = $article['author'] != '' ? addslashes($article['author']) : ($article['username'] ? addslashes($article['username']) : 'Anonymous');
$article['title'] = addslashes($article['title']);
$articleattach = DB::fetch_first("SELECT * FROM " . DB::table('portal_attachment') . " WHERE aid='" . $article['aid'] . "' AND isimage=1");
$attachdata = '';
if (!empty($articleattach)) {
$attachdata = "\t" . $articleattach['remote'] . "\t" . $articleattach['attachment'] . "\t" . $articleattach['filesize'];
}
$article['description'] = addslashes(messagecutstr($article['summary'], 250 - strlen($attachdata)) . $attachdata);
DB::query("REPLACE INTO " . DB::table('portal_rsscache') . " (lastupdate, catid, aid, dateline, catname, author, subject, description)\r\n\t\t\t\tVALUES ('{$_G['timestamp']}', '{$catid}', '{$article['aid']}', '{$article['dateline']}', '{$catarray['catname']}', '{$article['author']}', '{$article['title']}', '{$article['description']}')");
}
}
discuz_process::unlock($processname);
return true;
}
示例5: run
function run($cronid = 0)
{
global $_G;
$timestamp = TIMESTAMP;
$cron = DB::fetch_first("SELECT * FROM " . DB::table('common_cron') . "\n\t\t\t\tWHERE " . ($cronid ? "cronid='{$cronid}'" : "available>'0' AND nextrun<='{$timestamp}'") . "\n\t\t\t\tORDER BY nextrun LIMIT 1");
$processname = 'DZ_CRON_' . (empty($cron) ? 'CHECKER' : $cron['cronid']);
if ($cronid && !empty($cron)) {
discuz_process::unlock($processname);
}
if (discuz_process::islocked($processname, 600)) {
return false;
}
if ($cron) {
$cron['filename'] = str_replace(array('..', '/', '\\'), '', $cron['filename']);
$cronfile = DISCUZ_ROOT . './source/include/cron/' . $cron['filename'];
$cron['minute'] = explode("\t", $cron['minute']);
discuz_cron::setnextime($cron);
@set_time_limit(1000);
@ignore_user_abort(TRUE);
if (!@(include $cronfile)) {
return false;
}
}
discuz_cron::nextcron();
discuz_process::unlock($processname);
return true;
}
示例6: run
/**
* 运行cron
*
* @param int $cronid 执行某个cron,如果不指定则运行当前需要运行的
* @return true
*/
public static function run($cronid = 0)
{
global $_G;
$cron = $cronid ? C::t('common_cron')->fetch($cronid) : C::t('common_cron')->fetch_nextrun(TIMESTAMP);
//取出一条符合执行条件的计划任务
$processname = 'DZ_CRON_' . (empty($cron) ? 'CHECKER' : $cron['cronid']);
if ($cronid && !empty($cron)) {
discuz_process::unlock($processname);
//为手动执行计划任务解锁
}
if (discuz_process::islocked($processname, 600)) {
//检查计划任务进程是否上锁
return false;
}
if ($cron) {
//计划任务执行
$cron['filename'] = str_replace(array('..', '/', '\\'), '', $cron['filename']);
$efile = explode(':', $cron['filename']);
if (count($efile) > 1) {
$cronfile = in_array($efile[0], $_G['setting']['plugins']['available']) ? DISCUZ_ROOT . './source/plugin/' . $efile[0] . '/cron/' . $efile[1] : '';
} else {
$cronfile = DISCUZ_ROOT . './source/include/cron/' . $cron['filename'];
}
if ($cronfile) {
$cron['minute'] = explode("\t", $cron['minute']);
self::setnextime($cron);
//根据后台设置,更新该计划任务执行的时间
@set_time_limit(1000);
@ignore_user_abort(TRUE);
//设置与客户机断开不会终止脚本的执行
if (!@(include $cronfile)) {
//执行具体计划任务程序
return false;
}
}
}
self::nextcron();
//设置最近一次计划任务执行的时间
discuz_process::unlock($processname);
//解锁
return true;
}
示例7: memory
DB::query("UPDATE " . DB::table('forum_forum') . " SET lastpost='{$lastpost}', posts=posts+1, todayposts=todayposts+1 WHERE fid='{$var['fidnumber']}'", 'UNBUFFERED');
}
}
if (memory('check')) {
memory('set', 'dsu_pualsign_' . $_G['uid'], $_G['timestamp'], 86400);
}
if ($num == 0) {
if ($stats['todayq'] > $stats['highestq']) {
DB::query("UPDATE " . DB::table('dsu_paulsignset') . " SET highestq='{$stats['todayq']}' WHERE id='1'");
}
DB::query("UPDATE " . DB::table('dsu_paulsignset') . " SET yesterdayq='{$stats['todayq']}',todayq=1 WHERE id='1'");
} else {
DB::query("UPDATE " . DB::table('dsu_paulsignset') . " SET todayq=todayq+1 WHERE id='1'");
}
if ($var['lockopen']) {
discuz_process::unlock('dsu_paulsign');
}
if ($var['tzopen']) {
if ($exacr && $exacz) {
sign_msg("{$lang[tsn_14]}{$lang[tsn_03]}{$lang[tsn_04]}{$psc}{$lang[tsn_15]}{$lang[tsn_06]} {$_G[setting][extcredits][$var[nrcredit]][title]} {$credit} {$_G[setting][extcredits][$var[nrcredit]][unit]} {$lang[tsn_16]} {$_G[setting][extcredits][$exacr][title]} {$exacz} {$_G[setting][extcredits][$exacr][unit]}." . $another_vip, "forum.php?mod=redirect&tid={$tidnumber}&goto=lastpost#lastpost");
} else {
sign_msg("{$lang[tsn_18]} {$_G[setting][extcredits][$var[nrcredit]][title]} {$credit} {$_G[setting][extcredits][$var[nrcredit]][unit]}." . $another_vip, "forum.php?mod=redirect&tid={$tidnumber}&goto=lastpost#lastpost");
}
} else {
if ($exacr && $exacz) {
sign_msg("{$lang[tsn_14]}{$lang[tsn_03]}{$lang[tsn_04]}{$psc}{$lang[tsn_15]}{$lang[tsn_06]} {$_G[setting][extcredits][$var[nrcredit]][title]} {$credit} {$_G[setting][extcredits][$var[nrcredit]][unit]} {$lang[tsn_16]} {$_G[setting][extcredits][$exacr][title]} {$exacz} {$_G[setting][extcredits][$exacr][unit]}." . $another_vip, "plugin.php?id=dsu_paulsign:sign");
} else {
sign_msg("{$lang[tsn_18]} {$_G[setting][extcredits][$var[nrcredit]][title]} {$credit} {$_G[setting][extcredits][$var[nrcredit]][unit]}." . $another_vip, "plugin.php?id=dsu_paulsign:sign");
}
}
}
示例8: getranklistdata
function getranklistdata($type, $view = '', $orderby = 'all')
{
global $_G;
$cache_time = $_G['setting']['ranklist'][$type]['cache_time'];
$cache_num = $_G['setting']['ranklist'][$type]['show_num'];
if ($cache_time <= 0) {
$cache_time = 5;
}
$cache_time = $cache_time * 3600;
if ($cache_num <= 0) {
$cache_num = 20;
}
$ranklistvars = array();
loadcache('ranklist_' . $type);
$ranklistvars =& $_G['cache']['ranklist_' . $type][$view][$orderby];
if (empty($ranklistvars['lastupdated']) || TIMESTAMP - $ranklistvars['lastupdated'] > $cache_time) {
$functionname = 'getranklist_' . $type;
if (!discuz_process::islocked('ranklist_update', 600)) {
$ranklistvars = $functionname($cache_num, $view, $orderby);
$ranklistvars['lastupdated'] = TIMESTAMP;
$ranklistvars['lastupdate'] = dgmdate(TIMESTAMP);
$ranklistvars['nextupdate'] = dgmdate(TIMESTAMP + $cache_time);
$_G['cache']['ranklist_' . $type][$view][$orderby] = $ranklistvars;
save_syscache('ranklist_' . $type, $_G['cache']['ranklist_' . $type]);
}
discuz_process::unlock('ranklist_update');
}
$_G['lastupdate'] = $ranklistvars['lastupdate'];
$_G['nextupdate'] = $ranklistvars['nextupdate'];
unset($ranklistvars['lastupdated'], $ranklistvars['lastupdate'], $ranklistvars['nextupdate']);
return $ranklistvars;
}
示例9: array
if ($thread['lastpost'] < $_G['timestamp']) {
$fieldarr['lastpost'] = array($_G['timestamp']);
}
C::t('forum_thread')->increase($tid, $fieldarr);
$postionid = C::t('forum_post')->fetch_maxposition_by_tid($thread['posttableid'], $tid);
C::t('forum_thread')->update($tid, array('maxposition' => $postionid));
$lastpost = "{$thread['tid']}\t{$thread['subject']}\t{$_G['timestamp']}\t" . '';
C::t('forum_forum')->update($thread['fid'], array('lastpost' => $lastpost));
C::t('forum_forum')->update_forum_counter($thread['fid'], 0, count($pids), count($pids));
if ($forum['type'] == 'sub') {
C::t('forum_forum')->update($forum['fup'], array('lastpost' => $lastpost));
}
}
//note 同时还要记录最后一条的id和时间
$setarr['pagetime'] = $post['timestamp'];
$setarr['lasttwid'] = $post['id'];
//if(count($response['result']) < $param['req_num']) {
if (count($responseinfo) < $param['reqnum']) {
$setarr['nexttime'] = $_G['timestamp'] + 2 * 3600;
} else {
$setarr['nexttime'] = $_G['timestamp'] + 30 * 60;
}
} else {
$setarr['nexttime'] = $_G['timestamp'] + 3 * 3600;
}
$setarr['updatetime'] = $_G['timestamp'];
//DB::update('connect_tthreadlog', $setarr, array('twid' => $tthread['twid']));
C::t('#qqconnect#connect_tthreadlog')->update($tthread['twid'], $setarr);
discuz_process::unlock($processname);
exit;
}
示例10: block_updatecache
function block_updatecache($bid, $forceupdate = false)
{
global $_G;
if (isset($_G['block'][$bid]['cachetime']) && $_G['block'][$bid]['cachetime'] < 0 || !$forceupdate && discuz_process::islocked('block_update_cache', 5)) {
return false;
}
C::t('common_block')->clear_cache($bid);
$block = empty($_G['block'][$bid]) ? array() : $_G['block'][$bid];
if (!$block) {
return false;
}
$obj = block_script($block['blockclass'], $block['script']);
if (is_object($obj)) {
C::t('common_block')->update($bid, array('dateline' => TIMESTAMP));
$_G['block'][$bid]['dateline'] = TIMESTAMP;
$theclass = block_getclass($block['blockclass']);
$thestyle = !empty($block['styleid']) ? block_getstyle($block['styleid']) : dunserialize($block['blockstyle']);
if (in_array($block['blockclass'], array('forum_thread', 'group_thread', 'space_blog', 'space_pic', 'portal_article'))) {
$datalist = array();
$mapping = array('forum_thread' => 'tid', 'group_thread' => 'tid', 'space_blog' => 'blogid', 'space_blog' => 'picid', 'portal_article' => 'aid');
$idtype = $mapping[$block['blockclass']];
$bannedids = !empty($block['param']['bannedids']) ? explode(',', $block['param']['bannedids']) : array();
$bannedsql = $bannedids ? ' AND id NOT IN (' . dimplode($bannedids) . ')' : '';
$shownum = intval($block['shownum']);
$titlelength = !empty($block['param']['titlelength']) ? intval($block['param']['titlelength']) : 40;
$summarylength = !empty($block['param']['summarylength']) ? intval($block['param']['summarylength']) : 80;
foreach (C::t('common_block_item_data')->fetch_all_by_bid($bid, 1, 0, $shownum * 2, $bannedids, false) as $value) {
$value['title'] = cutstr($value['title'], $titlelength, '');
$value['summary'] = cutstr($value['summary'], $summarylength, '');
$value['itemtype'] = '3';
$datalist[] = $value;
$bannedids[] = intval($value['id']);
}
$leftnum = $block['shownum'] - count($datalist);
if ($leftnum > 0 && empty($block['isblank'])) {
if ($leftnum != $block['param']['items']) {
$block['param']['items'] = $leftnum;
$block['param']['bannedids'] = implode(',', $bannedids);
}
$return = $obj->getdata($thestyle, $block['param']);
$return['data'] = array_merge($datalist, (array) $return['data']);
} else {
$return['data'] = $datalist;
}
} else {
$return = $obj->getdata($thestyle, $block['param']);
}
if ($return['data'] === null) {
$_G['block'][$block['bid']]['summary'] = $return['html'];
C::t('common_block')->update($bid, array('summary' => $return['html']));
} else {
$_G['block'][$block['bid']]['itemlist'] = block_updateitem($bid, $return['data']);
}
} else {
C::t('common_block')->update($bid, array('dateline' => TIMESTAMP + 999999, 'cachetime' => 0));
$_G['block'][$bid]['dateline'] = TIMESTAMP + 999999;
}
if (C::t('common_block')->allowmem) {
memory('set', 'blockcache_' . $bid, $_G['block'][$bid], C::t('common_block')->cache_ttl);
$styleid = $_G['block'][$bid]['styleid'];
if ($styleid && $_G['blockstyle_' . $styleid]) {
memory('set', 'blockstylecache_' . $styleid, $_G['blockstyle_' . $styleid], C::t('common_block')->cache_ttl);
}
}
discuz_process::unlock('block_update_cache');
}
示例11: min
if ($_G['setting']['maxincperthread'] > 0) {
$extcredit = 'extcredits' . $_G['setting']['creditstransextra'][1];
$alog = C::t('common_credit_log')->count_credit_by_uid_operation_relatedid($attach['uid'], 'SAC', $aid, $_G['setting']['creditstransextra'][1]);
if ($alog >= $_G['setting']['maxincperthread']) {
$updateauthor = 0;
} else {
$authorEarn = min($_G['setting']['maxincperthread'] - $alog['credit'], $prices[$aid][1]);
}
}
if ($updateauthor) {
updatemembercount($attach['uid'], array($_G['setting']['creditstransextra'][1] => $authorEarn), 1, 'SAC', $aid);
}
updatemembercount($_G['uid'], array($_G['setting']['creditstransextra'][1] => -$prices[$aid][0]), 1, 'BAC', $aid);
$aidencode = aidencode($aid, 0, $_GET['tid']);
}
discuz_process::unlock($lockid);
if (count($aids) > 1) {
showmessage('attachment_buyall', 'forum.php?mod=redirect&goto=findpost&ptid=' . $attach['tid'] . '&pid=' . $attach['pid']);
} else {
$_G['forum_attach_filename'] = $attach['filename'];
showmessage('attachment_buy', "forum.php?mod=attachment&aid={$aidencode}", array('filename' => $_G['forum_attach_filename']), array('redirectmsg' => 1));
}
}
} elseif ($_GET['action'] == 'viewattachpayments') {
$aid = intval($_GET['aid']);
$extcreditname = 'extcredits' . $_G['setting']['creditstransextra'][1];
$loglist = array();
$logs = C::t('common_credit_log')->fetch_all_by_uid_operation_relatedid(0, 'BAC', $aid);
$luids = array();
foreach ($logs as $log) {
$luids[$log['uid']] = $log['uid'];
示例12: updatersscache
function updatersscache($num)
{
global $_G;
$processname = 'forum_rss_cache';
if (discuz_process::islocked($processname, 600)) {
return false;
}
DB::query("DELETE FROM " . DB::table('forum_rsscache') . "");
require_once libfile('function/post');
foreach ($_G['cache']['forums'] as $fid => $forum) {
if ($forum['type'] != 'group') {
$query = DB::query("SELECT tid, readperm, author, dateline, subject\n\t\t\t\tFROM " . DB::table('forum_thread') . "\n\t\t\t\tWHERE fid='{$fid}' AND displayorder>='0'\n\t\t\t\tORDER BY tid DESC LIMIT {$num}");
$forum['name'] = addslashes($forum['name']);
while ($thread = DB::fetch($query)) {
$thread['author'] = $thread['author'] != '' ? addslashes($thread['author']) : 'Anonymous';
$thread['subject'] = addslashes($thread['subject']);
$posttable = getposttablebytid($thread['tid']);
$post = DB::fetch_first("SELECT pid, attachment, message, status FROM " . DB::table($posttable) . " WHERE tid='{$thread['tid']}' AND first='1'");
$attachdata = '';
if ($post['attachment'] == 2) {
$attach = DB::fetch_first("SELECT remote, attachment, filesize FROM " . DB::table(getattachtablebytid($thread['tid'])) . " WHERE pid='{$post['pid']}' AND isimage='1' ORDER BY dateline LIMIT 1");
$attachdata = "\t" . $attach['remote'] . "\t" . $attach['attachment'] . "\t" . $attach['filesize'];
}
$thread['message'] = $post['message'];
$thread['status'] = $post['status'];
$thread['description'] = $thread['readperm'] > 0 || $thread['price'] > 0 || $thread['status'] & 1 ? '' : addslashes(messagecutstr($thread['message'], 250 - strlen($attachdata)) . $attachdata);
DB::query("REPLACE INTO " . DB::table('forum_rsscache') . " (lastupdate, fid, tid, dateline, forum, author, subject, description)\n\t\t\t\t\tVALUES ('{$_G['timestamp']}', '{$fid}', '{$thread['tid']}', '{$thread['dateline']}', '{$forum['name']}', '{$thread['author']}', '{$thread['subject']}', '{$thread['description']}')");
}
}
}
discuz_process::unlock($processname);
return true;
}
示例13: update_guide_rsscache
function update_guide_rsscache($type, $perpage)
{
global $_G;
$processname = 'guide_rss_cache';
if (discuz_process::islocked($processname, 600)) {
return false;
}
C::t('forum_rsscache')->delete_by_guidetype($type);
require_once libfile('function/post');
$data = get_guide_list($type, 0, $perpage);
foreach ($data['threadlist'] as $thread) {
$thread['author'] = $thread['author'] != '' ? addslashes($thread['author']) : 'Anonymous';
$thread['subject'] = addslashes($thread['subject']);
$post = C::t('forum_post')->fetch_threadpost_by_tid_invisible($thread['tid']);
$attachdata = '';
if ($post['attachment'] == 2) {
$attach = C::t('forum_attachment_n')->fetch_max_image('tid:' . $thread['tid'], 'pid', $post['pid']);
$attachdata = "\t" . $attach['remote'] . "\t" . $attach['attachment'] . "\t" . $attach['filesize'];
}
$thread['message'] = $post['message'];
$thread['status'] = $post['status'];
$thread['description'] = $thread['readperm'] > 0 || $thread['price'] > 0 || $thread['status'] & 1 ? '' : addslashes(messagecutstr($thread['message'], 250 - strlen($attachdata)) . $attachdata);
C::t('forum_rsscache')->insert(array('lastupdate' => $_G['timestamp'], 'fid' => $thread['fid'], 'tid' => $thread['tid'], 'dateline' => $thread['dbdateline'], 'forum' => strip_tags($data['forumnames'][$thread[fid]]['name']), 'author' => $thread['author'], 'subject' => $thread['subject'], 'description' => $thread['description'], 'guidetype' => $type), false, true);
}
discuz_process::unlock($processname);
return true;
}
示例14: block_updatecache
function block_updatecache($bid, $forceupdate = false)
{
global $_G;
if (!$forceupdate && discuz_process::islocked('block_update_cache', 5)) {
return false;
}
block_memory_clear($bid);
$block = empty($_G['block'][$bid]) ? array() : $_G['block'][$bid];
if (!$block) {
return;
}
$obj = block_script($block['script']);
if ($obj) {
DB::update('common_block', array('dateline' => TIMESTAMP), array('bid' => $bid));
$block['param'] = empty($block['param']) ? array() : unserialize($block['param']);
$theclass = block_getclass($block['blockclass']);
if ($block['blockclass'] == 'portal_article') {
$parameter = array('aids' => array());
$query = DB::query('SELECT aid FROM ' . DB::table('portal_article_title') . " WHERE bid='{$bid}'");
while ($value = DB::fetch($query)) {
$parameter['aids'][] = intval($value['aid']);
}
$datalist = array();
if (!empty($parameter['aids'])) {
$bannedids = !empty($block['param']['bannedids']) ? explode(',', $block['param']['bannedids']) : array();
if (!empty($bannedids)) {
$parameter['aids'] = array_diff($parameter['aids'], $bannedids);
}
$bannedids = array_merge($bannedids, $parameter['aids']);
$block['param']['bannedids'] = implode(',', $bannedids);
$parameter['aids'] = implode(',', $parameter['aids']);
$return = $obj->getdata($theclass['style'][$block['styleid']], $parameter);
$datalist = $return['data'];
}
$return = $obj->getdata($theclass['style'][$block['styleid']], $block['param']);
if ($datalist) {
$return['data'] = array_merge($datalist, $return['data']);
}
} else {
$return = $obj->getdata($theclass['style'][$block['styleid']], $block['param']);
}
if ($return['data'] === null) {
$_G['block'][$block['bid']]['summary'] = $return['html'];
DB::update('common_block', array('summary' => daddslashes($return['html'])), array('bid' => $bid));
} else {
$_G['block'][$block['bid']]['itemlist'] = block_updateitem($bid, $return['data']);
}
} else {
DB::update('common_block', array('dateline' => TIMESTAMP + 999999, 'cachetime' => 0), array('bid' => $bid));
}
discuz_process::unlock('block_update_cache');
}
示例15: updatersscache
function updatersscache($num)
{
global $_G;
$processname = 'portal_rss_cache';
if (discuz_process::islocked($processname, 600)) {
return false;
}
C::t('portal_rsscache')->truncate();
require_once libfile('function/post');
foreach ($_G['cache']['portalcategory'] as $catid => $catarray) {
$query = C::t('portal_article_title')->fetch_all_for_cat($catid, 0, 1, 0, $num);
$catarray['catname'] = addslashes($catarray['catname']);
foreach ($query as $article) {
$article['author'] = $article['author'] != '' ? addslashes($article['author']) : ($article['username'] ? addslashes($article['username']) : 'Anonymous');
$article['title'] = addslashes($article['title']);
$articleattach = C::t('portal_attachment')->fetch_by_aid_image($article['aid']);
$attachdata = '';
if (!empty($articleattach)) {
$attachdata = "\t" . $articleattach['remote'] . "\t" . $articleattach['attachment'] . "\t" . $articleattach['filesize'];
}
$article['description'] = addslashes(messagecutstr($article['summary'], 250 - strlen($attachdata)) . $attachdata);
C::t('portal_rsscache')->insert(array('lastupdate' => $_G['timestamp'], 'catid' => $catid, 'aid' => $article['aid'], 'dateline' => $article['dateline'], 'catname' => $catarray['catname'], 'author' => $article['author'], 'subject' => $article['title'], 'description' => $article['description']));
}
}
discuz_process::unlock($processname);
return true;
}