Снова PHP. Думаю, ты представляешь себе, о чем идет речь в заголовке?
Генератор новостей - удобный и полезный в хозяйстве скрипт, позволяющий публиковать на cвою пагу новости без всяких FTP клиентов - добавление news item`ов будет происходить через форму, примерно как в гостевой книге. Предупреждаю - MySQL я в своем примере не использую. А теперь - продолжим.
Итак, сам скрипт. Он будет состоять из трех частей: 1) формы, 2) скрипта, проводящего идентификацию и (если эта идентификация пройдет успешно) записывающего свеженькую новость в текстовый файл, и 3) скрипта, считывающего инфу из текстового файла и форматирующего ее в соответствии с дизайном твоего сайта. Начнем разбор полетов...
-Скрипт формы (add.php)-
Очень простой скрипт, собственно от PHP тут всего и будет, что расчет сегодняшней даты.
<HTML>
<HEAD>
<TITLE>Мегакрутой редактор новостей - этап авторизации</TITLE>
</HEAD>
<BODY>
<br><br><br>
<h2>Авторизация</h2>
<br><br>
<form action=addnew.php method=post>
Логин: <input
type=password name=login><br>
Пароль: <input type=password
name=pass><br>
<?
$date=date("d.m.y"); //устанавливаем формат даты в виде 00.00.00
echo("Дата: <input type=text name=date value=$date>"); //вставляем ее в объект INPUT формы
?>
<br><br><br>
новость:<br><br><textarea name=news rows=10 cols=60>новость тут!</textarea><br><br>
<input type=submit value=" ok ">
</form>
</BODY>
</HTML>
-конец скрипта-
Думаю, тут все ясно, и пояснений не требуется. Перейдем тогда ко второй части скрипта...
-скрипт 2 (addnew.php)-
<h2>Редактор новостей</h2>
<br><br>
<?
if( ($login=="vasya") &&
($pass=="qwerty") ) { //если введенные пароль и логин соответсвуют нашему значению, то
echo("новость добавлена! <a
href=index.php>смотреть</a>"); //выводим
сообщение что все ОК
$newsfile=fopen("text/news.txt",a); //открываем
файл для добавления инфы (режим a)
$dan="$date$news"; //устанавливаем формат инфы как "дататекст новости"
fwrite($newsfile,"$dann"); //записываем данные в открытый файл и переходим на новую строку
}
else
echo("Неправильный логин или пароль!"); //если логин неправильный - выводим обламывающую мессагу
?>
-конец скрипта-
И наконец, имхо, самая сложная часть генератора - форматирование. Тут пришлось поизвращаться :) Смотри сам:
<?
$fp=file("text/news.txt"); //очень удобный оператор file() - открывает файл и записывает всю инфу из него в массив $fp
$kolnews=count($fp); // количество новостей = числу элементов в массиве $fp
for($i=$kolnews; $i>=0; $i--) {
/*
основной геморрой - обратный цикл :) Его мы используем, так как оператор fwrite() в скрипте #2 добавляет свежие новости в конец файла, а нам нужно, чтобы более поздние записи выводились первыми.
*/
list($date,$text)=split("",$fp[$i]);
/*
берем по одному элементу из массива $fp[$i] (строке из файла) и list`уем ее: то значение, что будет до трех двоеточий, присваиваем переменной $date, то, что после - переменной $text.
*/
if(strlen($date) > 0)
/*
так как в скрипте 2 мы используем перенос на новую строку (n), то последняя строка будет пустой. Проверяем длину строки $date, если
она больше нуля - форматируем новость, как нам хочется, и печатаем ее:
*/
echo("<i>$date</i> $text<br><br>");
else
echo("Что новенького на сайте:<br><br>");
// иначе - пишем заголовок "Что новенького".
}
?>
Вот и все! ;) Сюда можно добавить кучу всяких вкусных фишек, вроде подключения архива новостей, функций, автоматически добавляющих <a target=_blank href=...>, если во вводимом тексте присутствует корректный URL, и т.д. Это только основная идея :) Если что - пишите мне или в комменты.