-=:
Тех. поддержка =-
|
-=: Warning :=- |
©
Copyright Алекс aka TrigGer &
x-graphic studio © Все права защищены. |
![]() |
Интернет раскрутка: с чего начинать?
Советы
по созданию и раскрутке сайта
Хитрости
оформления HTML страниц - правильный выбор цвета
Для
чего нужны формы
Как установить Windows по телефону
Мой
диалог с Windows
Мужчина-прграммист
(краткое приложение по использованию
Диалог
у монитора
Динамическое определение разрешения монитора
Такие
разные ссылки
Стильные
курсоры
Оптимизируем
таблицы
-= Пишем новости =-
Автор:
Алекс aka TrigGer
Источник: kovrik.hut.ru
Я, наверное, вас смутил названием статьи. Я имел в виду совсем другое. А
именно то, что мы будем писать скрипт, который будет выводить у нас новости
с функцией администрирования: удаление, добавление, редактирования новостей
и смены параметров самих новостей. Итак, приступим.
Первым делом хочу сказать, что новости будут сделаны на шаблонах html файлов.
Поверьте, это очень удобно, так как не надо будет переписывать весь скрипт,
если вы захотели сменить дизайн, а достаточно будет поправить шаблоны и
все. Писать мы будем на PHP, так как этот язык более легок для понимания,
чем Perl.
Едем дальше. Новости у нас будут состоять из следующих файлов:
Папка templates - в которой у нас будут храниться шаблоны наших новостей.
.htaccess - это так называемая затычка, чтобы другие пользователи
не скачивали себе файлы, которые им не нужны. Это также способ защитить
наши новости от взлома хакеров, так как придется ломать уже не сам скрипт,
а сервер, а это уже значительнее труднее, чем сломать сам скрипт.
admin.php - файл выполняет функции администрирования новостей.
base.dat - тут у нас будут храниться сами новости, которые мы будем
добавлять.
config.inc.php - файл параметров новостей.
style.txt - файл со стилями наших новостей.
trig_news.php - самый главный файл, который отвечает у нас за вывод
новостей в шаблонах.
Начнем разбираться. В первую очередь посмотрим, что у нас лежит в папке
templates. А именно:
.htaccess - еще одна затычка, чтобы наши шаблоны
не попали в чужие руки.
Файл шаблона archive_empty.htm - этот файл
содержит надпись, когда нас архив новостей пуст.
Файл шаблона archive_end.htm - это самый низ
шаблона архива
Файл шаблона archive_top.htm - самый верх архива
Файл шаблона bottom.htm - это заключительная часть
всех новостей.
Файл шаблона empty.htm - этот шаблон выводит надпись
о том, что новостей у нас пока нет.
Файл шаблона end.htm - самый низ новостей.
Файл шаблона error.htm - шаблон ошибки.
Файл шаблона navigation.htm - навигация по новостям.
Файл шаблона new_top.htm - верх новостей, содержит
название новостей.
Файл шаблона news.htm - само тело новостей, состоит
из даты, самой новости и ID новости.
Я не буду подробно останавливаться на шаблонах, листинг этих файлов вам
скажет больше, чем мои слова. Тем более, что html язык должны знать все.
Переходим
к самому скрипту. Листинг файла-затычки .htaccess.
Этот файл не имеет расширения. В нем мы определяем директорию новостей и
индексный файл (trig_news.php). Далее мы указываем доступ к файлам с расширением
dat , то есть мы запрещаем серверу скачивание этих файлов пользователем.
Смотрим файл admin.php. Начало стандартное инклудим
config.inc.php и style.txt. Потом указываем функцию формы (function form())
и выводим саму форму. И тут же проверяем пароль и если пароль неверен прерываем
обработку скрипта (exit). Далее я стал писать сами функции новостей, так
что останавливаться не буду. Функции стандартные: добавить, удалить, редактировать,
то открываем такой то файл и вносим в него изменения, потом обрезаем символы
и т.д. Тут все ясно.
Далее. Опять выводим таблицу с администрированием новостей, делаем навигацию,
делаем предупреждения, если новостей нет и наоборот, если новости есть выводим
их из файла, причем все и делаем форму для правки или удаления. Чтобы добавить
новость надо зайти в другой раздел. Хочу сказать, что этот файл создан без
использования шаблонов и весь дизайн зашит в тело скрипта, так что если
вам понадобиться сменить дизайн не только у новостей, но и администрирования
новостей, то вам придется покопаться в теле файла admin.php и поправить
дизайн на свой.
Рассматривать файл base.dat мы не будем, потому что в нем хранятся новости
и пока там новостей нет.
Далее рассматриваем файл config.inc.php. Стандартный
файл параметров новостей. Next, back, snb - это навигация по новостям; next
- выводит надпись "дальше"; back - выводит надпись "назад";
snb - это разделитель между словами "дальше" и "назад".
Выглядит это так: дальше… назад. Show_archive - это сколько новостей у нас
будут храниться в архиве. Fp - полный путь к файлу trig_news. Ap - это сколько
у нас будет выводиться на одной странице новостей. Dtemplates - это у нас
в какой папке будут храниться новости. И вообще все эти параметры лучше
менять через панельку админа.
Переходим к style.txt. В этом файле я написал, как
должны выглядеть ссылки. И все. В принципе в него можно заносить все что
угодно, я имею ввиду все то, что касается стилей CSS.
Переходим к самому главному файлу - это trig_news.php.
В принципе это файл предназначен для сборки всех шаблонов в единое целое.
Как конструктор, из которого собирают модельку, так и тут. Кстати, такой
принцип может быть заложен в движок для сайта, написанного на PHP. Рассмотрим
этот файл поближе.
Первым делом мы проверяем наличие полного пути до главного файла. Если же
его нет, то он генерируется автоматически. Вот эта конструкция:
if ($fp == "")
{
$fp = $PHP_SELF;
$fp = eregi_replace("trig_news.php","","$fp");
$fp = "$DOCUMENT_ROOT$fp";
}
Если же все OK, то начинаем инклудить файлы config.inc.php и style.txt.
Далее начинаем выводить новости, а точнее самую верхушку новостей и папки
с шаблонами. Если же новостей у нас нет - выводим шаблон empty.htm, который
говорит, что новостей нет. Вот эта конструкция:
include ("$fp$dtemplates/new_top.htm");
if (count(file($fp.$newsdat)) < 1)
{
include ("$fp$dtemplates/empty.htm");
}
Если же файле, где у нас хранятся новости, есть хоть что-нибудь, то начинаем
их выводить. Далее заменяем все значения (%date%; %news%; %id%) на функции,
которые выводят нам реальные данные: дату, сами новости и id новостей. Далее
вставляем separator (разделитель) и выводим шаблон end.htm со ссылкой на
архив. Если при нажатии на ссылку происходит переход на страницу с архивом
новостей, то опять происходит тоже самое, что я только что описал выше,
если в архиве нет новостей, то выводим шаблон archive_empty.htm. Далее идет
формирование навигации, как для самого архива, так и для новостей в целом.
Вот и все. Просто, не правда ли?
В заключение…
Пару слов о смене дизайна в новостях. Для самих новостей вы можете изменить
весь дизайн шаблонов на свой, но только пользуясь редактором или блокнотом.
Чтобы изменить дизайн в admin.php вы должны покопаться в самом файле и исправить
дизайн в ручную просматривая весь скрипт. Убедительная просьба ничего не
меняйте в самом теле скрипта, а также функции, а то я неручаюсь, что у вас
может получиться.
Установка на сервере. Закачиваем все на сервер и ставим следующие права
доступа (chmod):
на *.php файлы устанавливайте '444', а на config.inc.php - '666'
на все *.dat файлы устанавливайте права '666'
на все *.html файлы устанавливайте права '666'
на все *.txt файлы устанавливайте права '664'
Также вы можете вставлять тэг <a href=".."> для создания
ссылки в самих новостях. Это включено в скрипт.
Вот вроде бы и все. Пишите, если у вас что-нибудь не получиться.
Удачи!!!
Листинг шаблона archive_empty.htm
<table width="200" border="0" align="center"
cellpadding="1" cellspacing="1">
<tr>
<td bgcolor="#999999">
<div align="center"><font face="Verdana, Arial,
Helvetica, sans-serif" size="2">-=:Архив новостей пуст:=-</font></div>
</td>
</tr>
</table>
Обратно
Листинг шаблона archive_end.htm
<table width="200" border="0" align="center"
cellpadding="1" cellspacing="1">
<tr>
<td bgcolor="#CCCCCC">
<div align="center"><font size="2" face="Verdana,
Arial, Helvetica, sans-serif">-=:%news_list%:=-</font></div>
</td>
</tr>
</table>
Обратно
Листинг шаблона archive_top.htm
<table width="200" border="0" align="center"
cellspacing="1" cellpadding="1">
<tr>
<td bgcolor="#CCCCCC">
<div align="center"><font size="2" face="Verdana,
Arial, Helvetica, sans-serif">-=Архив
новостей=-</font></div>
</td>
</tr>
</table>
Обратно
Листинг шаблона bottom.htm
</body>
</html>
Не пугайтесь. Здесь дейсвительно конец html страницы.
Обратно
Листинг шаблона empty.htm
<table width="200" border="0" align="center"
cellpadding="1" cellspacing="1">
<tr>
<td bgcolor="#999999">
<div align="center"><font face="Verdana, Arial,
Helvetica, sans-serif" size="2">-=:Новостей
нет:=- </font></div>
</td>
</tr>
</table>
Обратно
Листинг шаблона end.htm
<table width="200" border="0" cellspacing="1"
cellpadding="1" align="center">
<tr>
<td bgcolor="#CCCCCC" height="5">
<div align="center"><font size="2" face="Verdana,
Arial, Helvetica, sans-serif">-=:%archive%:=-</font></div>
</td>
</tr>
</table>
Обратно
Листинг шаблона error.htm
<table width="200" border="0" cellspacing="1"
cellpadding="1" align="center">
<tr>
<td bgcolor="#999999" height="2">
<div align="center"><font size="2" face="Verdana,
Arial, Helvetica, sans-serif">-=:Перебор:=-</font></div>
</td>
</tr>
</table>
Обратно
Листинг шаблона navigation.htm
<table width="200" border="0" cellspacing="1"
cellpadding="1" align="center">
<tr>
<td bgcolor="#CCCCCC">
<div align="center"><font size="2" face="Verdana,
Arial, Helvetica, sans-serif">
-= %navigation% =-</font></div>
</td>
</tr>
</table>
Обратно
Листинг шаблона new_top.htm
<table width="200" border="0" cellspacing="1"
cellpadding="1" align="center">
<tr>
<td bgcolor="#CCCCCC">
<div align="center"><font face="Verdana, Arial,
Helvetica, sans-serif" size="1">Последние новости на Коврике</font></div>
</td>
</tr>
</table>
Обратно
Листинг шаблона news.htm
<table width="200" border="0" cellspacing="1"
cellpadding="1" align="center">
<tr>
<td bgcolor="#CCCCCC">
<div align="center"><font size="2"><font
size="2"><font face="Verdana, Arial, Helvetica, sans-serif">%date%</font></font></font></div>
</td>
</tr>
<tr>
<td bgcolor="#999999">
<div align="center"><font size="2"><font
size="2"><font face="Verdana, Arial, Helvetica, sans-serif">%news%</font></font></font></div>
</td>
</tr>
<tr>
<td bgcolor="#CCCCCC">
<div align="right"><font size="2"><font
size="2"><font face="Verdana, Arial, Helvetica, sans-serif">ID
новости #%id%</font></font></font></div>
</td>
</tr>
</table>
Обратно
Листинг файла .htaccess в папке с шаблонами
deny from all
Всего одна строчка.
Обратно
Листинг файла .htaccess, который лежит
в главной директории, на одном уровне с trig_news.php
DirectoryIndex trig_news.php
<Files *.dat>
order allow,deny
deny from all
</Files>
<Files config.inc.php>
order allow,deny
deny from all
</Files>
Обратно
Листинг файла admin.php
<?
include("config.inc.php");
include("style.txt");
function form()
{
echo "
<html>
<head>
<title>Администрирование новостей Коврика</title>
<META HTTP-EQUIV=\"Pragma\" CONTENT=\"no-cache\">
<meta http-equiv=\"content-type\" content=\"text/html;
charset=windows-1251\">
</head>
<body>
<form action=admin.php method=get>
<table border=0 width=500 align=center cellspacing=1 cellpadding=3 bgcolor=000080>
<tr><td align=center bgcolor=#CCCCCC><font face=verdana size=2>-=:Новости
на Коврике:=-</font></td></tr>
<tr><td align=center bgcolor=#999999><font face=verdana size=2
color=#000000>-=:Пожалуйста, введите пароль:=-</font></td></tr>
<tr><td align=center bgcolor=#999999><input typy=text name=p
size=25></td></tr>
<tr><td align=center bgcolor=#CCCCCC><input type=submit value=Войти></td></tr>
</form>
";
}
if ($p != $password)
{
form();
exit;
}
$all_news = count(file($newsdat));
if ($addnewnews == "Добавить свежую новость")
{
if ($news != "")
{
$newnewsfile = fopen("$newsdat","a");
$news = ereg_replace("::","::",$news);
$news = ereg_replace("\r\n","<br>",$news);
$time = ereg_replace("::","::",$time);
fputs($newnewsfile,"$time::$news::\r\n");
fclose($newnewsfile);
}
}
$autfi = file("$newsdat");
if ($oldnews == "изменить" or $oldnews == "удалить")
{
$autfif = fopen("$newsdat","w");
for ($autc = 0; $autc < count($autfi); $autc++)
{
if ($autc != $n)
{
fputs($autfif,$autfi[$autc]);
}
else
{
if ($oldnews == "изменить")
{
$time = ereg_replace("::","::",$time);
$news = ereg_replace("<","<",$news);
$news = ereg_replace(">",">",$news);
$news = ereg_replace("\r\n","<br>",$news);
fputs($autfif,"$time::$news::\r\n");
}
}
}
fclose($autfif);
}
echo "<html>
<head>
<title>Администратирование новостей</title>
<META HTTP-EQUIV=\"Pragma\" CONTENT=\"no-cache\">
<meta http-equiv=\"content-type\" content=\"text/html;
charset=windows-1251\">
</head>
<body>
";
echo "
<table border=0 width=500 align=center cellspacing=1 cellpadding=1 bgcolor=000080>
<tr><td bgcolor=#CCCCCC align=center><font face=verdana size=2>-=:Новости
на Коврике:=-</font></td></tr>
<tr><td bgcolor=#999999 align=center><font face=verdana size=2
color=#000000>-=:Меню админа:=-</font></td></tr>
<tr><td bgcolor=#CCCCCC align=center><font face=verdana size=1><a
href=admin.php?p=$p&menu=new>Добавить новость</a> |<a href=admin.php?p=$p&menu=news>Отредактировать,
удалить новость</a> | <a href=admin.php?p=$p&menu=parameters>Параметры</a></td></tr>
</table>
";
if ($QUERY_STRING == "p=$password")
{
echo "
<table border=0><tr><td></td></tr></table><table
border=0 width=500 align=center cellspacing=1 cellpadding=1 bgcolor=000080>
<tr><td bgcolor=#CCCCCC align=center><font face=verdana size=2
color=#000000>-= ВЫБЕРИТЕ РАЗДЕЛ =-</font></td></tr>
</table>
";
}
$newsfile = file($newsdat);
$apa = "10";
$pm = file("$newsdat");
if ($page == "")
{
$page = "1";
}
$first = count($pm) - ($apa * ($page - 1));
$second = count($pm) - ($apa * $page) + 1;
if ($second < 1)
{
$second = 1;
}
$pages = (int) ((count($pm) + $apa) / $apa);
$line = "|";
for ($apa = 1; $apa <= $pages; $apa++)
{
if ($apa != $page)
{
$line .= "<a href=\"admin.php?p=$p&menu=news&page=$apa\">
$apa </a>|";
}
if ($apa == $page)
{
$line .= " $apa |";
}
}
if ($menu == "new")
{
$next_news = count(file($newsdat));
$next_news++;
echo "<table border=0><tr><td></td></tr></table><table
border=0 width=500 align=center cellspacing=1 cellpadding=1 bgcolor=000080>
<tr><td bgcolor=#CCCCCC align=center><font face=verdana size=2
color=#000000>-=: Добавление свежей новости :=-</font></td></tr>
<form action=admin.php method=post>
<input type=hidden name=addnews value=okey>
<input type=hidden name=p value=\"$p\">
<tr><td bgcolor=#999999 align=center><font face=verdana size=2
color=#000000>Дата</td></tr>
<tr><td bgcolor=#999999 align=center> <input type=text name=time
value=\"".date("d.m.Y",time())."\" size=8></td></tr>
<tr><td bgcolor=#CCCCCC align=center><font face=verdana size=2>ID
этой <font color=000080>НОВОСТИ</font> будет <font color=000080>$next_news</font></font></td></tr>
<tr><td bgcolor=#999999 align=center><textarea name=news
rows=5 cols=59></textarea></td></tr>
<tr><td bgcolor=#999999 align=center><input type=submit name=addnewnews
value=\"Добавить свежую новость\"></td></tr></form>
<tr><td bgcolor=#CCCCCC align=center><font face=verdana size=1
color=#000000>...вместо даты можете вписать заголовок новости...</font></td></tr></form>
</table><table border=0><tr><td></td></tr></table>
<table border=0 width=500 align=center cellspacing=1 cellpadding=1 bgcolor=000080>
<tr><td bgcolor=#CCCCCC align=center><font face=verdana size=2
color=#000000>-= Всего новостей: <font color=de0000>$all_news</font>
=-</font></td></tr>
</table>
";
}
if ($lo == "okey")
if ($addnews
== "okey")
{
echo "
<table border=0><tr><td></td></tr></table><table
border=0 width=500 align=center cellspacing=1 cellpadding=1 bgcolor=000080>
<tr><td bgcolor=#CCCCCC align=center><font face=verdana size=2
color=#000000>-= Новость добавлена =-</font></td></tr>
</table>
";
}
if ($menu == "news")
{
if (count(file($newsdat)) > 0)
{
echo "
<table border=0><tr><td></td></tr></table><table
border=0 width=500 align=center cellspacing=1 cellpadding=1 bgcolor=000080>
<tr><td bgcolor=#CCCCCC align=center><font face=verdana size=2
color=#000000>-= Всего новостей: <font color=de0000>$all_news</font>
=-</font></td></tr>
</table><table border=0><tr><td></td></tr></table>
<table border=0 width=500 align=center cellspacing=1 cellpadding=1 bgcolor=000080>
<tr><td bgcolor=#CCCCCC align=center><font face=verdana size=1>$line</font></td></tr>
</table><table border=0><tr><td></td></tr></table>
";
}
if ($cod == "okey")
{
echo "
<table border=0 width=500 align=center cellspacing=1 cellpadding=1 bgcolor=000080>
<tr><td bgcolor=#CCCCCC align=center><font face=verdana size=2>-=
<font color=#000000>Новость с номером <font color=de0000>$next_n</font>
успешно изменена/удалена</font> =-</font></td></tr>
</table><table border=0><tr><td></td></tr></table>
";
}
for ( $i = $first-1; $i >= $second-1; $i--)
{
list($date,$news) = explode("::", $newsfile[$i]);
$news = str_replace("<br>","\r\n",$news);
$news = ereg_replace("<","<",$news);
$news = ereg_replace(">",">",$news);
$id = $i;
$id++;
echo "<table border=0 width=500 align=center cellspacing=1 cellpadding=1
bgcolor=000080>
<form action=admin.php method=post>
<input type=hidden name=menu value=news>
<input type=hidden name=p value=\"$p\">
<input type=hidden name=page value=\"$page\">
<input type=hidden name=cod value=okey>
<input type=hidden name=n value=$i>
<input type=hidden name=next_n value=\"$id\">
<tr><td bgcolor=#CCCCCC align=center><font face=verdana size=2
color=#000000>-=Дата=-</td></tr>
<tr><td bgcolor=#CCCCCC align=center> <input type=text name=time
value=\"$date\" size=8></td></tr>
<tr><td bgcolor=#999999 align=center><font face=verdana size=2
color=000080>-=Новость <font color=000000>#</font>$id =-</font></td></tr>
<tr><td bgcolor=#999999 align=center><textarea name=news
rows=5 cols=59>$news</textarea></td></tr>
<tr><td bgcolor=#CCCCCC align=center><input type=submit name=oldnews
value=\"удалить\"> <input type=submit name=oldnews value=\"изменить\"></td></tr></form>
</table><table border=0><tr><td></td></tr></table>
";
}
if (count(file($newsdat)) > 0)
{
echo "
<table border=0 width=500 align=center cellspacing=1 cellpadding=1 bgcolor=000080>
<tr><td bgcolor=#CCCCCC align=center><font face=verdana size=2
color=#000000>-= Всего новостей: <font color=de0000>$all_news</font>
=-</font></td></tr>
</table><table border=0><tr><td></td></tr></table>
<table border=0 width=500 align=center cellspacing=1 cellpadding=1 bgcolor=000080>
<tr><td bgcolor=#CCCCCC align=center><font face=verdana size=1>$line</font></td></tr>
</table>
";
}
if (count(file($newsdat)) < 1)
{
echo "
<table border=0><tr><td></td></tr></table><table
border=0 width=500 align=center cellspacing=1 cellpadding=1 bgcolor=000080>
<tr><td bgcolor=#CCCCCC align=center><font face=verdana size=2
color=000080>-= НОВОСТЕЙ НЕТ =-</font></td></tr>
</table>
";
}
}
if ($menu == "parameters")
{
echo "
<table border=0><tr><td></td></tr></table><table
width=500 border=0 cellspacing=1 cellpadding=1 align=center>\n";
echo "<form action=admin.php method=get><input type=hidden
name=p value=\"$p\"><input type=hidden name=update_okey
value=yes><tr><td bgcolor=#CCCCCC align=center colspan=2><font
face=verdana size=2 color=#000000>-=:ПАРАМЕТРЫ:=-</font></td></tr>\n";
echo "<tr><td bgcolor=#999999 align=center width=50%><font
face=verdana size=2 color=#000000>Пароль админа:</font></td><td
bgcolor=#СССССС align=center><input type=text name=password_ value=\"$password\"
size=33></td></tr>\n";
echo "<tr><td bgcolor=#CCCCCC align=center width=50%><font
face=verdana size=2 color=#000000>Разделитель новостей</font></td><td
bgcolor=#999999 align=center><input type=text name=separator_ value=\"$separator\"
size=33></td></tr>\n";
echo "<tr><td bgcolor=#999999 align=center width=50%><font
face=verdana size=2 color=#000000>Кол-во новостей на стр.</font></td><td
bgcolor=#CCCCCC align=center><input type=text name=ap_ value=\"$ap\"
size=33></td></tr>\n";
echo "<tr><td bgcolor=#CCCCCC align=center width=50%><font
face=verdana size=2 color=#000000>Кол-во новостей на стр. архива</font></td><td
bgcolor=#999999 align=center><input type=text name=show_archive_ value=\"$show_archive\"
size=33></td></tr>\n";
echo "<tr><td bgcolor=#999999 align=center width=50%><font
face=verdana size=2 color=#000000>Папка с шаблонами</font></td><td
bgcolor=#CCCCCC align=center><input type=text name=dtemplates_ value=\"$dtemplates\"
size=33></td></tr>\n";
echo "<tr><td bgcolor=#CCCCCC align=center width=50%><font
face=verdana size=2 color=#000000>Файл с новостями</font></td><td
bgcolor=#999999 align=center><input type=text name=newsdat_ value=\"$newsdat\"
size=33></td></tr>\n";
echo "<tr><td bgcolor=#999999 align=center width=50%><font
face=verdana size=2 color=#000000>Надпись "архив новостей"</font></td><td
bgcolor=#CCCCCC align=center><input type=text name=non_title_archive_
value=\"$non_title_archive\" size=33></td></tr>\n";
echo "<tr><td bgcolor=#CCCCCC align=center width=50%><font
face=verdana size=2 color=#000000>Надпись "к списку новостей"</font></td><td
bgcolor=#999999 align=center><input type=text name=title_archive_
value=\"$title_archive\" size=33></td></tr>\n";
echo "<tr><td bgcolor=#999999 align=center width=50%><font
face=verdana size=2 color=#000000>Слово "вперёд" в
архиве:</font></td><td bgcolor=#CCCCCC align=center><input
type=text name=next_ value=\"$next\" size=33></td></tr>\n";
echo "<tr><td bgcolor=#CCCCCC align=center width=50%><font
face=verdana size=2 color=#000000>Слово "назад" в архиве:</font></td><td
bgcolor=#999999 align=center><input type=text name=back_ value=\"$back\"
size=33></td></tr>\n";
echo "<tr><td bgcolor=#999999 align=center width=50%><font
face=verdana size=1 color=#000000>Разделитель между "вперёд"
и "назад":</font></td><td bgcolor=#CCCCCC
align=center><input type=text name=snb_ value=\"$snb\" size=33></td></tr>\n";
if ($fp != "")
{
echo "<tr><td bgcolor=#CCCCCC align=center width=50%><font
face=verdana size=2 color=#000000>Полный путь к новостям:</font></td><td
bgcolor=#999999 align=center><input type=text name=fp_ value=\"$fp\"
size=33></td></tr>\n";
}
$sct = $PHP_SELF;
$sct = eregi_replace("admin.php","","$sct");
if ($fp == "")
{
echo "<tr><td bgcolor=#999999 align=center width=50%><font
face=verdana size=2 color=#000000>Полный путь к новостям:</font></td><td
bgcolor=#CCCCCC align=center><input type=text name=fp_ value=\"$DOCUMENT_ROOT$sct\"
size=33></td></tr>\n";
}
echo "<tr><td bgcolor=#CCCCCC align=center colspan=2><font
face=verdana size=1>например: <font color=#000000>/pub/home/htdocs/trig_news/</font></font></td></tr>";
echo "<tr><td bgcolor=#CCCCCC align=center colspan=2><input
type=\"submit\" name=\"update\" value=\"Изменить
@ Применить\"></td></tr>";
echo "</table></form>\n";
}
if ($update == "Изменить @ Применить")
{
$a_update_config = str_replace('"',"'",$a_update_config);
$a_update_config = "<?\r\n";
$a_update_config .= "#############################################\r\n#
#\r\n# #\r\n# #\r\n# #\r\n# #\r\n# #\r\n# #\r\n#############################################\r\n#
#\r\n#############################################\r\n\r\n";
$a_update_config .= "#############################################\r\n#
#\r\n# #\r\n#############################################\r\n\r\n";
$a_update_config .= "\$next = \"$next_\";\r\n";
$a_update_config .= "\$back = \"$back_\";\r\n";
$a_update_config .= "\$snb = \"$snb_\";\r\n";
$a_update_config .= "\$show_archive = \"$show_archive_\";\r\n";
$a_update_config .= "\$fp = \"$fp_\";\r\n";
$a_update_config .= "\$title_archive = \"$title_archive_\";\r\n";
$a_update_config .= "\$non_title_archive = \"$non_title_archive_\";\r\n";
$a_update_config .= "\$password = \"$password_\";\r\n";
$a_update_config .= "\$separator = \"$separator_\";\r\n";
$a_update_config .= "\$ap = \"$ap_\";\r\n";
$a_update_config .= "\$dtemplates = \"$dtemplates_\";\r\n";
$a_update_config .= "\$newsdat = \"$newsdat_\";\r\n";
$a_update_config .= "?>";
$u_update_config = fopen("config.inc.php","w+");
$a_update_config = str_replace('<',"<",$a_update_config);
$a_update_config = str_replace('>',">",$a_update_config);
fputs ($u_update_config,$a_update_config);
}
if ($update_okey == "yes")
{
echo "<table border=0><tr><td></td></tr></table><table
width=500 border=0 cellspacing=1 cellpadding=1 bgcolor=000080 align=center>";
echo "<tr><td bgcolor=#CCCCCC align=center><font face=verdana
size=2 color=000080>-=: Параметры новостей обновленны! :=-</font></td></td></tr>";
echo "</table>";
form();
}
?>
Обратно
Листинг файла config.inc.php
<?
$next = "дальше";
$back = "назад";
$snb = "...";
$show_archive = "12";
$fp = "c:/www/www1/";
$title_archive = "архив новостей";
$non_title_archive = "к списку новостей";
$password = "ваш_пароль";
$separator = "<table border=0 align=center><tr><td></td></tr></table>";
$ap = "6";
$dtemplates = "templates";
$newsdat = "base.dat";
?>
Обратно
Лиситнг файла style.txt
<style>
A:link {COLOR:#666666 ; FONT-FAMILY: Verdana; TEXT-DECORATION: none}
A:active {COLOR:#666666; FONT-FAMILY: Verdana; TEXT-DECORATION: none}
A:visited {COLOR:#666666 ; FONT-FAMILY: Verdana; TEXT-DECORATION: none}
A:hover {COLOR: #000000; FONT-FAMILY: Verdana; TEXT-DECORATION: none}
</style>
Обратно
Лиситнг файла trig_news.php
<?
if ($fp == "")
{
$fp = $PHP_SELF;
$fp = eregi_replace("trig_news.php","","$fp");
$fp = "$DOCUMENT_ROOT$fp";
}
include ("config.inc.php");
include ("style.txt");
$newsfile = file($fp.$newsdat);
if ($news != "archive")
{
include ("$fp$dtemplates/new_top.htm");
if (count(file($fp.$newsdat)) < 1)
{
include ("$fp$dtemplates/empty.htm");
}
if (count(file($fp.$newsdat)) > 0)
{
for ( $i = count(file($fp.$newsdat)) - 1; $i > count(file($fp.$newsdat))
- $ap - 1; $i--)
{
if ($i >= 0)
{
list($date,$news)=explode("::", $newsfile[$i]);
$id = $i;
$id++;
$t_news = file("$fp$dtemplates/news.htm");
for($n = 0 ; $n < count($t_news); $n++)
{
$t_news[$n] = str_replace("%date%",$date,$t_news[$n]);
$t_news[$n] = str_replace("%news%",$news,$t_news[$n]);
$t_news[$n] = str_replace("%id%",$id,$t_news[$n]);
echo $t_news[$n];
}
echo "$separator";
}
}
}
$t_end = file("$fp$dtemplates/end.htm");
for($en = 0 ; $en < count($t_end); $en++)
{
$t_end[$en] = str_replace("%archive%","<a href=\"http://$HTTP_HOST$PHP_SELF?news=archive\"
title=\"$title_archive\">$title_archive</a>",$t_end[$en]);
echo $t_end[$en];
}
}
if ($news == "archive")
{
if ($page == "")
{
$page = "1";
}
include ("$fp$dtemplates/archive_top.htm");
if (!ereg("^[0-9]+$",$page))
{
include ("$fp$dtemplates/error.htm");
$t_archive_end = file("$fp$dtemplates/archive_end.htm");
for($a_en = 0 ; $a_en < count($t_archive_end); $a_en++)
{
$t_archive_end[$a_en] = str_replace("%news_list%","<a
href=\"http://$HTTP_HOST$PHP_SELF\" title=\"$non_title_archive\">$non_title_archive</a>",$t_archive_end[$a_en]);
echo $t_archive_end[$a_en];
}
include ("$fp$dtemplates/bottom.htm");
exit();
}
$newsfile = file($fp.$newsdat);
if (count(file($fp.$newsdat)) < $ap)
{
include ("$fp$dtemplates/archive_empty.htm");
$t_archive_end = file("$fp$dtemplates/archive_end.htm");
for($a_en = 0 ; $a_en < count($t_archive_end); $a_en++)
{
$t_archive_end[$a_en] = str_replace("%news_list%","<a
href=\"http://$HTTP_HOST$PHP_SELF\" title=\"$non_title_archive\">$non_title_archive</a>",$t_archive_end[$a_en]);
echo $t_archive_end[$a_en];
}
include ("$fp$dtemplates/bottom.htm");
exit();
}
if (count(file($fp.$newsdat)) > 0)
{
if ($page == "" or $page < 0)
{
$page = "1";
}
$first = count($newsfile) - ($show_archive * ($page - 1));
$second = count($newsfile) - ($show_archive * $page) + 1;
if ($second < 1)
{
$second = 1;
}
$pages = (int) ((count($newsfile) - 1 + $show_archive) / $show_archive);
if ($page > $pages)
{
include ("$fp$dtemplates/error.htm");
$t_archive_end = file("$fp$dtemplates/archive_end.htm");
for($a_en = 0 ; $a_en < count($t_archive_end); $a_en++)
{
$t_archive_end[$a_en] = str_replace("%news_list%","<a
href=\"http://$HTTP_HOST$PHP_SELF\" title=\"$non_title_archive\">$non_title_archive</a>",$t_archive_end[$a_en]);
echo $t_archive_end[$a_en];
}
include ("$fp$dtemplates/bottom.htm");
exit();
}
$line = "|";
for ($show_archive = 1; $show_archive <= $pages; $show_archive++)
{
if ($show_archive != $page)
{
if ($page != "" and $page > "1" and $page < $pages)
{
$li = "<a href=\"http://$HTTP_HOST$PHP_SELF?news=archive&page=".($page-1)."\"
title=\"$back\"> $back </a> $snb ";
}
$page2 = $page+1;
$line = "<a href=\"http://$HTTP_HOST$PHP_SELF?news=archive&page=$page2\"
title=\"$next\"> $next </a>";
}
if ($show_archive == $page)
{
$line = "<a href=\"http://$HTTP_HOST$PHP_SELF?news=archive&page=".($page-1)."\"
title=\"$back\"> $back </a>";
}
}
$t_navigation = file("$fp$dtemplates/navigation.htm");
for($nav = 0 ; $nav < count($t_navigation); $nav++)
{
$t_navigation[$nav] = str_replace("%navigation%","$li$line",$t_navigation[$nav]);
echo $t_navigation[$nav];
}
for ( $i = $first-1; $i >= $second-1; $i--)
{
if ($i >= 0)
{
list($date,$news)=explode("::", $newsfile[$i]);
$id = $i;
$id++;
$t_news = file("$fp$dtemplates/news.htm");
for($n = 0 ; $n < count($t_news); $n++)
{
$t_news[$n] = str_replace("%date%",".:: $date ::.",$t_news[$n]);
$t_news[$n] = str_replace("%news%",$news,$t_news[$n]);
$t_news[$n] = str_replace("%id%",$id,$t_news[$n]);
echo $t_news[$n];
}
echo "$separator";
}
}
$t_navigation = file("$fp$dtemplates/navigation.htm");
for($nav = 0 ; $nav < count($t_navigation); $nav++)
{
$t_navigation[$nav] = str_replace("%navigation%","$li$line",$t_navigation[$nav]);
echo $t_navigation[$nav];
}
$t_archive_end = file("$fp$dtemplates/archive_end.htm");
for($a_en = 0 ; $a_en < count($t_archive_end); $a_en++)
{
$t_archive_end[$a_en] = str_replace("%news_list%","<a
href=\"http://$HTTP_HOST$PHP_SELF\" title=\"$non_title_archive\">$non_title_archive</a>",$t_archive_end[$a_en]);
echo $t_archive_end[$a_en];
}
}
}
include ("$fp$dtemplates/bottom.htm");
?>
Обратно