Доброго времени суток! Столкнулся с задачей, решить сам не могу... уже пару часов ломаю голову. Есть папка с материалами для сайта www/mysite.com/content в ней 5 файлов. Нужно сделать пункты меню для выводы этих материалов на сайте. Файлы могут добавляться по мере необходимости, потому 5 - это просто для теста. Набрал кучу примеров, а объединить их в итоге не могу... Основная страница index.php выглядит так: Код (Text): <?php include 'menu.php'; echo $content;?> Файл menu.php следуюее содержание: Код (Text): <?php $itemId = isset($_GET['itemId']) ? $_GET['itemId'] : 0; // выбранный пункт меню $menuItems = array( // все пункты меню 1 => 'главная', 2 => 'вторая', 3 => 'третяя', 4 => 'четвертая', 5 => 'пятая', ); $files = scandir('content'); ?> <nav class="main-menu"> <ul class="menu-links"> <?php echo '<ul>'; foreach($menuItems as $menuItemId => $menuItem) { echo '<li><a href="?itemId=', $menuItemId, '" ',($menuItemId == $itemId ? 'class="active"':''), // если активный совпадает с текущим, то выделить его с помощью класса CSS '>', $menuItem, '</a></li>'; } echo '</ul>'; ?> </ul> </nav> $files = scandir('content'); - выводит содержимое папки в виде массива. Как мне заставить пункты меню выводить содержимое папки?
Путем рекурсией - когда во функции по условию вызывает сама себя, пока не дойдет до конечной структуры, либо другое действие. Можно в гугле задать - php рекурсия функция директория --- Добавлено --- а почему у тебя запятые место точек прописаны возле переменных ?
Код (Text): <?php $id = $_GET['id']; $content = file_get_contents("content/$id"); ?> <nav class="main-menu"> <ul class="menu-links"> <?php $files = scandir('content'); foreach($files as $file) { if(is_file('content/' . $file)){ echo "<li><a href=\"index.php?id=$file\">$file</a></li>"; } } ?> </ul> </nav> Получилось побороть таким образом, но теперь $file получает название файла и выводит его, а мне нужно подменить его на нужное. Как это можно сделать? Еще один массив в массиве?
А откуда php знать какое, оно нужное название то? Как вариант, массив подмены PHP: $repl = array("file1.txt"=>"Мое понятное имя 1","file2.txt"=>"Мое понятное имя 2"); и потом PHP: echo "<li><a href=\"index.php?id=$file\">{$repl['$file']}</a></li>";
Немного переделал код... уже бесит ) Короче... для меню сделал отдельный массив, меню теперь идеальное так как я хотел, но! на странице index.php, где находится Код (Text): <?php include 'menu.php'; echo $content;?> -тупо отображается содержимое $content Как его скрыть, что бы отображалось только после запроса через $_GET ?
Еще вопрос: Как то можно сделать по умолчанию страницу? Потому что в моем случае страницы отображаются только после нажатие на меню, а при переходе на сайт просто пустая страница с меню
как-то можно PHP: if (isset($_GET['name'])) { echo $content; } else { echo ..... страница по умолчанию }