예제 #1
0
/**
 * Recursively builds a dynamic tree menu for seleting the categories available to
 * filter search results by.
 *
 * @param array $cats     An array of category objects from the DB.
 * @param array $selected An array of currently selected category IDs.
 * @return array An array of completed HTML_TreeMenu nodes.
 */
function elis_files_make_category_select_tree_choose($cats, $selected = array()) {
    global $CFG;
    global $repo;
    static $catlist;

    if (empty($cats)) {
        return;
    }

    if (!isset($catlist)) {
        $catlist = elis_files_make_category_tree();
    }

    $icon  = 'folder.gif';
    $eicon = 'folder-expanded.gif';
    $nodes = array();

    for ($i = 0; $i < count($cats); $i++) {
        if (in_array($cats[$i]->id, $selected)) {
            $checked = ' checked';
        } else {
            $checked = '';
        }

        $text = '<input type="checkbox" name="categories[]" value="' . $cats[$i]->id . '"' . $checked .
                ' />' . $cats[$i]->title;

        if (array_key_exists($cats[$i]->id, $catlist)) {
            $expanded = true;
        } else {
            $expanded = false;
        }

        $node = new HTML_TreeNode(array(
            'text'         => $text,
            'icon'         => $icon,
            'expandedIcon' => $eicon,
            'expanded'     => $expanded
        ));

//            if ($children = $repo->category_get_children($cats[$i]->id)) {
        if ($children = ELIS_files::category_get_children($cats[$i]->id)) {
            if ($cnodes = elis_files_make_category_select_tree_choose($children, $selected)) {
                for ($j = 0; $j < count($cnodes); $j++) {
                    $node->addItem($cnodes[$j]);
                }
            }
        }

        $nodes[] = $node;
    }

    return $nodes;
}
예제 #2
0
echo $OUTPUT->box_start();

echo '<form method="post" action="' . $CFG->wwwroot . '/repository/elisfiles/config-categories.php">';
echo '<input type="hidden" name="sesskey" value="' . $USER->sesskey . '" />';

echo '<center>';
echo '<input type="submit" name="reset" value="' . get_string('resetcategories', 'repository_elisfiles') .
     '" /><br />' . get_string('resetcategoriesdesc', 'repository_elisfiles') . '<br /><br />';

if ($DB->get_manager()->table_exists('repository_elisfiles_cats') && $categories = $repo->category_get_children(0)) {
    echo '<input type="button" value="' . get_string('selectall') . '" onclick="checkall();" />';
    echo '&nbsp;<input type="button" value="' . get_string('deselectall') . '" onclick="checknone();" /><br />';
    echo '<input type="submit" value="' . get_string('savechanges') . '" />';
    echo '</center><br />';

    if ($nodes = elis_files_make_category_select_tree_choose($categories, $catfilter)) {
        $menu  = new HTML_TreeMenu();

        for ($i = 0; $i < count($nodes); $i++) {
            $menu->addItem($nodes[$i]);
        }

        $treemenu = new HTML_TreeMenu_DHTML($menu, array(
            'images' => $CFG->wwwroot . '/repository/elisfiles/lib/HTML_TreeMenu-1.2.0/images'
        ));

        $treemenu->printMenu();
    }

    echo '<center><br />';
    echo '<input type="button" value="' . get_string('selectall') . '" onclick="checkall();" />';