Beispiel #1
0
 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&amp;selvis={$selvis}&amp;selgrp={$selgrp}&amp;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>&nbsp;<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&amp;selvis={$selvis}&amp;selmod={$selmod}&amp;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&amp;selmod={$selmod}&amp;selgrp={$selgrp}&amp;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] = '&nbsp;';
     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 = "&nbsp;";
         } 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 . "&nbsp;<input type='radio' name='visible[{$i}]' value='0'{$sel0} />" . _NO . "</td><td class='{$class}' align='right'><a href='admin.php?fct=blocksadmin&amp;op=edit&amp;bid=" . $block_arr[$i]->getVar("bid") . "'>" . _EDIT . "</a>";
         if ($block_arr[$i]->getVar('block_type') != 'S') {
             echo "&nbsp;<a href='admin.php?fct=blocksadmin&amp;op=delete&amp;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();
 }
Beispiel #2
0
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&amp;selmod={$selmod}&amp;selvis={$selvis}&amp;selgrp={$selgrp}&amp;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&amp;selgen={$selgen}&amp;selvis={$selvis}&amp;selgrp={$selgrp}&amp;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> ';
    //&nbsp;<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&amp;selgen={$selgen}&amp;selvis={$selvis}&amp;selmod={$selmod}&amp;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&amp;selgen={$selgen}&amp;selmod={$selmod}&amp;selgrp={$selgrp}&amp;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 . "&nbsp;<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&amp;op=edit&amp;bid=" . $block_arr[$i]->getVar("bid") . "'>" . _EDIT . "</a>";
        echo "<br /><a href='admin.php?fct=blocksadmin&amp;op=clone&amp;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&amp;op=delete&amp;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();
}