Пример #1
0
function block_clear()
{
    $uselessbids = $usingbids = $bids = array();
    $bids = C::t('common_block')->fetch_all_bid_by_blocktype(0, 1000);
    $usingbids = array_keys(C::t('common_template_block')->fetch_all_by_bid($bids));
    $uselessbids = array_diff($bids, $usingbids);
    if (!empty($uselessbids)) {
        C::t('common_block_item')->delete_by_bid($uselessbids);
        C::t('common_block_item_data')->delete_by_bid($uselessbids);
        C::t('common_block_favorite')->delete_by_bid($uselessbids);
        C::t('common_block_permission')->delete_by_bid_uid_inheritedtplname($uselessbids);
        C::t('common_block')->delete($uselessbids);
        C::t('common_block')->optimize();
        C::t('common_block_item')->optimize();
        block_delete_pic($uselessbids);
    }
}
Пример #2
0
function block_clear()
{
    $uselessbids = $usingbids = $bids = array();
    $query = DB::query("SELECT bid FROM " . DB::table('common_block') . " WHERE blocktype='0' ORDER BY bid DESC LIMIT 1000");
    while ($value = DB::fetch($query)) {
        $bids[] = intval($value['bid']);
    }
    $query = DB::query("SELECT bid FROM " . DB::table('common_template_block') . " WHERE bid IN (" . dimplode($bids) . ")");
    while ($value = DB::fetch($query)) {
        $usingbids[] = intval($value['bid']);
    }
    $uselessbids = array_diff($bids, $usingbids);
    if (!empty($uselessbids)) {
        $delids = dimplode($uselessbids);
        DB::query("DELETE FROM " . DB::table('common_block_item') . " WHERE bid IN ({$delids})");
        DB::query("DELETE FROM " . DB::table('common_block_item_data') . " WHERE bid IN ({$delids})");
        DB::query("DELETE FROM " . DB::table('common_block_favorite') . " WHERE bid IN ({$delids})");
        DB::delete('common_block_permission', 'bid IN (' . $delids . ')');
        DB::query("DELETE FROM " . DB::table('common_block') . " WHERE bid IN ({$delids})");
        DB::query("OPTIMIZE TABLE " . DB::table('common_block'), 'SILENT');
        DB::query("OPTIMIZE TABLE " . DB::table('common_block_item'), 'SILENT');
        block_delete_pic($uselessbids);
    }
}