Как правильно сгенерировать ссылки для пунктов меню и вывести страницы? По ходу изучения ООП начал писать небольшой сайт по видеокурсу. Со временем появились небольшие проблемы, но больше всего меня интересует как правильно вывести страницы меню. По курсу предлагался код абстрактного класса:get_header(); $this->get_sidebar(); $this->get_content(); } abstract function get_content(); } ?>
Файл индекса: get_body(); } else { echo "Страница не найдена!"; } } else { echo "Страница не найдена!"; } ?>
И сам файл, где находится меню, в нем и генерируются ссылки:
"; ?>
Ссылки сгенерированы и вроде правильно, но по курсу надо в бд в таблице меню надо добавить поле "содержимое" и скрипт будет из него выбирать его и выводить на страницу по сгенерированой ссылке. По курсу все страницы меню однотипны, но мне надо для каждой страницы разные данные и их верстка. Инклудить страницы, думаю, неправильно... Гугли много, но найти ответа на этот вопрос не мог. Есть идеи изменить код самого класса func и в соответствии с ним как-нибудь сделать вывод страницы с меню, но сомневаюсь, что получится. Вот сам код класса menu: Может через конструкцию return передать в индексный файл "$Page = new $page;"?
Да, можно внести следующие изменения в класс menu:
class menu extends func { public function get_content() { $page = $_GET['page']; $page = trim($page); $page = htmlspecialchars($page); $page = strip_tags($page); $query = "SELECT name_menu, content FROM menu WHERE href_menu = '$page'"; $result = @mysql_query($query); if(!$result) { echo "Ошибка запроса в БД!"; } $row = array(); $row = @mysql_fetch_array($result, MYSQL_ASSOC); if(!empty($row['name_menu'])) { // Возвращаем содержимое страницы return $row['content']; } else { echo "Страница не найдена!"; } } }
Затем в индексном файле вы можете использовать возвращенное содержимое страницы для вывода:
// После $Page->get_body(); в индексном файле $content = $Page->get_content(); if($content) { echo $content; } else { echo "Страница не найдена!"; }
Таким образом, вы сможете получить содержимое страницы из базы данных и вывести его на страницу. Важно убедиться, что содержимое страницы возвращается корректно и безопасно используется на странице.
Да, можно внести следующие изменения в класс menu:
class menu extends func {public function get_content() {
$page = $_GET['page'];
$page = trim($page);
$page = htmlspecialchars($page);
$page = strip_tags($page);
$query = "SELECT name_menu, content FROM menu WHERE href_menu = '$page'";
$result = @mysql_query($query);
if(!$result) {
echo "Ошибка запроса в БД!";
}
$row = array();
$row = @mysql_fetch_array($result, MYSQL_ASSOC);
if(!empty($row['name_menu'])) {
// Возвращаем содержимое страницы
return $row['content'];
} else {
echo "Страница не найдена!";
}
}
}
Затем в индексном файле вы можете использовать возвращенное содержимое страницы для вывода:
// После $Page->get_body(); в индексном файле$content = $Page->get_content();
if($content) {
echo $content;
} else {
echo "Страница не найдена!";
}
Таким образом, вы сможете получить содержимое страницы из базы данных и вывести его на страницу. Важно убедиться, что содержимое страницы возвращается корректно и безопасно используется на странице.