function Find_Files($Directory, $Recursive = true, $Recurred = false) { global $MDR; $Files = array(); foreach (glob($Directory . '/*.md') as $File) { if (strpos($File, '/_') === false) { $File = substr($File, 0, -3); if ($Recurred) { $URL = str_replace($Directory, '', $File); } else { $URL = str_replace($MDR['Root'], '', $File); } require_once $MDR['Core'] . '/function.url_to_title.php'; $Files[$URL] = url_to_title(str_replace($Directory, '', $File)); } } // FOREACHDIRECTORY // Search in ALL sub-directories. foreach (glob($Directory . '/*', GLOB_ONLYDIR) as $Sub) { // This is a recursive function. // Usually, THIS IS VERY BAD. // For searching recursively however, // it does make some sense. if (substr($Sub, -7) != '/assets' && strpos($Sub, '/_') === false) { if ($Recursive) { $Sub_Files = Find_Files($Sub, $Recursive, true); } else { $Sub_Files = array('__NON_RECURSIVE__' => '…'); } $Sub = str_replace($MDR['Root'], '', $Sub); $Files[$Sub] = $Sub_Files; } } // FOREACHDIRECTORY return $Files; }
if (is_readable($Request['Directory']) || is_readable($Request['Markdown'])) { if (is_dir($Request['Directory'])) { // List pages // Header require_once $MDR['Core'] . '/function.url_to_title.php'; $page['title'] = url_to_title(basename($Request['Directory'])); include $Templates['Header']; echo '<div class="row docs-index">'; require_once $MDR['Core'] . '/function.url_to_title.php'; $Title = url_to_title($Request['Trimmed']); if (!empty($Title)) { echo '<h2>' . $Title . '</h2>'; } // Find Suitable Files require_once $MDR['Core'] . '/function.find_files.php'; $Files = Find_Files($Request['Directory']); ksort($Files); require_once $MDR['Core'] . '/function.title_files.php'; $Files = Title_Files($Files); // List suitable files, or error accordingly. if (empty($Files)) { // Don't 404, because the directory does exist. echo '<h3>' . $Lang['en']['NO_FILES_IN_DIRECTORY'] . '</h3>'; } else { require_once $MDR['Core'] . '/function.list_files.php'; echo List_Files($Files); } // Footer echo '</div>'; include $Templates['Footer']; } else {