![]() |
Показаны 82 сообщений на этой странице |
Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- Хаки от Netadmin или "Сделай сам" (http://netadmin.ws/forum/forumdisplay.php?forumid=65)
-- Склейка сообщений (http://netadmin.ws/forum/showthread.php?threadid=1147)
Склейка сообщений
на форуме Ð_у-Борд и IXBT есть такая фишка:
если я в какой-нить теме напишу одно сообщение сразу после другого, то появится не 2 сообщения, а одно и в первом будет написано: "Добавлено".
Ð_то снимается только после 2х часов с момента последнего сообщение...
Может кто-нить знает такой хак? или может написать?
так что? у кого-нить есть?
Если нет, может те у кого есть доступ к vbulletin.org предложат этот хак там!
Такого хака нету я так понял
что касается RU-Board - его сами разработали
а на хоботе - аналогично.
__________________
"Gott weiss, ich will kein Engel sein!"
А мне кажется что я его видел где-то
Надо на булетен.орг посмотреть у кого доступ есть!
__________________
Интернет форум для всех Ты тут еще не был? ...
рейтинг форумов Админы форумов - сюда!!!
Total
ну как?
что-то я там такого не видел. я искл по stick может другие слова для поиска посоветуете.
__________________
Всегда есть решение.
вполне возможно, что его нет, тогда предложи плиз местным (vbulletin.org) "хакерам" написать, хак чрезвычайно полезен, я думаю, что когда они увидят сразу напишут
скажи как это им объснить по англицки.
__________________
Всегда есть решение.
Hi!
On one board I have seen an interesting thing:
If I write a new message in one topic after another one (which is also mine), there will be only one message and between my first and second posts there will be written: "Added:"
This thing doesn't work only when my next post is made after 2 hours.
I tried to find something like this, but didn't find anything.
Maybe somebody will write this hack?
ок спросил
__________________
Всегда есть решение.
спасибо, я думаю, что если сделают, то многим пригодится!
polo
ну как, ответили? 
Пока голяк, либо не поняли лио игнорируют.
__________________
Всегда есть решение.
А может сами попробуем написать?
__________________
No pity, no mercy, no regret.
Думаю здесь совсе не сложно написать, всего то один файл редактировать newreply.php
__________________
Всегда есть решение.
Другая проблема это время, я думал что можно сделать так: если пользователь отвечает на сообщение то проверяется предыдцщее и если это его же сообщение то текущее добавляется к предыдущему, ну там соотаетственно надпись что добавили. А вот время когда добавили не предвидется показывать.
__________________
Всегда есть решение.
и еще не забывать не плюсовать количество сообщений.
quote:
А вот время когда добавили не предвидется показывать.
quote:
и еще не забывать не плюсовать количество сообщений.
__________________
Всегда есть решение.
polo
может попробуй поднять тему на vbulletin.org?
Народ попробуйте это
Итак принимайте: хак, который позволяет объединять сообщения в одно, если пользователь отправляет их в одну и ту же тему в течений x секунд времени, и при этом является последним автором в теме, короче Ð_у-Борду смотрите...
Написано за короткий промежуток времени, тестилось только на локале, выводы делайте сами -> хотите устанавливайте, хотите нет.
Итак делаем следующее изменение в файле newreply.php:
Ищем сей фрагмент
$DB_site->query("INSERT INTO post (postid,threadid,title,username,userid,dateline,at
tachmentid,pagetext,allowsmilie,showsignature,ipad
dress,iconid,visible) VALUES(NULL,'$threadid','".addslashes(htmlspecialchars($title))."','".addslashes($postusername)."','$bbuserinfo[userid]','".time()."','$attachmentid','".addslashes($message)." ','$allowsmilie','$signature','$ipaddress','$iconi
d','$visible')");
<... Вырезано цензурой
....>
И оканчивая строками:
$DB_site->query("UPDATE thread SET lastpost='".time()."',replycount=replycount+1,lastposter='".addslashes($postusername)."' WHERE threadid='$threadid'");
}
}
Так вот этот фрагмент ремим на случай неудачи, т.е. ставим в начале такую фигулину - /* , а в конце - */
Теперь осталось после всего этого закомментированного блока вставить следующий, заменяющий его, код:
############# Begin merge posts hack by Vanish ######################
$last_post = $DB_site->query_first("SELECT * FROM post WHERE userid='$bbuserinfo[userid]' AND threadid='$threadid' ORDER BY dateline DESC LIMIT 1 ");
$last_poster = $DB_site->query_first("SELECT userid FROM post WHERE threadid='$threadid' ORDER BY dateline DESC LIMIT 1");
$time_interval = ((date("H",time()))*3600 + (date("i",time()))*60 + date("s",time()))-((date("H",$last_post[dateline]))*3600 + (date("i",$last_post[dateline]))*60 + date("s",$last_post[dateline]));
/*
Alarm/Warning/Внимание: переменная $time_interval контролирет интарвал в течении котрого посты будут склеиваться (в секундах).
Пример: если $time_interval>300, то после 5-ти (60*5 мин = 300 сек) минут посты не будут склеиваться.
При изменении $time_interval, НЕ ЗАБУДЬТЕ в Строке №1 изменить равенство $time_interval=400 на $time_interval=<ВАШЕ ВÐ_ЕМЯ>+100, где <ВАШЕ ВÐ_ЕМЯ> -
Ваш новый временной интервал.
*/
if ($time_interval<0) {$time_interval=400;} ### Строка №1
if ($time_interval>300 || !($threadid == $last_post[threadid]) || !($last_poster[userid] == $last_post[userid])) {
$DB_site->query("INSERT INTO post (postid,threadid,title,username,userid,dateline,at
tachmentid,pagetext,allowsmilie,showsignature,ipad
dress,iconid,visible) VALUES (NULL,'$threadid','".addslashes(htmlspecialchars($title))."','".addslashes($postusername)."','$bbuserinfo[userid]','".time()."','$attachmentid','".addslashes($message)." ','$allowsmilie','$signature','$ipaddress','$iconi
d','$visible')");
$postid=$DB_site->insert_id();
$postadded=0;
} else {
$DB_site->query("UPDATE post SET pagetext = '". addslashes(htmlspecialchars($last_post[pagetext]))
."
[separator]Добавлено:
Тема: ".addslashes(htmlspecialchars($title))."
".addslashes(htmlspecialchars($message))."[/separator]', dateline = '".time()."' WHERE postid='$last_post[postid]'");
$postadded=1;
$threadid=$last_post[threadid];
$postid=$last_post[postid];
}
indexpost($postid,0);
if ($visible) {
if ($threadinfo[replycount]%10==0) {
$replies=$DB_site->query_first("SELECT COUNT(*)-1 AS replies FROM post WHERE threadid='$threadid'");
$DB_site->query("UPDATE thread SET lastpost='".time()."',replycount='$replies[replies]',lastposter='".addslashes($postusername)."' WHERE threadid='$threadid'");
} else {
if (!($postadded)) {
$DB_site->query("UPDATE thread SET lastpost='".time()."',replycount=replycount+1,lastposter='".addslashes($postusername)."' WHERE threadid='$threadid'");
} else {
$DB_site->query("UPDATE thread SET lastpost='".time()."',lastposter='".addslashes($postusername)."' WHERE threadid='$threadid'");
}
}
}
############# End merge posts hack by Vanish ######################
И еще один ньюанс, нужно через AdminCP создать Custom vB Code с названием: separator и телом: <hr>{param}
В принципе, если Вы не хотите чтобы склеенные сообщения разделялись горизонтальной полосой, то этот ньюанс можно и не учитывать, но в этом случае в коде хака удалите тэги [separator] и [/separator].
Пока вроде все, возможны глюки, пишите сюда и мылом, тогда они будут по возможности фикситься.
З.Ы. Да еще на случай если чего-то с инструкциями напортачил
прикрепляю этот файл с изменениями. По крайней мере на локале он у меня работал 
_____________________________________________
Best regards to all from Vanish aka Jesus...
Склейка происходит в течении 5 минут. Там еще гифак есть, как оно работало у меня...
__________________
No pity, no mercy, no regret.
quote:так в том то и дело, что счетчик сообщений не считается, тема вверх не поднимается. (на RU.Board так по крайней мере, да и на хоботе наверное тоже). хак для ib-2 может кому дать, принцип посмотрите...
и еще не забывать не плюсовать количество сообщений.
__________________
"Gott weiss, ich will kein Engel sein!"
В общем принцип такой: Перед помещением сообщения в базу получить последнее сообщение в данной теме, сравнить ID полльзователя который отвечает в теме если ид пользователя совпадает с ид пользователя который поместил последенее сообщение сравнить текщее время со временем последнего сообщения если оно не больше 2 часов то к тексту последнего сообщения добавить текст добавляемого сообщения с приставкой "юзер добавил", обновить запись добавив новый текст. Также стоит проверить если юзер не аноним, помоему у анонима ид=0. В общем это все вольется в 10 строк кода. Итак кто возьмется?
__________________
Всегда есть решение.
взглянул щас на код, там еще нужно определится что делать в случае если пользователь прикрепит новый файл и в предыдущем сообщение уже есть файл можно конечно заменить текущий но если у пользователя нет таких намерений? Предлагаю в случае наличия файла добавлять новый ответ. Также следует учесть опции пользователя как подписка на тему, в случае если ее нет и пользователь выбрал эту опцию добавить подписку и при отключенной опции в случае ее наличия не удалять, с подписью думаю следует поступить также. Еще думаю следует обратить внимание на обновление рейтинга.
__________________
Всегда есть решение.
polo , мне кажется, ты перебрал в последнем посте с наворотами
может проще сделать нечто вроде выдергивание текста в какую нить переменную, и к ней приплюсовывать новое, потом эту переменную обратно вмещать, оставляя все настройки на месте. типа $inpost_OLD = $inpost_OLD . "$inpost\n";
__________________
"Gott weiss, ich will kein Engel sein!"
то что ты говоришь так и будет, но с наваротами я совсем не перебрал, это все и без того чтобы что-то добавлять будет делаться кроме голоса на тему, это действительно надо добавить, короче я начал делать, через часик можно будет посмотреть бету.
__________________
Всегда есть решение.
Конечный хак для склейки сообщений
Ð_тот хак склеивает сообщения пользователя если он пишит два и более раз подряд в одну и ту же тему в интервале времени менее двух часов.
Особенности:
Время последнего сообщения не обновляется.
Сообщения склеиваются только в том случае если пользователь не отвечает прикрепляя какой либо файл.
Обновляется поисковой индекс.
Показывается дата и время когда пользователь добавил сообщение которое полностью совместимо с поисовыми настройками форума и пользователей.
Посетите эту тему для загрузки хака и дополнительной информации.
__________________
Всегда есть решение.
Jesus Я что-то пропустил твой ответ с хаком. Мне что-то показалось что ты там обновляешь счетчики.
__________________
Всегда есть решение.
Jesus
да, все правильно, только счетчик увеличивается, может исправишь?
polo
а вот твое не пашет 
пишет
Parse error: parse error on line 220
вот, что в этой строке:
$timediffÂ_=Â_time()Â_-Â_$laspost[dateline];
ок теперь работатет, я в форме ответа его чистил от комментариев видать что-то удалил не то.
__________________
Всегда есть решение.
все равно не пашет 
может ты выложишь свой newreply.php
выдает ошибку в этой строке:
$lastpost=$DB_site->query_first("SELECTÂ_post.*Â_Â_FROMÂ_post,thread
Ну теперь уж ты что-то не правильно делаешь, потомц-что я вточности скопировал код отсюда и у меня все пашит.
__________________
Всегда есть решение.
не могу же я неправильно делать пасте после куска кода, который встречается только один раз 
вот мой файл newreply.php, посмотри плиз, в чем трабл 
я там ошибок не вижу, и что он тебе пишит в ошибке?
__________________
Всегда есть решение.
Parse error: parse error in on line 215
вот эта строка:
$timediffÂ_=Â_time()Â_-Â_$laspost[dateline];
в этой строке нет ошибки.
Я не знаю что ты там натворил и почему тебе дает ошибку, ноя установил на свеже поставленный форум этот код в точности скопировав его отсюда, и он у меня сразу зарабртал. На всякий случай выкладываю newreply.php
__________________
Всегда есть решение.
твое работает. большое спасибо!
а на этом форуме это уже есть?
нет еще не ставил, надо поставить, хочу еще немного доработать.
__________________
Всегда есть решение.
polo
А этот хак уже зарелизен ? 
__________________
Интернет форум для всех Ты тут еще не был? ...
рейтинг форумов Админы форумов - сюда!!!
polo
только дату сообщения и все...
__________________
No pity, no mercy, no regret.
ну так если ты дату обновляешь то сообщение соответсвенно подымается вверх, что в принцепе не правильно.
__________________
Всегда есть решение.
Оказывается там были некоторые ошибки, вернее опечатки в именнах переменных, так что хак не работал как надо, теперь профиксил, всем кто ставил этот хак обяхательно обновите, код находится на старом месте (несколько постов выше).
__________________
Всегда есть решение.
вторая страница тут почемуто не открывается, может я что-то там упустил.
вопрос чтобы сделать склейку сообщенийдостаточно просто изменит newreply.php или надо еще что-либо сделать?
__________________
Не верь глазам своим!!!
всмысле вторая страница не открывается?
только newreply.php
__________________
Всегда есть решение.
Изменено
Каунтеры больше не меняются, изменяется только каунтер кол-ва сообщений юзера. Тема вверх не поднимается. Ну и прочие навороты (подписи, аттачи, подписки и т.д.)
Сейчас идет попытка создания возможности склейки сообщеший с двумя прикрепленными файлами. Не знаю получится или нет, т.к. нет более менее нормальной идеи записи ид аттачментов, пока в голове есть мысль создания в таблице постов еще одного поля, которое указывало бы на кол-во прикрепленных файлов, а ид аттачментов к примеру суммировать, что из этого получится не знаю, еще не пробовал, однако жду каких нибудь других свежих мыслей...
Файл прикрепляю, поставлен на свежую vB...
_____________________________________________
Best regards to all from Vanish aka Jesus...
quote:
всмысле вторая страница не открывается?
__________________
Не верь глазам своим!!!
polo
попробовал твой вариант, все работает так как хотелось бы
__________________
Не верь глазам своим!!!
Народ есле кому нада хак склейки для Wbb могу нашептать
это ты написал для того чтобы 5-ое сообщение набрать 
__________________
Всегда есть решение.
polo
Да нет просто тема про склейку вот и решил ниписать
так а что за Wbb тогда?
__________________
Всегда есть решение.
polo WoltLab Burning Board как выгледит можно посмотреть в моём профиле
гм, вот это вб клон конкретный, более того там наверное половина кода из вб взято.
Давай свой хак, посмотрим.
__________________
Всегда есть решение.
нет толку с него мало, поэтому удаляем.
__________________
Всегда есть решение.
вот у меня такой трабл, вот у меня нету горизонтальой линии((
вот в некоторыз случаях с разными newreply.php он либо выдает токое [separator].......[/separator]? ну вот а в лучшем случаее вообще не ставит этот разделитель
Vanish
так тут и не надо, чтобы количество сообщений юзера увеличивалось.
поло, а как мне сделать чтоб писал так:
Добавил 25.06.02 13:00
Тоесть мне надо время и дату еще.. какие переменные надо в пхп вставлять, я пробовал из постбита брать - не работает 
__________________
Интернет форум для всех Ты тут еще не был? ...
рейтинг форумов Админы форумов - сюда!!!
я нарочно время не сделал, так как это будет сбивать с толку только.
__________________
Всегда есть решение.
polo
Гыгы.... а мне надо. Допиши плиз что надо поменять, очень прошу
__________________
Интернет форум для всех Ты тут еще не был? ...
рейтинг форумов Админы форумов - сюда!!!
Total это будет глючить:
во первых какое время ты туда будешь вставлять? К примеру будешь брать ты время 0, юзер дополняет мессагу, туда пишиться время и если у юзера стоит +3 то новая мессага получится на 3 часа раньше чем первая. Далее заходит другой юзер у которого оффсет +8 то у него вообще 8 часов разницы получится. Так что подумай нужно ли тебе это.
__________________
Всегда есть решение.
А можно сделать типа токого:
Добавлено через 15 мин:
__________________
Интернет форум для всех Ты тут еще не был? ...
рейтинг форумов Админы форумов - сюда!!!
можно, по позже сделаю.
__________________
Всегда есть решение.
обновил хак, теперь показывает и время. http://netadmin.ws/forum/showthread...d=7581#post7581
__________________
Всегда есть решение.
Хак склейки сообщений
Что-то там код искажается отсюда и ошибка, помещяю хак в отдельный файл.
Посетите эту тему для загрузки хака и дополнительной информации.
__________________
Всегда есть решение.
типа поставил и теперь не хотит файлы приаттачивать вообще, даже при создании сообщений....
возможно с каким другим хаком неконтачит?
__________________
yMC.ru - хомяк музыканта
руки, руки править надо
.
__________________
Всегда есть решение.
у меня чего-то не работает.
Хотя сделал все по инструкции: ничего вообще не изменилось.
Может кто-нибудь может скинуть уже поставленный хак для 226
polo
возможно... но вон народ говорит, что и тут глюки имеются...
__________________
yMC.ru - хомяк музыканта
MCTarakan
Посмотри вот это:
http://www.netadmin.ws/forum/showthread.php?s=&postid=19570#post19570
__________________
No pity, no mercy, no regret.
дата отображается следующим образом: 28-08-2002 в 22:33:31
как поправить?
madgreen добавил 28-08-2002 в 22:38:49:
хех, тут она у вас отобразилась корректно, а у меня(ставлю пробелы между цифрами) вот так:
madgreen добавил [date]1 0 3 0 5 6 6 8 1
1[/date]:
madgreen добавил 28-08-2002 в 22:43:32:
да, было бы неплохо сделать, если я добавляю еще одно сообщение, то в предыдущем появляется
madgreen еще добавил
madgreen добавил 28-08-2002 в 22:46:03:
да, кстати, когда добавляешь аттач к сообщению, то сообщение отображается отдельно.
а было бы тогда лучше: юзер добавил файл.
имхо...
__________________
Создаю сайт, посвященный мобильным телефонам. Если есть желающие присоединиться к моему труду, буду Вам очень признателен. Пишите в приват.
madgreen
что касается юзер добавил файл, сделать это можно, именно что ты пишешь, но вот с редактированием/удалением постов с такими атачами будет геморой.
__________________
No pity, no mercy, no regret.
Vanish
хм, тоже верно...да, лучше все-таки оставить это так как есть...
__________________
Создаю сайт, посвященный мобильным телефонам. Если есть желающие присоединиться к моему труду, буду Вам очень признателен. Пишите в приват.
madgreen,
quote:
хех, тут она у вас отобразилась корректно, а у меня(ставлю пробелы между цифрами) вот так:
madgreen добавил [date]1 0 3 0 5 6 6 8 1
1[/date]:
__________________
yMC.ru - хомяк музыканта
народ, стоит у меня 2.7.7 и ничего не работает, в чем дело?
mr_fox добавил 26-09-2002 в 07:24:25:
то есть 2.2.7 
хм... нада Поло дождаться...
__________________
yMC.ru - хомяк музыканта
quote:
28-08-2002 в 09:38:49:
а у меня у одного юзверя почему-то сообщения не склеиваются! 
__________________
yMC.ru - хомяк музыканта
На 2.2.9 не работает...
__________________
Следи за собой, будь осторожен...
dusha обновил форум до 229.
polo добавил 04-01-2003 в 13:47:39:
и как видишь все работает.
polo добавил 04-01-2003 в 13:48:47:
ничего в хаке не менял
__________________
Всегда есть решение.
polo
а файлы от версии 2.2.9 ставил? =)))
Vanish добавил 04-01-2003 в 16:39:01:
кстати про не работу склейки я уже слышал на других форумах.
__________________
No pity, no mercy, no regret.
polo, но тем не менее...
__________________
Следи за собой, будь осторожен...
quote:
а файлы от версии 2.2.9 ставил? =)))
__________________
Всегда есть решение.
| Формат времени GMT. Текущее время 09:26. | Показаны 82 сообщений на этой странице |
Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.