Нищо няма да питам само продължавам бележките си по вграждане на dyntree в GetSimple CMS.
Прочетох малко от документацията и реших да ползвам JSON/AJAX варианта за работа на контролата, а не с чист html чрез <ul> <li>. Може би основната причина е че искам да ползвам LazyLoad защото файловете в дървото ще са над 3500.
Няма да ползвам DB, а xml файл за зареждане на информацията за инициализиране/разширяване на дървото.
Първата стъпка е генерирането на xml файла:
GeSHi (PHP):
<?php
function BuildTree($it, &$dom_ref, &$root_node_ref)
{
foreach ($it as $file)
{
$key += 1;
$node = $dom_ref->createElement("item");
$node->setAttribute('title', $file->getFilename());
$node->setAttribute('key', $key);
if ($it->hasChildren())
{
BuildTree($it->getChildren(), $dom_ref, $node);
}
$root_node_ref->appendChild($node);
}
};
$dir = "/storage/ConvertedVideos";
$key = 0;
$dom = new DomDocument();
$dom->formatOutput = true;
$root = $dom->createElement("root");
$root->setAttribute('title', basename($dir));
$root->setAttribute('path', $dir);
$dom->appendChild($root);
$it = new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS);
BuildTree($it, $dom, $root);
header("Content-type: text/xml");
?>