|
|
|
| Доброго всем!
Есть мысли сделать CMS, похожую на описанну в книге PHP5 - практика создания web сайтов.
Но я хочу чтобы страница
не генерировалась на лету в браузере, а сохранялась в HTML-файл на сервере.
Можно ли это сделать средствами PHP?
Буду признателен за рекомендации к действию. За что зацепиться? | |
|
|
|
|
|
|
|
для: Boris
(19.04.2006 в 07:24)
| | Интересный вопрос, присоединяюсь! Интересно, в какой момент будет создаваться эта html-страница? | |
|
|
|
|
|
|
|
для: Радосвет
(19.04.2006 в 07:37)
| | После того, как я добавлю структурные блоки страниц (параграф, картинка, ссылка, заголовок - ну как в вышеописанной книге), нажимаю кнопку "создать страницу" и создается html - файл.
Для повторного редактирования этой страницы, вызывается редактор (в нем изменятся/добавляются составные блоки страницы (как при создании), порядок их следования и т.д. и по завершении - перезаписывается HTML - файл этой страницы. | |
|
|
|
|
|
|
|
для: Boris
(19.04.2006 в 07:50)
| | И ещё нужна функция, чтобы генерировала автоматически ссылки и вместо articles/index.php?id_article=1 показывала файл из папки articles/(id раздела или его имя латинскими буквами)/1.html , либо так: articles/(id раздела)/(имя раздела латинскими буквами)001.html
Вот так в идеале я хотел бы получить... Но пока кроме mod_rewrite ничего в голову не приходит... | |
|
|
|
|
|
|
|
для: Радосвет
(19.04.2006 в 09:01)
| | Зачем?
Просто в БД будет содержаться название файлов HTML и соответствующие им пункты меню (Товары - goods.html, Главная - index.html, Контакты - kontakt.html)
А скрипт отображения меню будет инклюдится (простите за сленг) в каждую HTML - страницу. | |
|
|
|
|
|
|
|
для: Boris
(19.04.2006 в 09:05)
| | А эти названия в базу ручками заносить? Или через форму добавления раздела (вставить дополнительное поле name, в котором прописывать эти goods.html и index.html ?
Ну и опять же, хранятся в базе эти названия, а CMS динамически генерирует список именно в виде
echo "<li><font id=idlinks><a href=http://".$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']."?id_article=".$articles['id_article'].">".$articles['name']."</a></font><br>".
|
что выдаст список с адресами ./article/index.php?id_article=(*)
Свою проблему я изложил в теме по ссылке ниже:
http://softtime.ru/forum/read.php?id_forum=1&id_theme=16162&page=1 | |
|
|
|
|
|
|
|
для: Радосвет
(19.04.2006 в 09:23)
| | Ну почти ручками.
алгоритм создания новой страницы на сайте:
1). вводим имя будущего файла
2). вводим соответствующее название страницы для отображения в меню и выбираем страницу - родитель( например для станицы Пылесосы, родителем будет страница Товары, т.е. будет многоуровневое меню)
3). непосредственно создание страницы из заготовок, как в книге
4). сохранение в БД этих кусочков, генерирование и запись HTML - файла на сервер | |
|
|
|
|
|
|
|
для: Boris
(19.04.2006 в 09:43)
| | Здравствуйте,
Вот вроде то что Вам нужно
<?php
$filename = "$pagename.html"; //Имя файла
if (!file_exists($filename)) {
touch($filename);
chmod($filename,0666);// Устанавливаем CHMOD на страницу
}
//Дизайн страници которую создаёш
$string = "<HTML>
<title>$pagename-$textpage</title>
$pagename-$textpage
</body>
</HTML>";
$file = fopen("$filename","w");
fputs($file,$string);
fclose($file);
}
?>
<form method="POST" action="code.php">
Имя страници:<p><input type="text" name="pagename" size="20"> </p>
Текст внутри страници: <p><textarea method="POST" name="textpage" rows="15" cols="80"></textarea> </p>
<p><input type="submit" value="Саздать"></p>
|
Вот собствено и всё.
Может также сделать чтоб страници создавались в нужном каталоге, для этого надо строчку
$filename = "$pagename.html"; //Имя файла
|
изменить на
$filename = "catalog/$pagename.html"; //Имя файла
|
| |
|
|
|
|
|
|
|
для: Gnusmas
(19.04.2006 в 15:22)
| | Спасибо за отклик!
Насколько я понял, этот скрипт создает Html - файл из того, что я ввожу в поле формы...
А как быть когда имеется обработчик БД, который формирует html страницу (со своей логикой и запросами к MySQL), а результат его деятельности нужно сохранить в файл? | |
|
|
|
|
|
|
|
для: boris
(19.04.2006 в 15:56)
| | На самом деле, технология довольно простая: проверяем дату последнего обновоения страницы, проверяем наличие сгенерированного файла. Если есть более свежие данные - генерируем страницу и сохраняем ее, если нет - берем сгенерированную страницу и просто отдаем ее пользователю. | |
|
|
|
|
|
|
|
для: Gnusmas
(19.04.2006 в 15:22)
| | Что-то не работает та форма у меня...
И где текст обработчика формы? здесь указан файл code.php ... | |
|
|
|
|
|
|
|
для: Радосвет
(19.04.2006 в 17:38)
| | Я ее не пробовал (взял у друга комп без PHP и прочего).
Насколько я понял, обработчик выше, т.е. все в одном файле - вызывает сам себя, а code.php надо удалить.
Это пример, идея. | |
|
|
|