Exemple #1
0
/**
 * Get folder selection options for widgets
 *
 * @param array  $folder       the folder to create for
 * @param string $internalname the name of the input field
 * @param array  $selected     the current selected values
 *
 * @return string
 */
function file_tools_build_widget_options($folder, $internalname = "", $selected = [])
{
    $result = '';
    if (is_array($folder) && !array_key_exists('children', $folder)) {
        foreach ($folder as $folder_item) {
            $content = file_tools_build_widget_options($folder_item, $internalname, $selected);
            $result .= elgg_format_element('ul', [], $content);
        }
    } else {
        $folder_item = $folder['folder'];
        $content = elgg_view('input/checkbox', ['default' => false, 'name' => $internalname, 'label' => $folder_item->title, 'label_tag' => 'span', 'value' => $folder_item->getGUID(), 'checked' => in_array($folder_item->getGUID(), $selected)]);
        if (!empty($folder['children'])) {
            $content .= file_tools_build_widget_options($folder['children'], $internalname, $selected);
        }
        $result .= elgg_format_element('li', [], $content);
    }
    return $result;
}
Exemple #2
0
/**
 * Get folder selection options for widgets
 *
 * @param array  $folder       the folder to create for
 * @param string $internalname the name of the input field
 * @param array  $selected     the current selected values
 *
 * @return string
 */
function file_tools_build_widget_options($folder, $internalname = "", $selected = array())
{
    $result = "";
    if (is_array($folder) && !array_key_exists("children", $folder)) {
        foreach ($folder as $folder_item) {
            $result .= "<ul>";
            $result .= file_tools_build_widget_options($folder_item, $internalname, $selected);
            $result .= "</ul>";
        }
    } else {
        $folder_item = $folder["folder"];
        $result .= "<li>";
        if (in_array($folder_item->getGUID(), $selected)) {
            $result .= "<input type='checkbox' name='" . $internalname . "' value='" . $folder_item->getGUID() . "' checked='checked'> " . $folder_item->title;
        } else {
            $result .= "<input type='checkbox' name='" . $internalname . "' value='" . $folder_item->getGUID() . "'> " . $folder_item->title;
        }
        if (!empty($folder["children"])) {
            $result .= file_tools_build_widget_options($folder["children"], $internalname, $selected);
        }
        $result .= "</li>";
    }
    return $result;
}
Exemple #3
0
<?php

$widget = elgg_extract("entity", $vars);
if ($folders = file_tools_get_folders($widget->owner_guid)) {
    $selected_folders = $widget->folder_guids;
    if (!empty($selected_folders) && !is_array($selected_folders)) {
        $selected_folders = array($selected_folders);
    } elseif (empty($selected_folders)) {
        $selected_folders = array();
    }
    // select folder(s) to display
    echo elgg_echo("widgets:file_tree:edit:select");
    echo "<div>";
    echo elgg_view("input/hidden", array("name" => "params[folder_guids][]", "value" => ""));
    // needed to be able to empty the list
    echo file_tools_build_widget_options($folders, "params[folder_guids][]", $selected_folders);
    echo "</div>";
    // display folder or folder content
    $checkbox_options = array("name" => "params[show_content]", "value" => "1");
    if (!empty($widget->show_content)) {
        $checkbox_options["checked"] = "checked";
    }
    echo "<div>";
    echo elgg_view("input/checkbox", $checkbox_options);
    echo elgg_echo("widgets:file_tree:edit:show_content");
    echo "</div>";
}