Бесплатные PHP скрипты - форум техподдержки

Бесплатные PHP скрипты - форум техподдержки

Форум техподдержки WR-Скриптов на php. Обсуждаем: основы программирования на PHP 5 - 7 версий, различные подходы к написанию скриптов на php 7 без MySQL. А также WR-скрипты: бесплатные доски объявлений, скрипты форумов, Гостевые книги, Каталог ссылок, Галерея, Фотоальбом, Счётчики, Рассылки, Анекдот и другие. Принимаются пожелания для новых версий. Сообщите какой скрипт нужен для Вашего сайта, постараемся найти или реализовать. Скачать скрипты можно бесплатно. Вместе мы сделаем бесплатные php скрипты лучше и доступнее!

Главная сайта бесплатных php скриптовГлавная сайта   ПоискПоиск  
Сегодня: 24.11.2024 - 14:15:45
Страницы:  1  2  

Как сделать?

Объявление - WR-Scriptы в UTF-8 кодировке

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

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

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

Footers

F
гость

Я пишу свой форум, написал, все работает, теперь у меня один вопрос!
Как сделать иконки форумом?
Поясняю.... Если новое сообщение, то иконка цветная если нет то не цветная....
Просто саму систему мне объясните

Сообщение # 1 25.12.05 - 13:05:14

midav

M
гость

Это сравнивается дата и время добавление сообщения! Если время дата и время сегодняшняя значит {ставим цветную картинку}, else { не цветную} Надеюсь понятно

Сообщение # 2 25.12.05 - 13:32:13

Footers

F
гость

а какие еще способы есть?

Сообщение # 3 25.12.05 - 13:49:06

midav

M
гость

Этот единственный! Просто сравнивают дату дня с датой добавления! Ну например
[Code

$date=date("d.m.Y");
$file=file("forum.dat");
$i=count($file);
do {$i--; $dt=explode("I", $file[$i]);

if($dt[0]==$date) {print"<img src=new.gif>";} else {print"<img src=old.gif>";}
}while($i>"0");




В файле forum.dat должно быть так

Код:

25.12.2006Iтут что-нибудьIтут что-нибудьIтут что-нибудьI
24.12.2006Iтут что-нибудьIтут что-нибудьIтут что-нибудьI



Как видно первая строчка день совпадает и поэтому будет new.gif, вторая строка день не совпадает и поэтому будет выводиться old.gif

Сообщение # 4 25.12.05 - 23:20:58

WR

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

Footers, у меня немножко подругому сделано. Идёт сравнение двух дат - одна - последнее посещение любой страницы форума (хранится в куки у пользователя на компьютере, перезаписывается при каждом открытии страницы), другая дата создания сообщения (хранится описанным Midav способом в файле).

Вот блок, создающий куку с датой юзеру:


Код:

/////////////////////

// шапка для всех страниц форума
// определяем дату последнего визита. +5 минут погрешности

if (isset($_COOKIE['wrfcookies']))
{
$wrfc=$_COOKIE['wrfcookies']; $wrfc=explode("I", $wrfc);
$wrfname=$wrfc[0];$wrfpass=$wrfc[1];$wrftime1=$wrfc[2];$wrftime2=$wrfc[3];
if (time()>($wrftime1+240))
{
$tektime=time();
$wrfcookies="$wrfc[0]I$wrfc[1]I$tektimeI$wrftime1I" ;
setcookie("wrfcookies", $wrfcookies, time()+1728000);

$wrfc=$_COOKIE['wrfcookies']; $wrfc=explode("I", $wrfc);
$wrfname=$wrfc[0];$wrfpass=$wrfc[1];$wrftime1=$wrfc[2];$wrftime2=$wrfc[3];
}
}

/////// ///////////////



вот блок, отвечающий за цвет иконки:


Код:
//$dt[9] - дата размещения сообщения; $wrftime2 - последнее посещение
// Если $dt[9] раньше (т.е. больше) $wrftime2 значит раздел форума - новый
$foldicon="folder.gif"; if (isset($wrfname)) {if (isset($dt[9])) {if ($dt[9]>$wrftime2) {$foldicon="foldernew.gif";}}}


Вообще бываю и более сложные махинизмы отслеживания новых сообщений. Но я постарался реализовать самым простым.

Сообщение # 5 26.12.05 - 05:51:24

Footers

F
гость

да сделал с этой датой....
теперь проблема в этом....
я оставляю сообщение в двух темах, потом как бы я нахожусь на главной странице форума, и там цветная иконка, када я захожу в форум (где темы) и возвращаюсь назад на главную то Форум где было добавлено сообщение отмечается как прочитанное хотя я даже и не был во 2ой теме

Сообщение # 6 26.12.05 - 08:23:48

midav

M
гость

WR, Во во WR уже давно заметил что твой механизм не работает Не легче ли сделать как я написал

Сообщение # 7 26.12.05 - 13:31:19

ice-w-ind

I
гость

Может как midav, написал сделать и легче, но никак не лучше. У этого способа минус со шлагбаум размером Дело в том, что если сообщение было отправленно часиков в 11 вечера, то уже после полуночи скрипт посчитает его старым! Ето фигово! Я согласен с WR насчет time(). Нужно в файле с форумом(если реч идет о файлах) положить время модификации в формате Unix timestamp и потом через разницу во времени на заданную величину узнать есть новые сообщения или нет. Из плюсов - вы точно знаете что форум будет считаться обновленным заданный вами промежуток времени, можно этот промежуток легко изменить.

Сообщение # 8 26.12.05 - 16:59:47

midav

M
гость

ice-w-ind, Да уж, только тут на этом форуме эта система барохлит! И тем более можно сделать чтоб +1 день сообщение новым считалось

Сообщение # 9 27.12.05 - 00:51:46

Footers

F
гость

в данный момент сделал чтобы определялась иконка в темах...
осталось сделать чтоб на главной странице было....
ребят Вы хотя бы обьясните систему...
то что midav, написал не стал даже пробывать....ИХМО! т.к. вроде он превел пример просто иконки с темами. Темы я сделал совершенно подругому, использовал Куки, и определял из базы данных что и как по обновлению темы строчки last_post туда записываеться дата time()... ИХМО даже не заметил где WR, ее написал, но это изначально было понятно.

Главная задача
сделать на главной странице форума иконки.
По примеру:

Цитата:

я оставляю сообщение в двух темах, потом как бы я нахожусь на главной странице форума, и там цветная иконка, када я захожу в форум (где темы) и возвращаюсь назад на главную то Форум где было добавлено сообщение отмечается как прочитанное хотя я даже и не был во 2ой теме Главное чтоб было без лагов

Сообщение # 10 27.12.05 - 01:05:04

WR

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

Я не спорю что механизм, реализованый мною не совершенен.
Да, как только юзер защёл на любую страницу форума - начинается отсчёт времени Х, через которое все сообщения форума станут прочитанными. Если за это время юзер не успеет открыть все новые сообщения для просмотра - они станут старыми.
Но, логирование или отслеживание посещения юзером каждой темы (а их здесь уже 170) страшно реализовывать через КУКИ, через файл на сервере если реализовывать - это тоже приведёт к большому кол-ву "мусора". Ведь 133 юзера х 170 тем это 22 600 записей, даже если упростить эти файлы логирования всё равно они будут занимать не менее 1 Мегабайта! ( 22600 х 50 (символов для каждой темы каждого юзера) = 1 130 000 байт). А если учесть потери на кластерах то база форума вырастет до 3-5 Метров - и это только для небольшого проекта.

Ранее я изучал инфу по этому поводу и решил максимально просто реализовать данную функцию.

Теперь ответ насчёт инфы на главной: при добавлении сообщения в любой теме - время добавление в UNIX-формате записывается и в файле maindata.dat - для отображения нового сообщения.

Ещё: я хочу сделать кнопку: "найти все новые сообщения с моего последнего визита" - чтоб можно было легче отискивать новые сообщения.

Сообщение # 11 27.12.05 - 09:02:45

Footers

F
гость

WR, я не понимаю к чему ты!
я прошу просто рассказать смысл постарения и как легче и намного точнее реализовать то что я спрашиваю в теме....
ты рассказал бы что ты там вычитал....и поконкретней желательно

Сообщение # 12 27.12.05 - 16:11:41
функция foreach :Предыдущая темаСледующая тема: Удаление строк в файле
Страницы:  1  2  

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

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

Смайлы:

Ещё смайлы
Эмодзи
         
Защитный код: (введите цифры, которые на синем фоне)
Ответ на вопрос: (Какой сейчас год?)
   
WR-Счётчик
Powered by WR-Forum Professional © 2.3 UTF-8 beta версия