Esempio n. 1
0
function hypconfGetBlocks()
{
    static $ret = null;
    if (!is_null($ret)) {
        return $ret;
    }
    include_once XOOPS_ROOT_PATH . "/class/xoopsblock.php";
    $bobj = new XoopsBlock();
    $blocks = $bobj->getAllBlocks('object', null, true);
    $ret = array();
    if ($blocks) {
        foreach ($blocks as $block) {
            $name = $block->getVar('title') ? $block->getVar('title') : $block->getVar('name');
            $bid = $block->getVar("bid");
            if ($module = hypconfGetModuleName($block->getVar("mid"))) {
                $ret[$module . ':' . $name] = array('confop_value' => $bid, 'confop_name' => $module . ':' . $name);
            }
        }
        ksort($ret);
    }
    return $ret;
}
Esempio n. 2
0
 function plugin_xoopsblock_convert()
 {
     if ($this->root->module['platform'] !== "xoops") {
         return '';
     }
     static $css_show = FALSE;
     list($tgt, $option1, $option2) = array_pad(func_get_args(), 3, "");
     $tgt_bids = array();
     if (!$tgt || $tgt === "?") {
         $tgt = "?";
     } else {
         foreach (explode(",", $tgt) as $_bid) {
             if (preg_match("/^\\d+\$/", $_bid) && $_bid > 0) {
                 $tgt_bids[] = $_bid;
             }
         }
     }
     $align = "left";
     $around = false;
     $width = "";
     $arg = array();
     if (preg_match("/^(left|center|right)\$/i", $option2, $arg)) {
         $align = $arg[1];
     }
     if (preg_match("/^(left|center|right)\$/i", $option1, $arg)) {
         $align = $arg[1];
     }
     if (preg_match("/^(around|float|width)(:?w?([\\d]+%?)(?:px)?)?\$/i", $option2, $arg)) {
         if ($arg[1]) {
             $around = true;
         }
         $width = !strstr($arg[3], "%") ? $arg[3] . "px" : $arg[3];
         $width = "width:" . $width . ";";
     }
     if (preg_match("/^(around|float|width)(:?w?([\\d]+%?)(?:px)?)?\$/i", $option1, $arg)) {
         if ($arg[1]) {
             $around = true;
         }
         $width = !strstr($arg[3], "%") ? $arg[3] . "px" : $arg[3];
         $width = "width:" . $width . ";";
     }
     if ($align === 'center') {
         if (!$width) {
             $width = 'width:auto;';
         }
         $style = ' style="margin-left:auto;margin-right:auto;' . $width . '"';
         $around = false;
     } else {
         $style = ' style="float:' . $align . ';' . $width . '"';
     }
     $clear = $around ? '' : '<div style="clear:both;"></div>';
     global $xoopsUser;
     $xoopsblock = new XoopsBlock();
     $xoopsgroup = new XoopsGroup();
     $arr = array();
     $side = null;
     if ($this->root->userinfo['admin']) {
         $arr = $xoopsblock->getAllBlocks();
     } else {
         if ($xoopsUser) {
             $arr = $xoopsblock->getAllBlocksByGroup($xoopsUser->groups());
         } else {
             $arr = $xoopsblock->getAllBlocksByGroup($this->plugin_xoopsblock_getByType("Anonymous"));
         }
     }
     $ret = "";
     if ($tgt == "?") {
         foreach ($arr as $myblock) {
             $block = array();
             $block_type = @$myblock->getVar("type") ? $myblock->getVar("type") : $myblock->getVar("block_type");
             $name = @$myblock->getVar("title") ? $myblock->getVar("title") : $myblock->getVar("name");
             $bid = $myblock->getVar('bid');
             $ret .= "<li>(" . $bid . ")" . $name . "</li>";
         }
     } else {
         global $xoopsTpl;
         require_once XOOPS_ROOT_PATH . '/class/template.php';
         $xoopsTpl = new XoopsTpl();
         if (is_object($xoopsUser)) {
             $xoopsTpl->assign(array('xoops_isuser' => true, 'xoops_userid' => $xoopsUser->getVar('uid'), 'xoops_uname' => $xoopsUser->getVar('uname'), 'xoops_isadmin' => $xoopsUser->isAdmin()));
         }
         $xoopsTpl->assign('xoops_requesturi', htmlspecialchars($GLOBALS['xoopsRequestUri'], ENT_QUOTES));
         foreach ($tgt_bids as $bid) {
             $myblock = new XoopsBlock($bid);
             $_bid = $myblock->getVar('bid');
             if (!empty($_bid)) {
                 $bcachetime = $myblock->getVar('bcachetime');
                 // Only a guest enable cache. by nao-pon
                 //if (empty($bcachetime)) {
                 if ($bcachetime % 10 == 1) {
                     $bcachetime_guest = TRUE;
                     $bcachetime = $bcachetime - 1;
                 } else {
                     $bcachetime_guest = FALSE;
                 }
                 if (empty($bcachetime) || is_object($xoopsUser) && $bcachetime_guest) {
                     //if (empty($bcachetime)) {
                     $xoopsTpl->xoops_setCaching(0);
                 } else {
                     $xoopsTpl->xoops_setCaching(2);
                     $xoopsTpl->xoops_setCacheTime($bcachetime);
                 }
                 $btpl = $myblock->getVar('template');
                 if ($btpl != '') {
                     if (empty($bcachetime) || !$xoopsTpl->is_cached('db:' . $btpl, 'blk_' . $myblock->getVar('bid'))) {
                         //$xoopsLogger->addBlock($myblock->getVar('name'));
                         $bresult = $myblock->buildBlock();
                         if (!$bresult) {
                             continue;
                         }
                         $xoopsTpl->assign_by_ref('block', $bresult);
                         $bcontent = $xoopsTpl->fetch('db:' . $btpl, 'blk_' . $myblock->getVar('bid'));
                         $xoopsTpl->clear_assign('block');
                     } else {
                         //$xoopsLogger->addBlock($myblock->getVar('name'), true, $bcachetime);
                         $bcontent = $xoopsTpl->fetch('db:' . $btpl, 'blk_' . $myblock->getVar('bid'));
                     }
                 } else {
                     //$bid = $myblock->getVar('bid');
                     if (empty($bcachetime) || !$xoopsTpl->is_cached('db:system_dummy.html', 'blk_' . $bid)) {
                         //$xoopsLogger->addBlock($myblock->getVar('name'));
                         $bresult = $myblock->buildBlock();
                         if (!$bresult) {
                             continue;
                         }
                         $xoopsTpl->assign_by_ref('dummy_content', $bresult['content']);
                         $bcontent = $xoopsTpl->fetch('db:system_dummy.html', 'blk_' . $bid);
                         $xoopsTpl->clear_assign('block');
                     } else {
                         //$xoopsLogger->addBlock($myblock->getVar('name'), true, $bcachetime);
                         $bcontent = $xoopsTpl->fetch('db:system_dummy.html', 'blk_' . $bid);
                     }
                 }
                 $btitle = $myblock->getVar('title');
             } else {
                 $btitle = "Block({$bid})";
                 $bcontent = "Block({$bid}) is not found.";
             }
             if ($bcontent) {
                 $ret .= "<h5>" . $btitle . "</h5>\n";
                 $ret .= $bcontent;
                 foreach (explode("\n", $xoopsTpl->get_template_vars('xoops_block_header')) as $str) {
                     $this->root->head_tags[] = rtrim($str);
                 }
                 foreach (explode("\n", $xoopsTpl->get_template_vars('xoops_module_header')) as $str) {
                     $this->root->head_tags[] = rtrim($str);
                 }
                 $this->root->head_tags = array_unique($this->root->head_tags);
             }
         }
         unset($myblock);
     }
     if (!$css_show) {
         $css_show = true;
         $this->root->head_pre_tags[] = "<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"" . XOOPS_URL . "/xoops.css\" />";
     }
     if ($tgt == "?") {
         $ret = "<ul>{$ret}</ul>";
     }
     unset($xoopsblock, $xoopsgroup);
     return "<div{$style}>{$ret}</div>{$clear}";
 }
Esempio n. 3
0
$new_blocks_array = array();
$blocks_array = XoopsBlock::getAllBlocks("list", XOOPS_SIDEBLOCK_LEFT);
foreach ($blocks_array as $key => $value) {
    $new_blocks_array[$key] = "<a href='" . XOOPS_URL . "/modules/system/admin.php?fct=blocksadmin&amp;op=edit&amp;bid=" . $key . "'>" . $value . " (ID: " . $key . ")</a>";
}
$r_lblock_checkbox->addOptionArray($new_blocks_array);
$r_cblock_checkbox = new XoopsFormCheckBox("<b>" . _CENTER . "</b><br />", "read_bids[]", $r_block_value);
$new_blocks_array = array();
$blocks_array = XoopsBlock::getAllBlocks("list", XOOPS_CENTERBLOCK_ALL);
foreach ($blocks_array as $key => $value) {
    $new_blocks_array[$key] = "<a href='" . XOOPS_URL . "/modules/system/admin.php?fct=blocksadmin&amp;op=edit&amp;bid=" . $key . "'>" . $value . " (ID: " . $key . ")</a>";
}
$r_cblock_checkbox->addOptionArray($new_blocks_array);
$r_rblock_checkbox = new XoopsFormCheckBox("<b>" . _RIGHT . "</b><br />", "read_bids[]", $r_block_value);
$new_blocks_array = array();
$blocks_array = XoopsBlock::getAllBlocks("list", XOOPS_SIDEBLOCK_RIGHT);
foreach ($blocks_array as $key => $value) {
    $new_blocks_array[$key] = "<a href='" . XOOPS_URL . "/modules/system/admin.php?fct=blocksadmin&amp;op=edit&amp;bid=" . $key . "'>" . $value . " (ID: " . $key . ")</a>";
}
$r_rblock_checkbox->addOptionArray($new_blocks_array);
$r_block_tray = new XoopsFormElementTray(_AM_BLOCKRIGHTS, "<br /><br />");
$r_block_tray->addElement($r_lblock_checkbox);
$r_block_tray->addElement($r_cblock_checkbox);
$r_block_tray->addElement($r_rblock_checkbox);
$op_hidden = new XoopsFormHidden("op", $op_value);
$fct_hidden = new XoopsFormHidden("fct", "groups");
$submit_button = new XoopsFormButton("", "groupsubmit", $submit_value, "submit");
$form = new XoopsThemeForm($form_title, "groupform", "admin.php");
$form->addElement(new XoopsFormToken(XoopsMultiTokenHandler::quickCreate('groups_' . $op_value)));
$form->addElement($name_text);
$form->addElement($desc_text);
Esempio n. 4
0
 function getAddBlockForm($newsletterid, $dispatchid = 0)
 {
     include_once XOOPS_ROOT_PATH . "/class/xoopsformloader.php";
     $form = new XoopsThemeForm(_NL_AM_ADDBLOCK, "blockform", "blocks.php");
     $criteria = new CriteriaCompo(null);
     $criteria->setSort('name');
     if (!file_exists(XOOPS_ROOT_PATH . "/kernel/blockinstance.php")) {
         //Using 2.0.13.2 or lower
         include_once XOOPS_ROOT_PATH . "/class/xoopsblock.php";
         $all_blocks = XoopsBlock::getAllBlocks();
         foreach (array_keys($all_blocks) as $i) {
             $blocks[$all_blocks[$i]->getVar('bid')] = $all_blocks[$i];
         }
     } else {
         $block_handler =& xoops_gethandler('block');
         $blocks =& $block_handler->getObjects($criteria, true);
     }
     $module_handler =& xoops_gethandler('module');
     $modules =& $module_handler->getObjects(null, true);
     $block_select = new XoopsFormSelect(_NL_AM_BLOCKTYPE, 'block_id');
     foreach ($blocks as $block) {
         // Rogue module blocks are known to appear from time to time
         // So we check if the module exists.
         if (isset($modules[$block->getVar('mid')])) {
             $block_arr[$block->getVar('mid')]['modname'] = $modules[$block->getVar('mid')]->getVar('name');
             $block_arr[$block->getVar('mid')]['blocks'][$block->getVar('bid')] = " - " . $block->getVar('name');
             $modnames[$block->getVar('mid')] = $modules[$block->getVar('mid')]->getVar('name');
             $bids[] = $block->getVar('bid');
         }
     }
     array_multisort($modnames, SORT_ASC, $block_arr);
     foreach (array_keys($block_arr) as $i) {
         $block_select->addOption("-" . $i, $block_arr[$i]['modname'], true);
         $block_select->addOptionArray($block_arr[$i]['blocks']);
     }
     $form->addElement($block_select);
     $button_tray = new XoopsFormElementTray('');
     $button_tray->addElement(new XoopsFormButton('', 'submit', _SUBMIT, 'submit'));
     $form->addElement($button_tray);
     $form->addElement(new XoopsFormHidden("op", "block"));
     $form->addElement(new XoopsFormHidden("id", $newsletterid));
     if ($dispatchid > 0) {
         $form->addElement(new XoopsFormHidden("dispatchid", $dispatchid));
     }
     return $form;
 }