Hi all!
I cannot make FileExplorer to show files and folders in the root folder. Everything is OK for child folders.
I have custom
Any help will be appreciated.
I cannot make FileExplorer to show files and folders in the root folder. Everything is OK for child folders.
I have custom
FileBrowserContentProvider:
public
override
DirectoryItem ResolveRootDirectoryAsTree(
string
path)
{
Assert.ArgumentNotNull(path,
"path"
);
if
(path.Length == 0)
{
path =
"/media library/"
;
}
Item item = GetItem(path);
if
(item ==
null
)
{
return
null
;
}
PathPermissions permissions = GetPermissions(item);
DirectoryItem result =
new
DirectoryItem(item.DisplayName, GetParentPath(item),
string
.Empty,
string
.Empty, permissions, GetChildFiles(item), GetChildDirectories(item));
return
result;
}
static
DirectoryItem[] GetChildDirectories(Item item)
{
Assert.ArgumentNotNull(item,
"item"
);
List<DirectoryItem> result =
new
List<DirectoryItem>();
foreach
(Item child
in
item.Children)
{
if
(child.TemplateID != TemplateIDs.MediaFolder)
{
continue
;
}
PathPermissions permissions = GetPermissions(child);
DirectoryItem directoryItem =
new
DirectoryItem(child.Name,
string
.Empty, child.Paths.Path,
string
.Empty, permissions,
null
,
null
);
result.Add(directoryItem);
}
return
result.ToArray();
}
public
override
DirectoryItem ResolveDirectory(
string
path)
{
Assert.ArgumentNotNull(path,
"path"
);
Item item = GetItem(path);
if
(item ==
null
)
{
return
null
;
}
PathPermissions permissions = GetPermissions(item);
return
new
DirectoryItem(item.DisplayName,
string
.Empty, item.Paths.Path,
string
.Empty, permissions, GetChildFiles(item),
null
);
}
static
FileItem[] GetChildFiles(Item item)
{
Assert.ArgumentNotNull(item,
"item"
);
List<FileItem> result =
new
List<FileItem>();
foreach
(Item child
in
item.Children)
{
if
(child.TemplateID == TemplateIDs.MediaFolder)
{
continue
;
}
PathPermissions permissions = GetPermissions(child);
MediaItem mediaItem = child;
MediaUrlOptions options =
new
MediaUrlOptions();
options.UseItemPath =
false
;
string
url = MediaManager.GetMediaUrl(child, options);
FileItem directoryItem =
new
FileItem(child.Name +
"."
+ mediaItem.Extension, mediaItem.Extension, mediaItem.Size,
string
.Empty, url,
string
.Empty, permissions);
result.Add(directoryItem);
}
return
result.ToArray();
}