Форум скриптов PHP

Форум скриптов PHP

Форум техподдержки WR-Скриптов на php. Обсуждаем: основы программирования на PHP и различные подходы к реализации скриптов. А также WR-скрипты: бесплатные доски объявлений, скрипты форумов, Гостевые книги, Каталог ссылок, Галерея, Фотоальбом, Счётчики, Рассылки, Чат, Анекдот и другие. Принимаются пожелания для новых версий. Пишите какой скрипт нужен для Вашего сайта, постараемся реализовать. Скачать скрипты можно бесплатно. Вместе мы сделаем бесплатные php скрипты лучше и доступны всем!
Главная сайта бесплатных php скриптовГлавная сайта   ПоискПоиск   Участники  
Сегодня: 08.12.2019 - 17:29:53
Страницы:  1  
Форум скриптов PHP » WR-Guest - все гостевые книги, wr-faq - скрипт вопрос-ответ » Небольшая модификация гостевой, добавление модерства
Объявление - WR-Scriptы в UTF-8 кодировке

Активно обновляю скрипты и перевожу их в UTF-8 кодировку. Список бесплатных php скриптов, которые уже переведены можно увидеть на главной странице сайта. Скачивайте обновлённые скрипты и устанавливайте на свой сайт! В ближайшее время обновлю каталог знакомств, форум Про, фотоальбом, доски объявлений лайт и ЛЮКС.

На форуме, пожалуйста, пишите что модернизировать в скриптах в первую очередь. Постараюсь исправить большую часть пожеланий!
Работы продолжаются. Ура!

АвторСообщение

BaNru

B
Участник форума

Сделано все на скорую руку, по просьбе
Открываем [B]index.php[/B] ищем похожее и заменяем
[B][COLOR="Navy"]1)[/COLOR][/B] Добавляем новую ячейку, 0 или 1, где они типа [B]true[/B] или [B]false[/B], разрешена или нет публикация сообщения
[PHP]$msg=str_replace("|","I",$msg);
$name=wordwrap($name,24,' ',1); // разрываем слишком длинные строки
$msg=wordwrap($msg,75,' ',1);
$today=mktime();
$moderat="0";

// производим запись данных в файл по шаблону: собщение|имя|емайл|дата|время|МКТАЙМ|МоРОдерство
$text="$msg|$name|$email|$date|$time|$today|$moderat|";[/PHP]
[B][COLOR="Navy"]2)[/COLOR][/B] Добавляем после
[PHP]if (strlen($dt[0])>5) { // Если строчка потерялась в скрипте (пустая строка) - то просто её НЕ выводим[/PHP]
такую строчку
[PHP]if (($dt[6]) == 0) {$dt[0] = "Сообщение на проверке";} // Если понадобиться можно и др $dt заменить[/PHP]
Сообщение будет числиться, но будет писаться что оно на проверке.
Сделано по двум причинам: не стал искать как сделать вообще его "не вывод" и таким образом человек разместивший сообщение, будет знать что его сообщение добавлено.

Сообщение # 1 05.06.10 - 19:22:01

BaNru

B
Участник форума


Далее переходим в [B]admin.php[/B]
[B][COLOR="Navy"]3)[/COLOR][/B] Добавляем блок который обрабатывает [COLOR="White"]живодерство мородерство[/COLOR] модерство [COLOR="White"]тьфу блин на это слово[/COLOR], можно после блока удаления
[PHP]// Блок ОДОБРЕНИЯ выбранного сообщения
if (isset($_GET['on'])) { $page=$_GET['page'];
$file=file("guest.dat"); $itogo=count($file)-1;
if ($msginout==1) {$on=$itogo-$_GET['on'];} else {$on=$itogo-$_GET['on']+2;}
$dt=explode("|",$file[$on]);
$text="$dt[0]|$dt[1]|$dt[2]|$dt[3]|$dt[4]|$dt[5]|1|";
$fp=fopen("guest.dat","w");
ftruncate ($fp,0);//УДАЛЯЕМ СОДЕРЖИМОЕ ФАЙЛА
flock ($fp,LOCK_EX);
for ($i=0;$i< sizeof($file);$i++) { if ($i==$on) {unset($file[$i]);} }
fputs($fp, implode("",$file));
flock ($fp,LOCK_UN);
fclose($fp);
$fp=fopen("guest.dat","a+");
flock ($fp,LOCK_EX);
for ($i=0;$i< sizeof($file);$i++) { if ($i==$on) {unset($file[$i]);} }
fputs($fp,"$text\r\n");
fflush ($fp);//очищение файлового буфера
flock ($fp,LOCK_UN);
fclose($fp);
@chmod("guest.dat", 0644);
Header("Location: admin.php?page=$page"); exit; }

// Блок ОТКЛОНЕНИЯ выбранного сообщения
if (isset($_GET['off'])) { $page=$_GET['page'];
$file=file("guest.dat"); $itogo=count($file)-1;
if ($msginout==1) {$off=$itogo-$_GET['off'];} else {$off=$itogo-$_GET['off']+2;}
$dt=explode("|",$file[$off]);
$text="$dt[0]|$dt[1]|$dt[2]|$dt[3]|$dt[4]|$dt[5]|0|";
$fp=fopen("guest.dat","w");
ftruncate ($fp,0);//УДАЛЯЕМ СОДЕРЖИМОЕ ФАЙЛА
flock ($fp,LOCK_EX);
for ($i=0;$i< sizeof($file);$i++) { if ($i==$off) {unset($file[$i]);} }
fputs($fp, implode("",$file));
flock ($fp,LOCK_UN);
fclose($fp);
$fp=fopen("guest.dat","a+");
flock ($fp,LOCK_EX);
for ($i=0;$i< sizeof($file);$i++) { if ($i==$off) {unset($file[$i]);} }
fputs($fp,"$text\r\n");
fflush ($fp);//очищение файлового буфера
flock ($fp,LOCK_UN);
fclose($fp);
@chmod("guest.dat", 0644);
Header("Location: admin.php?page=$page"); exit; }[/PHP]
Хотелось бы обратить внимание, что тут дважды идет открытие файла, и после второго открытия запись идет новой строкой, последней. Что не совсем правильно. Но сделано на скорую руку, и при своевременном, и даже не очень, если с наиболее поздней одобрять, то не заметно ни для кого. Может кто поправит.

[B][COLOR="Navy"]4)[/COLOR][/B]Также изменяем похожую строку в блоке "редактирования", дважды, что б при редактирование сообщения не удалялось значение модерства.
[PHP]$text="$msg|$name|$email|$fdate|$ftime|$moderat|";[/PHP]

[B][COLOR="Navy"]5)[/COLOR][/B] И меняем похожее, ближе к концу файла
[PHP]print"
<TABLE width=780 align=center cellPadding=0 cellSpacing=0><TBODY>
<TR><TD width='1%'><IMG src='images/$skin/1.gif' width=14 height=12 border=0></TD><TD width='96%' background='images/$skin/2.gif'></TD><TD width='3%'><IMG src='images/$skin/3.gif' width=14 height=12 border=0></TD></TR>
<TR><TD background='images/$skin/4.gif'></TD>
<TD><B><a href='mailto:$dt[2]'>$dt[1]</a> ($dt[3] $dt[4])</B><BR>
<em>$dt[0]</em><BR>
<div align=right>

<table><TR><TD ";

if ($dt[6] == 0) {print " bgcolor='#FF0000'><B><a href='admin.php?on=$num&page=$page'>.$dt[6].</a></B>";}
else {print " bgcolor='#00FF00'><B><a href='admin.php?off=$num&page=$page'>.$dt[6].</a></B>";}

print "</TD><TD>  </TD>
<TD bgcolor=#22FF44><B><a href='admin.php?rd=$num&page=$page'>.P.</a></TD><TD>  </TD>
<TD bgcolor=#FF2244><a href='admin.php?id=$num&page=$page'>.X.</a></B></TD><TD>    $pnum</TD>
</TR></TABLE>
</div>
</TD>
<TD background='images/$skin/6.gif'> </TD>
</TR><TR><TD><IMG src='images/$skin/8.gif' width=14 height=12 border=0></TD><TD background='images/$skin/5.gif'></TD><TD><IMG src='images/$skin/9.gif' width=14 height=12 border=0></TD></TR>
</TBODY></TABLE>
";[/PHP]

Также можно добавить поле input с $dt[6] в редактирование. Где можно ручками ставить 0 или 1

Сообщение # 2 05.06.10 - 19:22:32

BaNru

B
Участник форума

Это копипаст с форума, где просили
_http://devilart.net/php-24/5795-poisk-gostevaya-kniga-s-premoderaciei.html

Сообщение # 3 05.06.10 - 19:24:43

WR

W
Участник форума

Спасибо BaNru за идею. Добавил модерирование в гостевую 1.9. Скачивайте, обновляйтесь, тестируйте

Сообщение # 4 26.08.10 - 07:18:38
Форум скриптов PHP » WR-Guest - все гостевые книги, wr-faq - скрипт вопрос-ответ » Небольшая модификация гостевой, добавление модерства
Помогите с установкой скриптов :Предыдущая темаСледующая тема: v.1.8 -> DBF
Страницы:  1  

Сообщение
Имя E-mail
Сообщение

Нажмите на точку возле имени для обращения к участнику

Смайлы:

Ещё смайлы
Эмодзи
         
Защитный код: (введите цифры, которые на синем фоне)
   
WR-Счётчик
Powered by WR-Forum Professional © 2.2.2