Example #1
0
 function clone_block_ok($bid, $bside, $bweight, $bvisible, $bcachetime, $bmodule, $options)
 {
     global $xoopsUser;
     $block = new XoopsBlock($bid);
     $clone =& $block->xoopsClone();
     if (empty($bmodule)) {
         xoops_cp_header();
         xoops_error(sprintf(_AM_NOTSELNG, _AM_VISIBLEIN));
         xoops_cp_footer();
         exit;
     }
     $clone->setVar('side', $bside);
     $clone->setVar('weight', $bweight);
     $clone->setVar('visible', $bvisible);
     $clone->setVar('content', $bcontent);
     //$clone->setVar('title', $btitle);
     $clone->setVar('bcachetime', $bcachetime);
     if (isset($options) && count($options) > 0) {
         $options = implode('|', $options);
         $clone->setVar('options', $options);
     }
     $clone->setVar('bid', 0);
     if ($block->getVar('block_type') == 'C' || $block->getVar('block_type') == 'E') {
         $clone->setVar('block_type', 'E');
     } else {
         $clone->setVar('block_type', 'D');
     }
     $newid = $clone->store();
     if (!$newid) {
         xoops_cp_header();
         $clone->getHtmlErrors();
         xoops_cp_footer();
         exit;
     }
     if ($clone->getVar('template') != '') {
         $tplfile_handler =& xoops_gethandler('tplfile');
         $btemplate =& $tplfile_handler->find($GLOBALS['xoopsConfig']['template_set'], 'block', $bid);
         if (count($btemplate) > 0) {
             $tplclone =& $btemplate[0]->xoopsClone();
             $tplclone->setVar('tpl_id', 0);
             $tplclone->setVar('tpl_refid', $newid);
             $tplman->insert($tplclone);
         }
     }
     $db =& Database::getInstance();
     foreach ($bmodule as $bmid) {
         $sql = 'INSERT INTO ' . $db->prefix('block_module_link') . ' (block_id, module_id) VALUES (' . $newid . ', ' . $bmid . ')';
         $db->query($sql);
     }
     $groups =& $xoopsUser->getGroups();
     $count = count($groups);
     for ($i = 0; $i < $count; $i++) {
         $sql = "INSERT INTO " . $db->prefix('group_permission') . " (gperm_groupid, gperm_itemid, gperm_modid, gperm_name) VALUES (" . $groups[$i] . ", " . $newid . ", 1, 'block_read')";
         $db->query($sql);
     }
     redirect_header('admin.php?fct=blocksadmin&amp;t=' . time(), 1, _AM_DBUPDATED);
 }
Example #2
0
function clone_block_ok($bid, $bside, $bweight, $bvisible, $btitle, $bcontent, $bcachetime, $bmodule, $options = array(), $bgroups = array())
{
    global $xoopsUser;
    /*
    if (empty($bmodule)) {
        xoops_cp_header();
        xoops_error(sprintf(_AM_NOTSELNG, _AM_VISIBLEIN));
        xoops_cp_footer();
        exit();
    }
    */
    $block = new XoopsBlock($bid);
    $clone =& $block->xoopsClone();
    $clone->setVar('side', $bside);
    $clone->setVar('weight', $bweight);
    $clone->setVar('visible', $bvisible);
    $clone->setVar('content', $bcontent);
    $clone->setVar('title', $btitle);
    $clone->setVar('bcachetime', $bcachetime);
    if (isset($options) && count($options) > 0) {
        $options = implode('|', $options);
        $clone->setVar('options', $options);
    }
    $clone->setVar('bid', 0);
    // Custom block
    if ($block->isCustom()) {
        $clone->setVar('block_type', 'C');
        // Clone of system or module block
    } else {
        $clone->setVar('block_type', 'D');
    }
    $newid = $clone->store();
    if (!$newid) {
        xoops_cp_header();
        $clone->getHtmlErrors();
        xoops_cp_footer();
        exit;
    }
    if ($clone->getVar('template') != '') {
        $tplfile_handler =& xoops_gethandler('tplfile');
        $btemplate = $tplfile_handler->find($GLOBALS['xoopsConfig']['template_set'], 'block', $bid);
        if (count($btemplate) > 0) {
            $tplclone =& $btemplate[0]->xoopsClone();
            $tplclone->setVar('tpl_id', 0);
            $tplclone->setVar('tpl_refid', $newid);
            $tplfile_handler->insert($tplclone);
        }
    }
    $db =& Database::getInstance();
    foreach (@$bmodule as $bmid) {
        $sql = 'INSERT INTO ' . $db->prefix('block_module_link') . ' (block_id, module_id) VALUES (' . $newid . ', ' . $bmid . ')';
        $db->query($sql);
    }
    $groupperm_handler =& xoops_gethandler('groupperm');
    foreach ($bgroups as $groupid) {
        $groupperm_handler->addRight("block_read", $newid, $groupid);
    }
    redirect_header('admin.php?fct=blocksadmin&amp;t=' . time(), 1, _AM_DBUPDATED);
}