$blocks = array(); if (checkperm('allowdiy')) { $count = DB::result_first('SELECT COUNT(*) FROM ' . DB::table('common_block') . " b {$wheresql}"); $sql = 'SELECT b.*,tb.targettplname FROM ' . DB::table('common_block') . " b LEFT JOIN " . DB::table('common_template_block') . " tb ON b.bid=tb.bid {$wheresql} ORDER BY b.bid DESC LIMIT {$start}, {$perpage}"; } else { $count = DB::result_first('SELECT COUNT(*) FROM ' . DB::table('common_block_permission') . ' bp LEFT JOIN ' . DB::table('common_block') . " b ON bp.bid=b.bid {$wheresql}"); $sql = 'SELECT b.*, tb.targettplname FROM ' . DB::table('common_block_permission') . " bp LEFT JOIN " . DB::table('common_block') . " b ON bp.bid = b.bid LEFT JOIN " . DB::table('common_template_block') . " tb ON bp.bid=tb.bid {$wheresql} ORDER BY b.bid DESC LIMIT {$start}, {$perpage}"; } if ($count) { require_once libfile('function/block'); $query = DB::query($sql); while ($value = DB::fetch($query)) { if ($value['blocktype']) { $value['url'] = lang('portal/template', 'block_jscall'); } else { $tplinfo = block_getdiyurl($value['targettplname']); if ($tplinfo['url']) { $value['url'] = lang('portal/template', 'block_view_link', array('url' => $tplinfo['url'])); } else { $value['url'] = lang('portal/template', 'block_unused'); } } $value['name'] = empty($value['name']) ? '#' . $value['bid'] : trim($value['name']); $theclass = block_getclass($value['blockclass']); $value['datasrc'] = $theclass['script'][$value['script']]; $value['allowdata'] = checkperm('allowdiy') || $permission[$value['bid']]['allowdata'] ? true : false; $value['allowsetting'] = checkperm('allowdiy') || $permission[$value['bid']]['allowsetting'] ? true : false; $blocks[] = $value; } $multi = multi($count, $perpage, $page, "portal.php?mod=portalcp&ac=portalblock"); }
} } $multipage = multi($count, $perpage, $page, $mpurl); } showsubmit('', '', '', '<input type="checkbox" name="chkall" id="chkall" class="checkbox" onclick="checkAll(\'prefix\', this.form, \'ids\')" /><label for="chkall">' . cplang('select_all') . '</label> <input type="submit" class="btn" name="deletesubmit" value="' . cplang('block_delete') . '" />', $multipage); showtablefooter(); showformfooter(); } else { showsubtitle(array('block_name', 'block_script', 'block_style', 'block_dateline', 'block_page', 'operation')); $multipage = ''; $count = DB::result(DB::query("SELECT COUNT(*) FROM " . DB::table('common_block') . " b LEFT JOIN " . DB::table('common_template_block') . " tb ON tb.bid=b.bid WHERE {$wheresql}"), 0); if ($count) { $query = DB::query("SELECT b.*, tb.targettplname FROM " . DB::table('common_block') . " b LEFT JOIN " . DB::table('common_template_block') . " tb ON b.bid=tb.bid WHERE {$wheresql} {$ordersql} LIMIT {$start},{$perpage}"); while ($value = DB::fetch($query)) { if ($value['targettplname']) { $diyurl = block_getdiyurl($value['targettplname']); $diyurl = $diyurl['url']; $tplname = isset($_G['cache']['diytemplatename'][$value['targettplname']]) ? $_G['cache']['diytemplatename'][$value['targettplname']] : $value['targettplname']; $diypage[$value['bid']][$value['targettplname']] = $diyurl ? '<a href="' . $diyurl . '" target="_blank">' . $tplname . '</a>' : $tplname; } $list[$value['bid']] = $value; } if ($list) { foreach ($list as $bid => $value) { $inpage = empty($diypage[$bid]) ? cplang('block_page_unused') : implode('<br/>', $diypage[$bid]); $theclass = block_getclass($value['blockclass'], true); showtablerow('', '', array($value['name'] ? $value['name'] : cplang('block_name_null'), $theclass['script'][$value['script']], $value['styleid'] ? $theclass['style'][$value['styleid']]['name'] : lang('portalcp', 'blockstyle_diy'), !empty($value['dateline']) ? dgmdate($value['dateline']) : cplang('block_dateline_null'), $inpage, "<a href=\"portal.php?mod=portalcp&ac=block&op=block&bid={$value['bid']}&from=cp\" target=\"_blank\" onclick=\"showWindow('showblock',this.href);return false;\">" . cplang('block_setting') . "</a>  " . "<a href=\"portal.php?mod=portalcp&ac=block&op=data&bid={$value['bid']}&from=cp\" target=\"_blank\" onclick=\"showWindow('showblock',this.href);return false;\">" . cplang('block_data') . "</a>  " . $diyop . " <a href=\"" . ADMINSCRIPT . "?action=block&operation=perm&bid={$value['bid']}\">" . cplang('portalcategory_perm') . '</a>')); } } $multipage = multi($count, $perpage, $page, $mpurl); }
$page = max(1, intval($_GET['page'])); $start = ($page - 1) * $perpage; if ($start < 0) { $start = 0; } $end = $start + $perpage; $multi = multi(count($pageblocks), $perpage, $page, $theurl); $allpageblocks = $pageblocks; $bids = $pageblocks = $diyurls = array(); $cursor = 0; require_once libfile('function/block'); foreach ($allpageblocks as $key => $value) { if ($cursor >= $start && $cursor < $end) { $pageblocks[$key] = $value; $bids = array_merge($bids, $value); $diyurl = block_getdiyurl($key); $diyurls[$key] = $diyurl['url']; } elseif ($cursor >= $end) { break; } $cursor++; } if ($bids) { $query = DB::query('SELECT b.bid, b.`name`, b.blockclass, b.notinherited, tb.targettplname FROM ' . DB::table('common_block') . ' b LEFT JOIN ' . DB::table('common_template_block') . ' tb ON tb.bid=b.bid WHERE b.bid IN (' . dimplode($bids) . ')'); while ($value = DB::fetch($query)) { $value['isrecommendable'] = block_isrecommendable($value); $value['perm'] = formatblockpermissoin($value); $value['name'] = !empty($value['name']) ? $value['name'] : '<strong>#' . $value['bid'] . '</strong>'; $blocks[$value['bid']] = $value; } }