fetch($bid))) {
showmessage('block_not_exist');
}
$blockstyle = array();
if(!empty($block['styleid'])) {
$blockstyle = block_getstyle($block['styleid']);
} else {
$blockstyle = dunserialize($block['blockstyle']);
}
$block['moreurl'] = $blockstyle['moreurl'] && in_array($block['blockclass'], array('forum_thread', 'portal_article', 'group_thread'), true) ? 1 : 0;
$_G['block'][$bid] = $block;
$blockperm = getblockperm($bid);
if($blockperm['allowmanage']) {
$allowmanage = 1;
$allowdata = 1;
}
if ($blockperm['allowrecommend'] && !$blockperm['needverify']) {
$allowdata = 1;
}
}
if(empty($block['bid'])) {
$bid = 0;
}
$_GET['classname'] = !empty($_GET['classname']) ? $_GET['classname'] : ($block ? $block['blockclass'] : 'html_html');
$theclass = block_getclass($_GET['classname'], true);
$theclass['script'] = isset($theclass['script']) ? $theclass['script'] : array();
if(!empty($_GET['styleid']) && isset($theclass['style'][$_GET['styleid']])) {
$thestyle = $theclass['style'][$_GET['styleid']];
} elseif(isset($theclass['style'][$block['styleid']])) {
$_GET['styleid'] = intval($block['styleid']);
$thestyle = $theclass['style'][$_GET['styleid']];
} else {
$_GET['styleid'] = 0;
$thestyle = (array)dunserialize($block['blockstyle']);
}
$_GET['script'] = !empty($_GET['script']) && isset($theclass['script'][$_GET['script']])
? $_GET['script']
: (!empty($block['script']) ? $block['script'] : key($theclass['script']));
$blocktype = (!empty($_GET['blocktype']) || !empty($block['blocktype'])) ? 1 : 0;
$nocachetime = in_array($_GET['script'], array('blank', 'line', 'banner', 'vedio', 'google')) ? true : false;
$is_htmlblock = ($_GET['classname'] == 'html_html') ? 1 : 0;
$showhtmltip = false;
if($op == 'data' && $is_htmlblock) {
$op = 'block';
$showhtmltip = true;
}
$block['blockclass'] = empty($block['blockclass']) ? $_GET['classname'] : $block['blockclass'];
$is_recommendable = block_isrecommendable($block);
if($op == 'block') {
if($bid && !$allowmanage) {
showmessage('block_edit_nopermission');
}
if(!$bid) {
list($tpl, $id) = explode(':', $_GET['tpl']);
if(trim($tpl)=='portal/portal_topic_content') {
if(!$_G['group']['allowaddtopic'] && !$_G['group']['allowmanagetopic']) {
showmessage('block_topic_nopermission');
}
} elseif(!$_G['group']['allowdiy']) {
showmessage('block_add_nopermission');
}
}
if(submitcheck('blocksubmit')) {
$_POST['cachetime'] = intval($_POST['cachetime']) * 60;
$_POST['styleid'] = intval($_POST['styleid']);
$_POST['shownum'] = intval($_POST['shownum']);
$_POST['picwidth'] = $_POST['picwidth'] ? intval($_POST['picwidth']) : 0;
$_POST['picheight'] = $_POST['picheight'] ? intval($_POST['picheight']) : 0;
$_POST['script'] = isset($theclass['script'][$_POST['script']]) ? $_POST['script'] : key($theclass['script']);
$_POST['a_target'] = in_array($_POST['a_target'], array('blank', 'top', 'self')) ? $_POST['a_target'] : 'blank';
$_POST['dateformat'] = in_array($_POST['dateformat'], array('Y-m-d', 'm-d', 'H:i', 'Y-m-d H:i')) ? $_POST['dateformat'] : 'Y-m-d';
$_POST['isblank'] = intval($_POST['isblank']);
$_POST['cachetimerangestart'] = intval($_POST['cachetimerangestart']);
$_POST['cachetimerangeend'] = intval($_POST['cachetimerangeend']);
$summary = getstr($_POST['summary'], '', 0, 0, 0, 1);
if($summary) {
$tag = block_ckeck_summary($summary);
if($tag != $summary) {
$msg = lang('portalcp', 'block_diy_summary_html_tag').$tag.lang('portalcp', 'block_diy_summary_not_closed');
showmessage($msg);
}
}
$_POST['shownum'] = $_POST['shownum'] > 0 ? $_POST['shownum'] : 10;
$_POST['parameter']['items'] = $_POST['shownum'];
$cachetimerange = $_POST['cachetimerangestart'].','.$_POST['cachetimerangeend'];
if(empty($_G['setting']['blockcachetimerange'])) {
$cachetimerange = $cachetimerange == '0,23' ? '' : $cachetimerange;
} else {
$cachetimerange = $cachetimerange == $_G['setting']['blockcachetimerange'] ? '' : $cachetimerange;
}
include_once libfile('function/home');
$setarr = array(
'name' => getstr($_POST['name'], 255),
'summary' => $summary,
'styleid' => $_POST['styleid'],
'script' => $_POST['script'],
'cachetime' => intval($_POST['cachetime']),
'cachetimerange' => $cachetimerange,
'punctualupdate' => !empty($_POST['punctualupdate']) ? '1' : '0',
'shownum' => $_POST['shownum'],
'picwidth' => $_POST['picwidth'] && $_POST['picwidth'] > 8 && $_POST['picwidth'] < 1960 ? $_POST['picwidth'] : 0,
'picheight' => $_POST['picheight'] && $_POST['picheight'] > 8 && $_POST['picheight'] < 1960 ? $_POST['picheight'] : 0,
'target' => $_POST['a_target'],
'dateuformat' => !empty($_POST['dateuformat']) ? '1' : '0',
'dateformat' => $_POST['dateformat'],
'hidedisplay' => $_POST['hidedisplay'] ? '1' : '0',
'dateline' => TIMESTAMP,
'isblank' => $_POST['isblank']
);
$picdata = array();
if(!empty($_FILES)) {
foreach($_FILES as $varname => $file) {
if($file['tmp_name']) {
$result = pic_upload($file, 'portal');
$pic = 'portal/'.$result['pic'];
$picdata[] = array('bid' => $bid, 'pic' => $pic, 'picflag' =>$result['remote'] , 'type' => '1');
$pic = $result['remote'] ? $_G['setting']['ftp']['attachurl'].$pic : $_G['setting']['attachurl'].$pic;
$_POST['parameter'][$varname] = $pic;
}
}
}
if(($block['blockclass'] == 'html_html' || $_GET['classname'] == 'html_html') && $_POST['script'] == 'blank' && isset($_POST['parameter']['content'])) {
$_POST['parameter']['content'] = addslashes($_POST['parameter']['content']);
}
$parameter = $_POST['parameter'];
if(isset($block['param'])) {
$blockobj = block_script($block['blockclass'], $block['script']);
if($blockobj) {
$_block_setting = $blockobj->getsetting();
foreach($block['param'] as $_key => $_val) {
if(!isset($parameter[$_key]) && (!isset($_block_setting[$_key]) || (isset($_block_setting[$_key]) && $_block_setting[$_key]['type'] !== 'mcheckbox'))) {
$parameter[$_key] = $_val;
}
}
} else {
$parameter = $parameter + $block['param'];
}
}
$setarr['param'] = serialize($parameter);
if($bid) {
C::t('common_block')->update($bid, $setarr);
} else {
$setarr['blockclass'] = $_GET['classname'];
$setarr['uid'] = $_G['uid'];
$setarr['username'] = $_G['username'];
$setarr['notinherited'] = 0;
if($blocktype == 1) {
$setarr['blocktype'] = '1';
}
$bid = C::t('common_block')->insert($setarr, true);
}
if(!empty($picdata)) {
C::t('common_block_pic')->insert_by_bid($bid, $picdata);
}
$_G['block'][$bid] = C::t('common_block')->fetch($bid);
block_updatecache($bid, true);
showmessage('do_success', 'portal.php?mod=portalcp&ac=block&op=block&bid='.$bid, array('bid'=>$bid, 'eleid'=> $_GET['eleid']));
}
loadcache('blockconvert');
$block['script'] = isset($block['script']) ? $block['script'] : $_GET['script'];
if($block['blockclass'] == 'html_html' && $block['script'] == 'blank'){
$block['param']['content'] = stripslashes($block['param']['content']);
}
$settings = block_setting($_GET['classname'], $block['script'], $block['param']);
$scriptarr = array($block['script'] => ' selected');
$stylearr = array($_GET['styleid'] => ' selected');
$block = block_checkdefault($block);
$cachetimearr = array($block['cachetime'] =>' selected="selected"');
$block['cachetime_min'] = intval($block['cachetime'] / 60);
$targetarr[$block['target']] = ' selected';
$block['cachetimerange'] = empty($block['cachetimerange']) ? (isset($_G['setting']['blockcachetimerange']) ? $_G['setting']['blockcachetimerange'] : '') : $block['cachetimerange'];
$block['cachetimerange'] = empty($block['cachetimerange']) ? array('0', '23') : explode(',', $block['cachetimerange']);
$cachetimerange = range(0, 23);
$dateformats = block_getdateformats($block['dateformat']);
$block['summary'] = dhtmlspecialchars($block['summary']);
$blockclassname = '';
$blockclass = $block['blockclass'] ? $block['blockclass'] : $_GET['classname'];
$arr = explode('_', $blockclass);
if(count($arr) == 2) {
$blockclassname = $_G['cache']['blockclass'][$arr[0]]['subs'][$blockclass]['name'];
}
$blockclassname = empty($blockclassname) ? $blockclass : $blockclassname;
} elseif($op == 'banids') {
if(!$bid || (!$allowmanage && !$allowdata)) {
showmessage('block_edit_nopermission');
}
if(isset($_GET['bannedids']) && $block['param']['bannedids'] != $_GET['bannedids']) {
$arr = explode(',', $_GET['bannedids']);
$arr = array_map('intval', $arr);
$arr = array_filter($arr);
$_GET['bannedids'] = implode(',', $arr);
$block['param']['bannedids'] = $_GET['bannedids'];
C::t('common_block')->update($bid, array('param'=>serialize($block['param'])));
$_G['block'][$bid] = $block;
block_updatecache($bid, true);
}
showmessage('do_success', 'portal.php?mod=portalcp&ac=block&op=data&bid='.$bid, array('bid'=>$bid, 'eleid'=> $_GET['eleid']));
} elseif($op == 'data') {
if(!$bid || (!$allowmanage && !$allowdata)) {
showmessage('block_edit_nopermission');
}
if(submitcheck('updatesubmit')) {
if($_POST['displayorder']) {
asort($_POST['displayorder']);
$orders = $ids = array();
$order = 1;
foreach($_POST['displayorder'] as $k=>$v) {
$k = intval($k);
$ids[] = $k;
$orders[$k] = $order;
$order++;
}
$items = array();
foreach(C::t('common_block_item')->fetch_all($ids) as $value) {
if($value['bid'] == $bid) {
$items[$value['itemid']] = $value;
}
}
foreach($items as $key=>$value) {
$itemtype = !empty($_POST['locked'][$key]) ? '1' : '0';
if($orders[$key] != $value['displayorder'] || $itemtype != $value['itemtype']) {
C::t('common_block_item')->update($key, array('displayorder'=>$orders[$key], 'itemtype'=>$itemtype));
}
}
}
showmessage('do_success', 'portal.php?mod=portalcp&ac=block&op=data&bid='.$bid, array('bid'=>$bid, 'eleid'=> $_GET['eleid']));
}
$itemlist = array();
if($bid) {
$preorders = array();
foreach(C::t('common_block_item')->fetch_all_by_bid($bid, true) as $value) {
if($value['itemtype']==1 && $value['enddate'] && $value['enddate'] <= TIMESTAMP) {
continue;
}
$value['ispreorder'] = false;
if($value['itemtype']==1) {
if($value['startdate'] > TIMESTAMP) {
$value['ispreorder'] = true;
} else {
$preorders[$value['displayorder']] = $value['itemid'];
}
}
$value['itemtypename'] = lang('portalcp', 'itemtypename'.$value['itemtype']);
$itemlist[$value['itemid']] = $value;
}
if($preorders) {
foreach($itemlist as $key=>$value) {
if(isset($preorders[$value['displayorder']]) && $value['itemid'] != $preorders[$value['displayorder']]) {
unset($itemlist[$key]);
}
}
}
}
$block['param']['bannedids'] = !empty($block['param']['bannedids']) ? $block['param']['bannedids'] : '';
} elseif($op == 'style') {
if(!$bid || !$allowmanage) {
showmessage('block_edit_nopermission');
}
if(submitcheck('stylesubmit')) {
$_POST['name'] = trim($_POST['name']);
$arr = array(
'name' => $_POST['name'],
'blockclass' => $_GET['classname'],
);
$_POST['template'] = $_POST['template'];
include_once libfile('function/block');
block_parse_template($_POST['template'], $arr);
if(!empty($_POST['name'])) {
$styleid = C::t('common_block_style')->insert($arr, true);
}
$arr['fields'] = dunserialize($arr['fields']);
$arr['template'] = dunserialize($arr['template']);
$arr = serialize($arr);
C::t('common_block')->update($bid, array('blockstyle'=>$arr, 'styleid'=>'0'));
showmessage('do_success', 'portal.php?mod=portalcp&ac=block&op=style&bid='.$bid, array('bid'=>$bid, 'eleid'=> $_GET['eleid']));
}
$template = block_build_template($blockstyle['template']);
$samplecode = '';
if($block['hidedisplay']) {
$samplecode = '
';
$samplecode = dhtmlspecialchars($samplecode);
$samplecode = str_replace('\n', '
', $samplecode);
}
} elseif($op == 'itemdata') {
if(!$bid || (!$allowmanage && !$allowdata)) {
showmessage('block_edit_nopermission');
}
if(!$is_recommendable) {
showmessage('block_no_recommend_library');
}
$theurl = 'portal.php?mod=portalcp&ac=block&op=itemdata';
$perpage = 20;
$page = max(1,intval($_GET['page']));
$start = ($page-1)*$perpage;
if($start<0) $start = 0;
if(submitcheck('deletesubmit')) {
if(!empty($_POST['ids'])) {
C::t('common_block_item_data')->delete_by_dataid_bid($_POST['ids'], $bid);
}
$displayorder = array_map('intval', $_POST['displayorder']);
foreach($displayorder as $dataid => $displayorder) {
if($displayorder !== intval($_POST['olddisplayorder'][$dataid])) {
C::t('common_block_item_data')->update($dataid, array('displayorder' => $displayorder));
}
}
showmessage('do_success', "portal.php?mod=portalcp&ac=block&op=itemdata&bid=$bid&page=$page");
}
$count = C::t('common_block_item_data')->count_by_bid($bid);
$multi = '';
$datalist = array();
if($count) {
$datalist = C::t('common_block_item_data')->fetch_all_by_bid($bid, 1, $start, $perpage);
$multi = multi($count, $perpage, $page, "portal.php?mod=portalcp&ac=block&bid=$bid&op=itemdata");
}
} elseif($op == 'setting') {
if(($bid && !$allowmanage)) {
showmessage('block_edit_nopermission');
}
$settings = array();
if($theclass['script'][$_GET['script']]) {
$settings = block_setting($_GET['classname'], $_GET['script'], $block['param']);
}
$block['script'] = isset($block['script']) ? $block['script'] : $_GET['script'];
$scriptarr = array($block['script'] => ' selected');
$stylearr = array($_GET['styleid'] => ' selected');
$block = block_checkdefault($block);
$cachetimearr = array($block['cachetime'] =>' selected="selected"');
$block['cachetime_min'] = intval($block['cachetime'] / 60);
$targetarr[$block['target']] = ' selected';
} elseif($op == 'thumbsetting') {
if(($bid && !$allowmanage)) {
showmessage('block_edit_nopermission');
}
$block = block_checkdefault($block);
$cachetimearr = array($block['cachetime'] =>' selected="selected"');
$block['cachetime_min'] = intval($block['cachetime'] / 60);
$targetarr[$block['target']] = ' selected';
$dateformats = block_getdateformats($block['dateformat']);
} elseif($op == 'remove') {
if(!$bid || (!$allowmanage && !$allowdata)) {
showmessage('block_edit_nopermission');
}
if($_GET['itemid']) {
$_GET['itemid'] = intval($_GET['itemid']);
if(($item = C::t('common_block_item')->fetch($_GET['itemid'])) && $item['bid'] == $bid) {
C::t('common_block_item')->delete($_GET['itemid']);
if($item['itemtype'] != '1') {
block_ban_item($block, $item);
}
block_updatecache($bid, true);
}
}
showmessage('do_success', "portal.php?mod=portalcp&ac=block&op=data&bid=$bid", array('bid'=>$bid));
} elseif( in_array($op, array('item', 'additem', 'push', 'recommend', 'verifydata', 'managedata'))) {
if(!$bid) {
showmessage('block_edit_nopermission');
}
$itemid = $_GET['itemid'] ? intval($_GET['itemid']) : 0;
$dataid = $_GET['dataid'] ? intval($_GET['dataid']) : 0;
$_GET['id'] = intval($_GET['id']);
$_GET['idtype'] = preg_replace('/[^\w]/', '', $_GET['idtype']);
$item = $perm = array();
if($op == 'item' || $op == 'additem') {
if(!$allowmanage && !$allowdata) {
showmessage('block_edit_nopermission');
}
if($itemid && ($item = C::t('common_block_item')->fetch($itemid))) {
$item['fields'] = dunserialize($item['fields']);
}
} elseif($op == 'push') {
$item = get_push_item($block, $thestyle, $_GET['id'], $_GET['idtype']);
if($itemid) {
$item['itemid'] = $itemid;
}
} elseif($op == 'recommend') {
$perm = getblockperm($bid);
if(!$perm['allowmanage'] && !$perm['allowrecommend']) {
showmessage('block_no_right_recommend');
}
$isrepeatrecommend = false;
$idtype = $_GET['idtype'] == 'gtid' ? 'tid' : $_GET['idtype'];
if(($item = C::t('common_block_item_data')->fetch_by_bid_id_idtype($bid, $_GET['id'], $idtype))) {
$item['fields'] = dunserialize($item['fields']);
$isrepeatrecommend = true;
if(!$perm['allowmanage'] && $item['uid'] != $_G['uid']) {
showmessage('data_in_mod_library', null, null, array('striptags' => false));
}
} else {
if(in_array($_GET['idtype'],array('tid', 'gtid', 'aid', 'picid', 'blogid'))) {
$_GET['idtype'] = $_GET['idtype'] == 'gtid' ? 'tids' : $_GET['idtype'].'s';
}
$item = get_push_item($block, $thestyle, $_GET['id'], $_GET['idtype'], $block['blockclass'], $block['script']);
if(empty($item)) showmessage('block_data_type_invalid', null, null, array('msgtype'=>3));
}
} elseif($op=='verifydata' || $op=='managedata') {
if(!$allowmanage && !$allowdata) {
showmessage('no_right_manage_data');
}
if($dataid) {
$item = C::t('common_block_item_data')->fetch($dataid);
$item['fields'] = dunserialize($item['fields']);
}
}
if(!$item && $op != 'additem') {
showmessage('block_edit_nopermission');
}
$item['oldpic'] = $item['pic'];
if($item['picflag'] == '1') {
$item['pic'] = $item['pic'] ? $_G['setting']['attachurl'].$item['pic'] : '';
} elseif($item['picflag'] == '2') {
$item['pic'] = $item['pic'] ? $_G['setting']['ftp']['attachurl'].$item['pic'] : '';
}
$item['startdate'] = $item['startdate'] ? dgmdate($item['startdate']) : dgmdate(TIMESTAMP);
$item['enddate'] = $item['enddate'] ? dgmdate($item['enddate']) : '';
$orders = range(1, $block['shownum']);
$orderarr[$item['displayorder']] = ' selected="selected"';
$item['showstyle'] = !empty($item['showstyle']) ? (array)(dunserialize($item['showstyle'])) : (!empty($item['fields']['showstyle']) ? $item['fields']['showstyle'] : array());
$showstylearr = array();
foreach(array('title_b', 'title_i', 'title_u', 'title_c', 'summary_b', 'summary_i', 'summary_u', 'title_c') as $value) {
if(!empty($item['showstyle'][$value])) {
$showstylearr[$value] = 'class="a"';
}
}
$itemfields = $blockitem = $item;
unset($itemfields['fields']);
$item['fields'] = (array)$item['fields'];
foreach($item['fields'] as $key=>$value) {
if($theclass['fields'][$key]) {
switch($theclass['fields'][$key]['datatype']) {
case 'date':
$itemfields[$key] = dgmdate($value, 'Y-m-d H:i:s');
break;
case 'int':
$itemfields[$key] = intval($value);
break;
case 'string':
$itemfields[$key] = dhtmlspecialchars($value);
break;
default:
$itemfields[$key] = $value;
}
}
}
$showfields = array();
if(empty($thestyle['fields'])) {
$template = block_build_template($thestyle['template']);
$thestyle['fields'] = block_parse_fields($template);
C::t('common_block_style')->update(intval($thestyle['styleid']), array('fields'=>serialize($thestyle['fields'])));
}
foreach($thestyle['fields'] as $fieldname) {
$showfields[$fieldname] = "1";
}
if(submitcheck('itemsubmit') || submitcheck('recommendsubmit') || submitcheck('verifydatasubmit') || submitcheck('managedatasubmit')) {
$item['bid'] = $block['bid'];
$item['displayorder'] = intval($_POST['displayorder']);
$item['startdate'] = !empty($_POST['startdate']) ? strtotime($_POST['startdate']) : 0;
$item['enddate'] = !empty($_POST['enddate']) ? strtotime($_POST['enddate']) : 0;
$item['itemtype'] = !empty($_POST['locked']) ? '1' : '2';
$item['title'] = dhtmlspecialchars($_POST['title']);
$item['url'] = $_POST['url'];
$block['param']['summarylength'] = empty($block['param']['summarylength']) ? 80 : $block['param']['summarylength'];
$block['param']['titlelength'] = empty($block['param']['titlelength']) ? 40 : $block['param']['titlelength'];
$item['summary'] = cutstr($_POST['summary'], $block['param']['summarylength'], '');
if($_FILES['pic']['tmp_name']) {
$result = pic_upload($_FILES['pic'], 'portal');
$item['pic'] = 'portal/'.$result['pic'];
$item['picflag'] = $result['remote'] ? '2' : '1';
$item['makethumb'] = 0;
$item['thumbpath'] = '';
$thumbdata = array('bid' => $block['bid'], 'itemid' => $item['itemid'], 'pic' => $item['pic'], 'picflag' => $result['remote'], 'type' => '1');
C::t('common_block_pic')->insert($thumbdata);
} elseif($_POST['pic']) {
$pic = dhtmlspecialchars($_POST['pic']);
$urls = parse_url($pic);
if(!empty($urls['scheme']) && !empty($urls['host'])) {
$item['picflag'] = '0';
$item['thumbpath'] = '';
} else {
$item['picflag'] = intval($_POST['picflag']);
}
if($item['pic'] != $pic) {
$item['pic'] = $pic;
$item['makethumb'] = 0;
$item['thumbpath'] = block_thumbpath($block, $item);
}
}
unset($item['oldpic']);
$item['showstyle'] = $_POST['showstyle']['title_b'] || $_POST['showstyle']['title_i'] || $_POST['showstyle']['title_u'] || $_POST['showstyle']['title_c'] ? $_POST['showstyle'] : array();
$item['showstyle'] = empty($item['showstyle']) ? '' : serialize($item['showstyle']);
foreach($theclass['fields'] as $key=>$value) {
if(!isset($item[$key]) && isset($_POST[$key])) {
if($value['datatype'] == 'int') {
$_POST[$key] = intval($_POST[$key]);
} elseif($value['datatype'] == 'date') {
$_POST[$key] = strtotime($_POST[$key]);
} else {
$_POST[$key] = $_POST[$key];
}
$item['fields'][$key] = $_POST[$key];
}
}
if(isset($item['fields']['fulltitle'])) {
$item['fields']['fulltitle'] = $item['title'];
}
$item['fields'] = serialize($item['fields']);
$item['title'] = cutstr($item['title'], $block['param']['titlelength'], '');
if($_POST['icflag']) {
$item['makethumb'] = 1;
$item['thumbpath'] = block_thumbpath($block, $item);
}
if(submitcheck('itemsubmit')) {
if($op == 'additem' && !$item['id']) {
$item['id'] = ($pushid = intval($_POST['push_id'])) ? $pushid : mt_rand(1,9999);
$item['idtype'] = 'rand';
}
if($item['startdate'] > $_G['timestamp']) {
C::t('common_block_item')->insert($item, false, true);
} elseif(empty($item['enddate']) || $item['enddate'] > $_G['timestamp']) {
C::t('common_block_item')->delete_by_bid_displayorder($bid, $item['displayorder']);
C::t('common_block_item')->insert($item, false, true);
} else {
C::t('common_block_item')->delete_by_itemid_bid($item['itemid'], $bid);
}
block_updatecache($bid, true);
showmessage('do_success', 'portal.php?mod=portalcp&ac=block&op=data&bid='.$block['bid'], array('bid'=>$bid));
} elseif(submitcheck('recommendsubmit')) {
include_once libfile('function/home');
$thumbpath = $item['thumbpath'];
unset($item['itemid']);
unset($item['thumbpath']);
$item['itemtype'] = '0';
$item['uid'] = $_G['uid'];
$item['username'] = $_G['username'];
$item['dateline'] = TIMESTAMP;
$item['isverified'] = empty($_POST['needverify']) && ($perm['allowmanage'] || empty($perm['needverify'])) ? '1' : '0';
$item['verifiedtime'] = TIMESTAMP;
C::t('common_block_item_data')->insert($item, false, true);
if($_GET['showrecommendtip'] && (in_array($_GET['idtype'], array('tids', 'tid', 'gtid')))) {
$modarr = array(
'tid' => $item['id'],
'uid' => $item['uid'],
'username' => $item['username'],
'dateline' => TIMESTAMP,
'action' => 'REB',
'status' => '1',
'stamp' => '',
'reason' => getstr($_GET['recommendto'], 20),
);
C::t('forum_threadmod')->insert($modarr);
$data = array('moderated' => 1);
loadcache('stamptypeid');
if(array_key_exists(4, $_G['cache']['stamptypeid'])) {
$data['stamp'] = $_G['cache']['stamptypeid']['4'];
}
C::t('forum_thread')->update($item['id'], $data);
}
if($_POST['icflag'] && !(C::t('common_block_pic')->count_by_bid_pic($block['bid'], $thumbpath))) {
$picflag = 0; //common_block_pic表中的picflag标识(0本地,1远程)
if($_G['setting']['ftp']['on']) {
$ftp = & discuz_ftp::instance();
$ftp->connect();
if($ftp->connectid && $ftp->ftp_size($thumbpath) > 0 || $ftp->upload($_G['setting']['attachurl'].'/'.$thumbpath, $thumbpath)) {
$picflag = 1; //common_block_pic表中的picflag标识(0本地,1远程)
@unlink($_G['setting']['attachdir'].'./'.$thumbpath);
}
}
$thumbdata = array('bid' => $block['bid'], 'itemid' => 0, 'pic' => $thumbpath, 'picflag' => $picflag, 'type' => '0');
C::t('common_block_pic')->insert($thumbdata);
}
if(!empty($_POST['updateblock'])) {
block_updatecache($bid, true);
}
if(($_G['group']['reasonpm'] == 2 || $_G['group']['reasonpm'] == 3) || !empty($_GET['sendreasonpm'])) {
$sendreasonpm = 1;
} else {
$sendreasonpm = 0;
}
if($sendreasonpm) {
require_once libfile('function/misc');
if((in_array($_GET['idtype'], array('tids', 'tid', 'gtid')))) {
$sendreasonpmcontent = C::t('forum_thread')->fetch($item['id']);
sendreasonpm($sendreasonpmcontent, 'recommend_note_post', array(
'tid' => $item['id'],
'subject' => $sendreasonpmcontent['subject'],
'from_id' => 0,
'from_idtype' => 'recommend'
));
}
}
$showrecommendrate = '';
if($_G['group']['raterange'] && (in_array($_GET['idtype'], array('tids', 'tid', 'gtid')))) {
$showrecommendrate = 1;
}
if($showrecommendrate) {
showmessage('do_success', dreferer('portal.php'), array(), array('showdialog' => true, 'closetime' => 0.01, 'extrajs' =>
''));
} elseif($_GET['showrecommendtip']) {
showmessage('do_success', dreferer('portal.php'), array(), array('showdialog' => true, 'closetime' => true, 'extrajs' =>
''));
} else {
showmessage('do_success', dreferer('portal.php'), array(), array('showdialog' => true, 'closetime' => true));
}
} elseif(submitcheck('verifydatasubmit')) {
unset($item['thumbpath']);
$item['isverified'] = '1';
$item['verifiedtime'] = TIMESTAMP;
C::t('common_block_item_data')->update($dataid, $item);
if(!empty($_POST['updateblock'])) {
block_updatecache($bid, true);
}
showmessage('do_success', dreferer('portal.php?mod=portalcp&ac=portalblock&op=verifieddata&searchkey=%23'.$bid));
} elseif(submitcheck('managedatasubmit')) {
unset($item['thumbpath']);
$item['stickgrade'] = intval($_POST['stickgrade']);
C::t('common_block_item_data')->update($dataid, $item);
showmessage('do_success', dreferer('portal.php?mod=portalcp&ac=block&op=itemdata&bid='.$bid));
}
}
if(in_array($block['blockclass'], array('forum_thread', 'portal_article', 'group_thread', 'space_blog'), true)) {
$picdatas = array();
$prefix = ($item['picflag'] == 2 ? $_G['setting']['ftp']['attachurl'] : $_G['setting']['attachurl']);
$itemfields['pics'] = array();
$first = true;
if(empty($_GET['idtype'])) {
$_GET['idtype'] = $itemfields['idtype'].'s';
$_GET['id'] = $itemfields['id'];
}
if(in_array($_GET['idtype'], array('tids', 'tid'))) {
$prefix .= 'forum/';
$firstpost = C::t('forum_post')->fetch_threadpost_by_tid_invisible($_GET['id']);
foreach(C::t('forum_attachment_n')->fetch_all_by_pid_width('pid:'.$firstpost['pid'], $firstpost['pid'], $block['picwidth']) as $pic) {
if($first) {
$first = false;
$itemfields['pics'][0] = '';
if(strpos($itemfields['oldpic'], 'nophoto.gif') !== false) {
$itemfields['oldpic'] = 'forum/'.$pic['attachment'];
}
}
$thumb = $prefix.($pic['thumb'] ? getimgthumbname($pic['attachment']) : $pic['attachment']);
if('forum/'.$pic['attachment'] == $itemfields['oldpic']) {
$itemfields['pics'][0] = array('big' => $prefix.$pic['attachment'], 'thumb' => $thumb, 'attachment' => 'forum/'.$pic['attachment'], 'first' => 1);
} else {
$itemfields['pics'][] = array('big' => $prefix.$pic['attachment'], 'thumb' => $thumb, 'attachment' => 'forum/'.$pic['attachment'], 'first' => 0);
}
}
if(empty($itemfields['pics'][0])) {
unset($itemfields['pics'][0]);
}
} elseif($_GET['idtype'] == 'aids') {
$prefix .= 'portal/';
foreach(C::t('portal_attachment')->fetch_all_by_aid($_GET['id']) as $pic) {
if($first) {
$first = false;
$itemfields['pics'][0] = '';
if(strpos($itemfields['oldpic'], 'nophoto.gif') !== false) {
$itemfields['oldpic'] = 'portal/'.$pic['attachment'];
}
}
$thumb = $prefix.($pic['thumb'] ? getimgthumbname($pic['attachment']) : $pic['attachment']);
if('portal/'.$pic['attachment'] == $itemfields['oldpic']) {
$itemfields['pics'][0] = array('big' => $prefix.$pic['attachment'], 'thumb' => $thumb, 'attachment' => 'portal/'.$pic['attachment'], 'first' => 1);
} else {
$itemfields['pics'][] = array('big' => $prefix.$pic['attachment'], 'thumb' => $thumb, 'attachment' => 'portal/'.$pic['attachment'], 'first' => 0);
}
}
if(empty($itemfields['pics'][0])) {
unset($itemfields['pics'][0]);
}
} elseif($_GET['idtype'] == 'blogids') {
$itemfields['pics'][] = array('big' => $itemfields['pic'], 'thumb' => 1, 'attachment' => $itemfields['oldpic']);
}
}
} elseif ($op == 'getblock') {
if(!$bid || (!$allowmanage && !$allowdata)) {
showmessage('block_edit_nopermission');
}
block_get_batch($bid);
if(!empty($_GET['forceupdate'])) block_updatecache($bid, !empty($_GET['forceupdate']));
if(strexists($block['summary'], '