function list_blocks() { global $xoopsUser, $xoopsConfig; include_once XOOPS_ROOT_PATH . '/class/xoopslists.php'; //OpenTable(); $selmod = isset($_GET['selmod']) ? intval($_GET['selmod']) : 0; $selvis = isset($_GET['selvis']) ? intval($_GET['selvis']) : 2; $selgrp = isset($_GET['selgrp']) ? intval($_GET['selgrp']) : XOOPS_GROUP_USERS; echo "\r\n <h4 style='text-align:left;'>" . _AM_BADMIN . "</h4>"; echo '<form action="admin.php" method="get">'; $form = "<select size=\"1\" name=\"selmod\" onchange=\"location='" . XOOPS_URL . "/modules/system/admin.php?fct=blocksadmin&selvis={$selvis}&selgrp={$selgrp}&selmod='+this.options[this.selectedIndex].value\">"; $module_handler =& xoops_gethandler('module'); $criteria = new CriteriaCompo(new Criteria('hasmain', 1)); $criteria->add(new Criteria('isactive', 1)); $module_list =& $module_handler->getList($criteria); $toponlyblock = false; $module_list[-1] = _AM_TOPPAGE; $selmod = isset($_GET['selmod']) ? intval($_GET['selmod']) : -1; ksort($module_list); foreach ($module_list as $k => $v) { $sel = ''; if ($k == $selmod) { $sel = ' selected="selected"'; } $form .= '<option value="' . $k . '"' . $sel . '>' . $v . '</option>'; } $form .= '</select> <input type="hidden" name="fct" value="blocksadmin" />'; printf(_AM_SVISIBLEIN, $form); $member_handler =& xoops_gethandler('member'); $group_list =& $member_handler->getGroupList(); $group_sel = _AM_GROUP . " <select size=\"1\" name=\"selgrp\" onchange=\"location='" . XOOPS_URL . "/modules/system/admin.php?fct=blocksadmin&selvis={$selvis}&selmod={$selmod}&selgrp='+this.options[this.selectedIndex].value\">"; $group_list[0] = '#' . _AM_UNASSIGNED; // fix for displaying blocks unassigned to any group foreach ($group_list as $k => $v) { $sel = ''; if ($k == $selgrp) { $sel = ' selected="selected"'; } $group_sel .= '<option value="' . $k . '"' . $sel . '>' . $v . '</option>'; } $group_sel .= '</select> '; echo $group_sel; echo _AM_VISIBLE . " <select size=\"1\" name=\"selvis\" onchange=\"location='" . XOOPS_URL . "/modules/system/admin.php?fct=blocksadmin&selmod={$selmod}&selgrp={$selgrp}&selvis='+this.options[this.selectedIndex].value\">"; $selvis0 = $selvis1 = $selvis2 = ""; switch ($selvis) { case 0: $selvis0 = 'selected="selected"'; break; case 1: $selvis1 = 'selected="selected"'; break; case 2: default: $selvis2 = 'selected="selected"'; break; } echo '<option value="0" ' . $selvis0 . '>' . _NO . '</option>'; echo '<option value="1" ' . $selvis1 . '>' . _YES . '</option>'; echo '<option value="2" ' . $selvis2 . '>' . _ALL . '</option>'; echo '</select> <input type="submit" value="' . _GO . '" name="selsubmit" />'; echo '</form>'; echo "<form action='admin.php' name='blockadmin' method='post'>\r\n <table width='100%' class='outer' cellpadding='4' cellspacing='1'>\r\n <tr valign='middle'><th width='20%'>" . _AM_BLKDESC . "</th><th>" . _AM_TITLE . "</th><th>" . _AM_MODULE . "</th><th align='center' nowrap='nowrap'>" . _AM_SIDE . "<br />" . _LEFT . "-" . _CENTER . "-" . _RIGHT . "</th><th align='center'>" . _AM_WEIGHT . "</th><th align='center'>" . _AM_VISIBLE . "</th><th align='right'>" . _AM_ACTION . "</th></tr>\r\n "; if ($selvis == 2) { $selvis = null; } if ($selgrp == 0) { // get blocks that are not assigned to any groups $block_arr =& XoopsBlock::getNonGroupedBlocks($selmod, $toponlyblock, $selvis, 'b.side,b.weight,b.bid'); } else { $block_arr =& XoopsBlock::getAllByGroupModule($selgrp, $selmod, $toponlyblock, $selvis, 'b.side,b.weight,b.bid'); } $block_count = count($block_arr); $class = 'even'; $module_list2 =& $module_handler->getList(); // for custom blocks $module_list2[0] = ' '; foreach (array_keys($block_arr) as $i) { $sel0 = $sel1 = $ssel0 = $ssel1 = $ssel2 = $ssel3 = $ssel4 = ""; if ($block_arr[$i]->getVar("visible") == 1) { $sel1 = " checked='checked'"; } else { $sel0 = " checked='checked'"; } if ($block_arr[$i]->getVar("side") == XOOPS_SIDEBLOCK_LEFT) { $ssel0 = " checked='checked'"; } elseif ($block_arr[$i]->getVar("side") == XOOPS_SIDEBLOCK_RIGHT) { $ssel1 = " checked='checked'"; } elseif ($block_arr[$i]->getVar("side") == XOOPS_CENTERBLOCK_LEFT) { $ssel2 = " checked='checked'"; } elseif ($block_arr[$i]->getVar("side") == XOOPS_CENTERBLOCK_RIGHT) { $ssel4 = " checked='checked'"; } elseif ($block_arr[$i]->getVar("side") == XOOPS_CENTERBLOCK_CENTER) { $ssel3 = " checked='checked'"; } if ($block_arr[$i]->getVar("title") == "") { $title = " "; } else { $title = $block_arr[$i]->getVar("title"); } $name = $block_arr[$i]->getVar("name"); echo "<tr valign='top'><td class='{$class}'>" . $name . "</td><td class='{$class}'>" . $title . "</td><td class='{$class}'>" . $module_list2[$block_arr[$i]->getVar('mid')] . "</td><td class='{$class}' align='center' nowrap='nowrap'><input type='radio' name='side[{$i}]' value='" . XOOPS_SIDEBLOCK_LEFT . "'{$ssel0} />-<input type='radio' name='side[{$i}]' value='" . XOOPS_CENTERBLOCK_LEFT . "'{$ssel2} /><input type='radio' name='side[{$i}]' value='" . XOOPS_CENTERBLOCK_CENTER . "'{$ssel3} /><input type='radio' name='side[{$i}]' value='" . XOOPS_CENTERBLOCK_RIGHT . "'{$ssel4} />-<input type='radio' name='side[{$i}]' value='" . XOOPS_SIDEBLOCK_RIGHT . "'{$ssel1} /></td><td class='{$class}' align='center'><input type='text' name='weight[{$i}]' value='" . $block_arr[$i]->getVar("weight") . "' size='5' maxlength='5' /></td><td class='{$class}' align='center' nowrap='nowrap'><input type='radio' name='visible[{$i}]' value='1'{$sel1} />" . _YES . " <input type='radio' name='visible[{$i}]' value='0'{$sel0} />" . _NO . "</td><td class='{$class}' align='right'><a href='admin.php?fct=blocksadmin&op=edit&bid=" . $block_arr[$i]->getVar("bid") . "'>" . _EDIT . "</a>"; if ($block_arr[$i]->getVar('block_type') != 'S') { echo " <a href='admin.php?fct=blocksadmin&op=delete&bid=" . $block_arr[$i]->getVar("bid") . "'>" . _DELETE . "</a>"; } echo "\r\n <input type='hidden' name='oldside[{$i}]' value='" . $block_arr[$i]->getVar('side') . "' />\r\n <input type='hidden' name='oldweight[{$i}]' value='" . $block_arr[$i]->getVar('weight') . "' />\r\n <input type='hidden' name='oldvisible[{$i}]' value='" . $block_arr[$i]->getVar('visible') . "' />\r\n <input type='hidden' name='bid[{$i}]' value='" . $i . "' />\r\n </td></tr>\r\n "; $class = $class == 'even' ? 'odd' : 'even'; } echo "<tr><td class='foot' align='center' colspan='7'>\r\n <input type='hidden' name='fct' value='blocksadmin' />\r\n <input type='hidden' name='op' value='order' />\r\n <input type='submit' name='submit' value='" . _SUBMIT . "' />\r\n </td></tr></table>\r\n </form>\r\n <br /><br />"; $block = array('form_title' => _AM_ADDBLOCK, 'side' => 0, 'weight' => 0, 'visible' => 1, 'title' => '', 'content' => '', 'modules' => array(-1), 'is_custom' => true, 'ctype' => 'H', 'cachetime' => 0, 'op' => 'save', 'edit_form' => false); include XOOPS_ROOT_PATH . '/modules/system/admin/blocksadmin/blockform.php'; $form->display(); }
function list_blocks() { global $xoopsUser, $xoopsConfig, $xoopsDB; include_once XOOPS_ROOT_PATH . '/class/xoopslists.php'; $module_handler =& xoops_gethandler('module'); $criteria = new CriteriaCompo(new Criteria('hasmain', 1)); $criteria->add(new Criteria('isactive', 1)); // Modules for blocks to be visible in $display_list = $module_handler->getList($criteria); unset($criteria); // Modules generating the blocks $generator_list = $module_handler->getList(); // for custom blocks $generator_list[0] = _AM_CUSTOM; $requests = array("selmod" => -1, "selgen" => 1, "selvis" => -1, "selgrp" => XOOPS_GROUP_USERS); foreach ($requests as $req => $def) { if (isset($_GET[$req])) { ${$req} = intval($_GET[$req]); } elseif (isset($_COOKIE[$req])) { ${$req} = intval($_COOKIE[$req]); } else { ${$req} = $def; } } echo "<h4>" . _AM_BADMIN . "</h4>"; // For selection of generated by echo '<form action="admin.php" method="get">'; $form = "<select size=\"1\" name=\"selgen\" onchange=\"location='" . XOOPS_URL . "/modules/system/admin.php?fct=blocksadmin&selmod={$selmod}&selvis={$selvis}&selgrp={$selgrp}&selgen='+this.options[this.selectedIndex].value\">"; $generator_list[-1] = _AM_TYPES; ksort($generator_list); foreach ($generator_list as $k => $v) { $form .= '<option value="' . $k . '"' . ($k == $selgen ? ' selected="selected"' : '') . '>' . $v . '</option>'; } $form .= '</select> '; printf(_AM_GENERATOR, $form); // For selection of visible in $form = "<select size=\"1\" name=\"selmod\" onchange=\"location='" . XOOPS_URL . "/modules/system/admin.php?fct=blocksadmin&selgen={$selgen}&selvis={$selvis}&selgrp={$selgrp}&selmod='+this.options[this.selectedIndex].value\">"; //$toponlyblock = false; ksort($display_list); $display_list_spec[-2] = _AM_TYPES; $display_list_spec[0] = _AM_ALLPAGES; $display_list_spec[-1] = _AM_TOPPAGE; $display_list = $display_list_spec + $display_list; foreach ($display_list as $k => $v) { $form .= '<option value="' . $k . '"' . ($k == $selmod ? ' selected="selected"' : '') . '>' . $v . '</option>'; } $form .= '</select> '; // <input type="hidden" name="fct" value="blocksadmin" />'; printf(_AM_SVISIBLEIN, $form); unset($display_list[-2]); // For selection of group access $member_handler =& xoops_gethandler('member'); $group_list = $member_handler->getGroupList(); $group_sel = _AM_GROUP . " <select size=\"1\" name=\"selgrp\" onchange=\"location='" . XOOPS_URL . "/modules/system/admin.php?fct=blocksadmin&selgen={$selgen}&selvis={$selvis}&selmod={$selmod}&selgrp='+this.options[this.selectedIndex].value\">"; $group_list[0] = _AM_UNASSIGNED; $group_list[-1] = _AM_TYPES; foreach ($group_list as $k => $v) { $group_sel .= '<option value="' . $k . '"' . ($k == $selgrp ? ' selected="selected"' : '') . '>' . $v . '</option>'; } $group_sel .= '</select> '; echo $group_sel; // For selection of visiblility echo _AM_VISIBLE . " <select size=\"1\" name=\"selvis\" onchange=\"location='" . XOOPS_URL . "/modules/system/admin.php?fct=blocksadmin&selgen={$selgen}&selmod={$selmod}&selgrp={$selgrp}&selvis='+this.options[this.selectedIndex].value\">"; echo '<option value="0"' . ($selvis == 0 ? ' selected="selected"' : '') . '>' . _NO . '</option>'; echo '<option value="1"' . ($selvis == 1 ? ' selected="selected"' : '') . '>' . _YES . '</option>'; echo '<option value="-1"' . ($selvis == -1 ? ' selected="selected"' : '') . '>' . _AM_TYPES . '</option>'; echo '</select> <input type="hidden" name="fct" value="blocksadmin" /><input type="submit" value="' . _GO . '" name="selsubmit" />'; echo '</form><br />'; echo "<form action='admin.php' name='blockadmin' method='post'>\r\n <table width='100%' class='outer' cellpadding='4' cellspacing='1'>\r\n <tr valign='middle' align='center'>\r\n <th width='15%'>" . _AM_TITLE . "</th>\r\n <th width='20%'>" . _AM_BLKDESC . "</th>\r\n <th width='10%'>" . _AM_MODULE . "</th>\r\n <th width='10%' nowrap='nowrap'>" . _AM_SIDE . "<br />" . _LEFT . "-" . _CENTER . "-" . _RIGHT . "</th>\r\n <th width='10%'>" . _AM_VISIBLEIN . "</th>\r\n <th width='10%'>" . _AM_BCACHETIME . "</th>\r\n <th width='10%'>" . _AM_VISIBLE . "</th>\r\n <th width='10%'>" . _AM_WEIGHT . "</th>\r\n <th>" . _AM_ACTION . "</th>\r\n </tr>\r\n "; if ($selvis == -1) { //$selvis = null; } $order_block = (isset($selvis) ? "" : "b.visible DESC, ") . "b.side,b.weight,b.bid"; $vis_block = $selvis == -1 ? null : $selvis; $mod_block = $selmod == -2 ? null : $selmod; if ($selgrp == 0) { // get blocks that are not assigned to any groups $block_arr = XoopsBlock::getNonGroupedBlocks($mod_block, $toponlyblock = false, $vis_block, $order_block); } else { $grp_block = $selgrp == -1 ? null : $selgrp; $block_arr = XoopsBlock::getAllByGroupModule($grp_block, $mod_block, $toponlyblock = false, $vis_block, $order_block); } if ($selgen >= 0) { foreach (array_keys($block_arr) as $bid) { if ($block_arr[$bid]->getVar("mid") != $selgen) { unset($block_arr[$bid]); } } } //xoops_result(array_keys($block_arr)); $block_count = count($block_arr); $class = 'even'; $block_mod = array(); if ($block_count) { $sql = 'SELECT block_id, module_id FROM ' . $xoopsDB->prefix('block_module_link') . ' WHERE block_id IN (' . implode(', ', array_keys($block_arr)) . ')'; $result = $xoopsDB->query($sql); while ($row = $xoopsDB->fetchArray($result)) { $block_mod[$row['block_id']][] = $row['module_id']; } } $bcachetime = array('0' => _NOCACHE, '30' => sprintf(_SECONDS, 30), '60' => _MINUTE, '300' => sprintf(_MINUTES, 5), '1800' => sprintf(_MINUTES, 30), '3600' => _HOUR, '18000' => sprintf(_HOURS, 5), '86400' => _DAY, '259200' => sprintf(_DAYS, 3), '604800' => _WEEK, '2592000' => _MONTH); foreach (array_keys($block_arr) as $i) { $module_options = ''; foreach ($display_list as $key => $mod) { if (!empty($block_mod[$i]) && in_array($key, $block_mod[$i])) { $module_options .= "<option value='{$key}' selected='selected'>{$mod}</a>"; } else { $module_options .= "<option value='{$key}'>{$mod}</a>"; } } $cachetime_options = ''; foreach ($bcachetime as $key => $cachetime) { if ($key == $block_arr[$i]->getVar('bcachetime')) { $cachetime_options .= "<option value='{$key}' selected='selected'>{$cachetime}</option>"; } else { $cachetime_options .= "<option value='{$key}'>{$cachetime}</option>"; } } $sel0 = $sel1 = $ssel0 = $ssel1 = $ssel2 = $ssel3 = $ssel4 = $ssel5 = $ssel6 = $ssel7 = ""; if ($block_arr[$i]->getVar("visible") == 1) { $sel1 = " checked='checked'"; } else { $sel0 = " checked='checked'"; } if ($block_arr[$i]->getVar("side") == XOOPS_SIDEBLOCK_LEFT) { $ssel0 = " checked='checked'"; } elseif ($block_arr[$i]->getVar("side") == XOOPS_SIDEBLOCK_RIGHT) { $ssel1 = " checked='checked'"; } elseif ($block_arr[$i]->getVar("side") == XOOPS_CENTERBLOCK_LEFT) { $ssel2 = " checked='checked'"; } elseif ($block_arr[$i]->getVar("side") == XOOPS_CENTERBLOCK_RIGHT) { $ssel4 = " checked='checked'"; } elseif ($block_arr[$i]->getVar("side") == XOOPS_CENTERBLOCK_CENTER) { $ssel3 = " checked='checked'"; } elseif ($block_arr[$i]->getVar("side") == XOOPS_CENTERBLOCK_BOTTOMLEFT) { $ssel5 = " checked='checked'"; } elseif ($block_arr[$i]->getVar("side") == XOOPS_CENTERBLOCK_BOTTOMRIGHT) { $ssel6 = " checked='checked'"; } elseif ($block_arr[$i]->getVar("side") == XOOPS_CENTERBLOCK_BOTTOM) { $ssel7 = " checked='checked'"; } $title = $block_arr[$i]->getVar("title"); $name = $block_arr[$i]->getVar("name"); echo "<tr valign='top'>\r\n <td class='{$class}'><input type='text' name=title[{$i}] value='" . $title . "' size='30' /></td>\r\n <td class='{$class}'>" . $name . "</td>\r\n <td class='{$class}'>" . $generator_list[$block_arr[$i]->getVar('mid')] . "</td>\r\n <td class='{$class}' align='center' nowrap='nowrap'>\r\n <div align='center' >\r\n <input type='radio' name='side[{$i}]' value='" . XOOPS_CENTERBLOCK_LEFT . "'{$ssel2} />\r\n <input type='radio' name='side[{$i}]' value='" . XOOPS_CENTERBLOCK_CENTER . "'{$ssel3} />\r\n <input type='radio' name='side[{$i}]' value='" . XOOPS_CENTERBLOCK_RIGHT . "'{$ssel4} />\r\n </div>\r\n <div>\r\n <span style='float:right'><input type='radio' name='side[{$i}]' value='" . XOOPS_SIDEBLOCK_RIGHT . "'{$ssel1} /></span>\r\n <div align='left'><input type='radio' name='side[{$i}]' value='" . XOOPS_SIDEBLOCK_LEFT . "'{$ssel0} /></div>\r\n </div>\r\n <div align='center'>\r\n <input type='radio' name='side[{$i}]' value='" . XOOPS_CENTERBLOCK_BOTTOMLEFT . "'{$ssel5} />\r\n <input type='radio' name='side[{$i}]' value='" . XOOPS_CENTERBLOCK_BOTTOM . "'{$ssel7} />\r\n <input type='radio' name='side[{$i}]' value='" . XOOPS_CENTERBLOCK_BOTTOMRIGHT . "'{$ssel6} />\r\n </div>\r\n </td>\r\n <td class='{$class}' align='center'>\r\n <select name='bmodule[{$i}][]' size='5' multiple='multiple'>\r\n {$module_options}\r\n </select>\r\n </td>\r\n <td class='{$class}' align='center'>\r\n <select name='bcachetime[{$i}]' size='1'>\r\n {$cachetime_options}\r\n </select>\r\n </td>\r\n <td class='{$class}' align='center' nowrap><input type='radio' name='visible[{$i}]' value='1'{$sel1}>" . _YES . " <input type='radio' name='visible[{$i}]' value='0'{$sel0}>" . _NO . "</td>\r\n <td class='{$class}' align='center'><input type='text' name='weight[{$i}]' value='" . $block_arr[$i]->getVar("weight") . "' size='5' maxlength='5' /></td>\r\n <td class='{$class}' align='right'><a href='admin.php?fct=blocksadmin&op=edit&bid=" . $block_arr[$i]->getVar("bid") . "'>" . _EDIT . "</a>"; echo "<br /><a href='admin.php?fct=blocksadmin&op=clone&bid=" . $block_arr[$i]->getVar("bid") . "'>" . _AM_CLONE . "</a>"; if ($block_arr[$i]->getVar('block_type') != 'S') { echo "<br /><a href='admin.php?fct=blocksadmin&op=delete&bid=" . $block_arr[$i]->getVar("bid") . "'>" . _DELETE . "</a>"; } echo "\r\n <input type='hidden' name='oldside[{$i}]' value='" . $block_arr[$i]->getVar('side') . "' />\r\n <input type='hidden' name='oldweight[{$i}]' value='" . $block_arr[$i]->getVar('weight') . "' />\r\n <input type='hidden' name='oldvisible[{$i}]' value='" . $block_arr[$i]->getVar('visible') . "' />\r\n <input type='hidden' name='oldbmodule[{$i}]' value='" . @implode(',', $block_mod[$i]) . "'/>\r\n <input type='hidden' name='oldtitle[{$i}]' value='" . $block_arr[$i]->getVar('title') . "'/>\r\n <input type='hidden' name='oldbcachetime[{$i}]' value='" . $block_arr[$i]->getVar('bcachetime') . "'/>\r\n <input type='hidden' name='bid[{$i}]' value='" . $i . "' />\r\n </td></tr>\r\n "; $class = $class == 'even' ? 'odd' : 'even'; } echo "<tr><td class='foot' align='center' colspan='9'>\r\n <input type='hidden' name='fct' value='blocksadmin' />\r\n <input type='hidden' name='op' value='order' />\r\n " . $GLOBALS['xoopsSecurity']->getTokenHTML() . "\r\n <input type='submit' name='submit' value='" . _SUBMIT . "' />\r\n </td></tr></table>\r\n </form>\r\n <br /><br />"; $block = array('form_title' => _AM_ADDBLOCK, 'side' => 0, 'weight' => 0, 'visible' => 1, 'title' => '', 'content' => '', 'modules' => array(-1), 'is_custom' => true, 'ctype' => 'H', 'cachetime' => 0, 'op' => 'save', 'edit_form' => false, 'groups' => array(XOOPS_GROUP_USERS, XOOPS_GROUP_ANONYMOUS)); include XOOPS_ROOT_PATH . '/modules/system/admin/blocksadmin/blockform.php'; $form->display(); }