API16

API16:JFolder/listFolderTree

From Joomla! Documentation

Revision as of 22:47, 22 March 2010 by Doxiki (talk | contribs) (New page: ===Description=== Lists folder in format suitable for tree display. <span class="editsection" style="font-size:76%;"> <nowiki>[</nowiki>[[Description:JFolder/listFolderTree|Edit Descr...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Description

Lists folder in format suitable for tree display.

[Edit Descripton]

Template:Description:JFolder/listFolderTree

Syntax

listFolderTree($path, $filter, $maxLevel=3, $level=0, $parent=0)
Parameter Name Default Value Description
$path The path of the folder to read.
$filter A filter for folder names.
$maxLevel 3 The maximum number of levels to recursively read, defaults to three.
$level 0 The current level, optional.
$parent 0 Unique identifier of the parent folder, if any.

Returns

array Folders in the given folder.

Defined in

libraries/joomla/filesystem/folder.php

Importing

jimport( 'joomla.filesystem.folder' );

Source Body

function listFolderTree($path, $filter, $maxLevel = 3, $level = 0, $parent = 0)
{
        $dirs = array ();
        if ($level == 0) {
                $GLOBALS['_JFolder_folder_tree_index'] = 0;
        }
        if ($level < $maxLevel) {
                $folders = JFolder::folders($path, $filter);
                // first path, index foldernames
                foreach ($folders as $name) {
                        $id = ++$GLOBALS['_JFolder_folder_tree_index'];
                        $fullName = JPath::clean($path . DS . $name);
                        $dirs[] = array(
                                'id' => $id,
                                'parent' => $parent,
                                'name' => $name,
                                'fullname' => $fullName,
                                'relname' => str_replace(JPATH_ROOT, '', $fullName)
                        );
                        $dirs2 = JFolder::listFolderTree($fullName, $filter, $maxLevel, $level + 1, $id);
                        $dirs = array_merge($dirs, $dirs2);
                }
        }
        return $dirs;
}

[Edit See Also] Template:SeeAlso:JFolder/listFolderTree

Examples

<CodeExamplesForm />