Include
на самом деле не следует использовать для загрузки контента, но другие файлы, содержащие функции ...
Если контент просто поступает из базы данных, почему бы просто не запросить вывод, сохранить значение в переменной и использовать print( $var )
?
Базовая CMS хранит свои статьи в базе данных с идентификатором, возможно, строкой заголовка и содержимым. Содержимое print
передается div
или некоторому другому элементу блока, действующему как контейнер. Разметка вокруг него - просто какой-то шаблон - HTML-страница с маркером для контента.
Вы добавляете контент через консоль администрирования, обычно для управления статьями, редактирования статей и публикации новых статей как минимум. Эта область должна быть защищена паролем.
Допустим, у вас есть URI /articles/1/How-Grinch-Stole-Thanksgiving
(с использованием перезаписи URL для целей SEO), ваш базовый тип шаблона может выглядеть следующим образом:
<body>
<div id="container">
<?php
$uri = substr($_SERVER['REQUEST_URI'], 1); //Gives us articles/1/How-Grinch-Stole-Thanksgiving
$components = explode('/', $uri); // $components[0] is "articles", $components[1] is 1, etc.
/* Do SQL Query here: "SELECT * FROM '".$components[0]."' WHERE 'id'=".$components[1] */
$conn = mysql_connect("localhost", "mysql_user", "mysql_password");
if (!$conn) {
echo "Unable to connect to DB: " . mysql_error();
exit;
}
if (!mysql_select_db("mydbname")) {
echo "Unable to select mydbname: " . mysql_error();
exit;
}
$sql = "SELECT * FROM '".$components[0]."' WHERE 'id'=".$components[1];
$result = mysql_query($sql);
if (!$result) {
echo "Could not successfully run query ($sql) from DB: " . mysql_error();
exit;
}
if (mysql_num_rows($result) != 1) {
echo "Improper result. Exiting";
exit;
}
$row = mysql_fetch_assoc($result);
print($row["content"]);
?>
</div>
</body>
Это чрезвычайно элементарно; Скорее всего, вам не удастся продвинуться в этом сценарии. Дело в том, что вы должны начать исследовать этот тип CMS, где индекс принимает подсказки замены из значений $_GET
, чтобы вы могли понять, как страница собирается вместе. Позже вы сможете работать над чтением в шаблонах, собирать их в страницы и заменять маркеры содержимым из базы данных или других шаблонов.