Double post merge / Склеивание подряд идущих сообщений
Модератор: Лора Палмер
Double post merge / Склеивание подряд идущих сообщений
Я правильно понимаю, что это на этом сайте можно высказывать замечания по поводу этого мода?
А замечания такие:
1. Дата слития сообщения указывается на языке пользователя. Лучше сделать добавлено спустя Х минут Х секунд.
2.Даже если проёт один год перед слитием сообщений, они всё равно склеиваются. Надо паставить ограничение на слитие - 24 часа.
3. Последний смайлик в сообщении к которому приклеивается другое сообщение превращается в код.
1. Дата слития сообщения указывается на языке пользователя. Лучше сделать добавлено спустя Х минут Х секунд.
2.Даже если проёт один год перед слитием сообщений, они всё равно склеиваются. Надо паставить ограничение на слитие - 24 часа.
3. Последний смайлик в сообщении к которому приклеивается другое сообщение превращается в код.
- mercury
- Старожил
- Сообщения: 1912
- Зарегистрирован: Пн авг 12, 2002 23:03
- Откуда: ни возьмись
- Контактная информация:
вообще нет. это форум, где этот хак внедрён. и в тест-полигоне можно его опробовать, причём только там.
мод писался исключительно для этого форума и в виде мода представлен "как есть". но. именно здесь в технической поддержке в этой теме его работу можно обсудить )
[off]добавлено Вс Мар 21, 2004 17:17:[/off]
ra,
1.
2. на этом форуме стоит ограничение: 18 часов. в моде этого нету. и не знаю если будет.. )
3. есть такое дело! опять же, как победить хз.
мод писался исключительно для этого форума и в виде мода представлен "как есть". но. именно здесь в технической поддержке в этой теме его работу можно обсудить )
[off]добавлено Вс Мар 21, 2004 17:17:[/off]
ra,
1.
не знаю, как сделать, чтоб было на дефолтном языке форума, например..ra писал(а):Дата слития сообщения указывается на языке пользователя
а вот это, наверное, действительно лучше..ra писал(а):Лучше сделать добавлено спустя Х минут Х секунд
2. на этом форуме стоит ограничение: 18 часов. в моде этого нету. и не знаю если будет.. )
3. есть такое дело! опять же, как победить хз.
- mercury
- Старожил
- Сообщения: 1912
- Зарегистрирован: Пн авг 12, 2002 23:03
- Откуда: ни возьмись
- Контактная информация:
http://chat.md/mercury/phpbb/phpbb_doub ... _merge.rar
вот слегка апдэйтнул.
затронуты пункты 1 и 2.
п.3 всё ещё не знаю как победить. впрочем, и не смотрел особо ) не сейчас.
[off]добавлено спустя 1 минуту:[/off]
если прошло менее минуты то будет: [off]добавлено спустя Х секунд(у,ы)[/off]
если прошло менее часа то будет: [off]добавлено спустя Х минут(у,ы)[/off]
если прошло более часа то будет: [off]добавлено спустя Х час(а,ов) Х минут(у,ы)[/off]
если прошло более часа и не более минуты то будет: [off]добавлено спустя Х час(а,ов)[/off]
вот слегка апдэйтнул.
затронуты пункты 1 и 2.
п.3 всё ещё не знаю как победить. впрочем, и не смотрел особо ) не сейчас.
[off]добавлено спустя 1 минуту:[/off]
если прошло менее минуты то будет: [off]добавлено спустя Х секунд(у,ы)[/off]
если прошло менее часа то будет: [off]добавлено спустя Х минут(у,ы)[/off]
если прошло более часа то будет: [off]добавлено спустя Х час(а,ов) Х минут(у,ы)[/off]
если прошло более часа и не более минуты то будет: [off]добавлено спустя Х час(а,ов)[/off]
LexX, так серьёзно лучше было бы.
А вот небольшое дополнениe:
А вот небольшое дополнениe:
Код: Выделить всё
#
#-----[ OPEN ]------------------------------------------
#
posting.php
#
#-----[ FIND ]------------------------------------------
#
if ( $hours == 0 && $minutes == 0 )
{
#
#-----[ AFTER ADD ]-------------------------------------
#
if ( $seconds == 01 ) $seconds = 1;
if ( $seconds == 02 ) $seconds = 2;
if ( $seconds == 03 ) $seconds = 3;
if ( $seconds == 04 ) $seconds = 4;
if ( $seconds == 05 ) $seconds = 5;
if ( $seconds == 06 ) $seconds = 6;
if ( $seconds == 07 ) $seconds = 7;
if ( $seconds == 08 ) $seconds = 8;
if ( $seconds == 09 ) $seconds = 9;
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
- mercury
- Старожил
- Сообщения: 1912
- Зарегистрирован: Пн авг 12, 2002 23:03
- Откуда: ни возьмись
- Контактная информация:
ra,
заменить на:
именно таким образом сделано для минут и часов, если обратил внимание )
Siava,
у меня на локале тоже самое. прибавляется GMT. а тут всё ок, хотя настройки GMT те же.
[off]добавлено спустя 1 минуту:[/off]
ну вот
[off]добавлено спустя 3 минуты:[/off]
GMT не добавляется. так шта не в хаке дело.. получается..
ну это уже сам, сорри )ra писал(а):Cюда ещё не плохо вставить секунды.
всё гораздо проще: найти:Гость писал(а):А вот небольшое дополнениe
Код: Выделить всё
$seconds = date("s", $difference_time);
Код: Выделить всё
$seconds = intval(date("s", $difference_time));
Siava,
у меня на локале тоже самое. прибавляется GMT. а тут всё ок, хотя настройки GMT те же.
[off]добавлено спустя 1 минуту:[/off]
ну вот
[off]добавлено спустя 3 минуты:[/off]
GMT не добавляется. так шта не в хаке дело.. получается..
Mercuree, у меня добаляется два часа - решается $hours = $hours - 2;
Вопрос: как сделать, чтобы время добавления сообщения считалась не от времени сообщения, а от времени последнего добавления сообщения? Меняю ответ на решение проблемы с смайлами:
Вопрос: как сделать, чтобы время добавления сообщения считалась не от времени сообщения, а от времени последнего добавления сообщения? Меняю ответ на решение проблемы с смайлами:
Код: Выделить всё
#
#-----[ OPEN ]------------------------------------------
#
posting.php
#
#-----[ FIND ]------------------------------------------
#
$separator = '\n\n[size=9][color=#999999]Добавлено спустя';
#
#-----[ REPLACE WITH ]------------------------------------------
#
$separator = ' \n\n[size=9][color=#999999]Добавлено спустя';
#
#-----[ FIND ]------------------------------------------
#
$separator .= ':[/color][/size]\n\n';
#
#-----[ REPLACE WITH ]------------------------------------------
#
$separator .= ':[/color][/size]\n\n ';
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
- mercury
- Старожил
- Сообщения: 1912
- Зарегистрирован: Пн авг 12, 2002 23:03
- Откуда: ни возьмись
- Контактная информация:
ra,
за смайлы спасибо! )) затестим. вот как полезен свежий взгляд со стороны ))
[off]добавлено спустя 58 минут:[/off]
вот табе ответ в обмен на решение проблемы с смайлами ))
[off]добавлено спустя 6 минут:[/off]
вот теперь по идее дата/время последнего сообщения меняется на дату/время последнего добавления, чего, насколько я помню, давно желал Белый С.. правда, галка "непрочтённое сообщение" не ставится.
[off]добавлено спустя 1 минуту:[/off]
и время "спустя" уже соответственно отсчитывается от последнего добавления )
[off]добавлено спустя 18 минут:[/off]
ra,
если хочешь напиши своё имя/мыло, я тебя в графу "thanks to" запишу в моде )
я его апдэйтнул, до 1.0.1. надо бы апдэйтнуть и на phpbbhacks.com, шоб народ юзал новую версию
[off]добавлено спустя 35 минут:[/off]
2222
[off]добавлено спустя 36 секунд:[/off]
6666
э, конечно, решение... тока я бы посоветовал убедиться, что у _всех_ твоих пользователей прибавляется 2 часа, а не только у тебя. иначе у кого-то может появится "добавлено спустя -2 часа ", например.ra писал(а):Mercuree, у меня добаляется два часа - решается $hours = $hours - 2;
уух. с 5-ого раза понял, что ты имел ввиду )) я тоже об этом задумывался, но. дата/время последнего добавления у нас нигде не записывается (при добавлении), поэтому отталкиваться от этой метки мы не можем. можем разве что при каждом добавлении изменять время поста на текущее, что в принципе, весьма разумно. тогда каждое добавление будет отсчитываться от предыдущего.ra писал(а):как сделать, чтобы время добавления сообщения считалась не от времени сообщения, а от времени последнего добавления сообщения?
за смайлы спасибо! )) затестим. вот как полезен свежий взгляд со стороны ))
[off]добавлено спустя 58 минут:[/off]
вот табе ответ в обмен на решение проблемы с смайлами ))
Код: Выделить всё
#
#-----[ OPEN ]------------------------------------------
#
posting.php
#
#-----[ FIND ]------------------------------------------
#
$difference_time = time() - $post_id_last_row['post_time'];
#
#-----[ REPLACE WITH ]------------------------------------------
#
$current_time = time();
$difference_time = $current_time - $post_id_last_row['post_time'];
#
#-----[ FIND ]------------------------------------------
#
$message = ( !empty($last_message) && $last_message != $message ) ? $last_message . $separator . $message : $message;
#
#-----[ REPLACE WITH ]------------------------------------------
#
if ( !empty($last_message) )
{
$message = ( $last_message != $message ) ? $last_message . $separator . $message : $message;
$sql = "UPDATE " . POSTS_TABLE . " SET post_time = " . $current_time . " WHERE post_id = " . $post_id;
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not update last post time', '', __LINE__, __FILE__, $sql);
}
}
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
[off]добавлено спустя 6 минут:[/off]
вот теперь по идее дата/время последнего сообщения меняется на дату/время последнего добавления, чего, насколько я помню, давно желал Белый С.. правда, галка "непрочтённое сообщение" не ставится.
[off]добавлено спустя 1 минуту:[/off]
и время "спустя" уже соответственно отсчитывается от последнего добавления )
[off]добавлено спустя 18 минут:[/off]
ra,
если хочешь напиши своё имя/мыло, я тебя в графу "thanks to" запишу в моде )
я его апдэйтнул, до 1.0.1. надо бы апдэйтнуть и на phpbbhacks.com, шоб народ юзал новую версию
Код: Выделить всё
## Thanks to:
## Ra - for ideas and some code hints
[off]добавлено спустя 35 минут:[/off]
2222
[off]добавлено спустя 36 секунд:[/off]
6666
- Белый С.
- Завсегдатай
- Сообщения: 2526
- Зарегистрирован: Пн дек 22, 2003 22:43
- Откуда: Выведен из аксиом
- Контактная информация:
Поддерживаю Siava: и в самом деле, Мерк, почему многие символы (больше, меньше, .... румынская диакритика и прочие) часто (но не всегда) заменяются на их HTMLование?
Да, желал, а ещё я желал что-то (т.е. время последнего измененения/добавления в тему/форум) сделать в случае редактирования поста, но пока живу так.Mercuree писал(а):дата/время последнего сообщения меняется на дату/время последнего добавления
- mercury
- Старожил
- Сообщения: 1912
- Зарегистрирован: Пн авг 12, 2002 23:03
- Откуда: ни возьмись
- Контактная информация:
абздольц...Siava писал(а):&
http://chat.md/mercury/phpbb/phpbb_doub ... _merge.rar
сами разберетёсь?
Mercuree, копирайты:
Спасибо за дороботку мода!
Код: Выделить всё
## Thanks to:
## ra - for ideas and some code hints
## mailto: meos@mail.ru site: www.heatpc.net
тут такая хрень произойдет:
когда $mode = 'editpost'; он будет ругаться при посте, из-за $sql = "UPDATE " . POSTS_TABLE . " SET post_time = " . $current_time. " WHERE post_id = " . $post_id; из-за флуд-протектора, потому что 15 сек не прошло.
Те получается вот что: скрипт берет $currenttime = time(); потом он впихивает это значение на место post_time в базу, потом (не меняя $curent_time, ничего ведь не рефрешится) пытается проверить if (intval($row['last_post_time']) > 0 && ($current_time - intval($row['last_post_time'])) < intval($board_config['flood_interval'])) . Ессно эта проверка всегда провалится, потому что разницы нету никакой, а надо чтоб было больше чем $board_config['flood_interval']
надо чето делать, толи SET post_time = " . $current_time -15., толи хз, лишь бы курент_тиме не имело то же значение с пост_тиме, те было бы больше.
или радикально, в функциях, отрубить флуд-контрол для моде-едитпост.
когда $mode = 'editpost'; он будет ругаться при посте, из-за $sql = "UPDATE " . POSTS_TABLE . " SET post_time = " . $current_time. " WHERE post_id = " . $post_id; из-за флуд-протектора, потому что 15 сек не прошло.
Те получается вот что: скрипт берет $currenttime = time(); потом он впихивает это значение на место post_time в базу, потом (не меняя $curent_time, ничего ведь не рефрешится) пытается проверить if (intval($row['last_post_time']) > 0 && ($current_time - intval($row['last_post_time'])) < intval($board_config['flood_interval'])) . Ессно эта проверка всегда провалится, потому что разницы нету никакой, а надо чтоб было больше чем $board_config['flood_interval']
надо чето делать, толи SET post_time = " . $current_time -15., толи хз, лишь бы курент_тиме не имело то же значение с пост_тиме, те было бы больше.
или радикально, в функциях, отрубить флуд-контрол для моде-едитпост.