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