Русское сообщество fluxbb

Быстрый лёгкий надёжный форумный движок

Вы не вошли.

Объявление

Вы можете внести свой вклад в содержание сайта. Жертвователи попадут в почетную группу "Спонсоры". Поддержать сайт.

#51 2006-03-27 17:17:46

Demo
Гость

Re: Мод склейки сообщений - Merge post

Ну так никто не может сделать чтобы при склейки сообщений топик начинался светиться как непрочитанный?

#52 2006-03-28 05:54:38

hcs
Гость

Re: Мод склейки сообщений - Merge post

Вобщем там надо обнавлять  topic.last_post  на время, когда было добавлено сообщение, тогда будет выглядеть как новое сообщение в теме. Нужно найти строку 240 и после нее добавить:

else
$db->query('UPDATE '.$db->prefix.'topics SET last_post='.$now.' WHERE id='.$tid) or error('Unable to update topic', __FILE__, __LINE__, $db->error());

Тоесть выглядеть должно вроде так:

        if (!$merged)
            // Update topic
            $db->query('UPDATE '.$db->prefix.'topics SET num_replies='.$num_replies.', last_post='.$now.', last_post_id='.$new_pid.', last_poster=\''.$db->escape($username).'\' WHERE id='.$tid) or error('Unable to update topic', __FILE__, __LINE__, $db->error());
        else
        $db->query('UPDATE '.$db->prefix.'topics SET last_post='.$now.' WHERE id='.$tid) or error('Unable to update topic', __FILE__, __LINE__, $db->error());

за правильность синтаксиса не ручаюсь, но обновить запись нужно именно так.

#53 2006-03-28 09:32:02

Demo
Гость

Re: Мод склейки сообщений - Merge post

hcs

Всё работает.
Спасибо.
smile

#54 2006-04-01 12:24:34

Demo
Гость

Re: Мод склейки сообщений - Merge post

Проблемка обнаружилась.

Когда это первый пост в теме и в неё добавляется новый пост этим же юзером - то выдаётся такая ошибка:

An error was encountered
Error: Unable to fetch subscription info.

Но при этом посты склеиваются - если обновить страницу.

#55 2006-04-01 16:33:03

hcs
Гость

Re: Мод склейки сообщений - Merge post

Было бы неплохо еще показать номер строки, потомучто обращение к subscription есть в нескольких местах.
Но вобщем можно попробовать это:
Найти в строке ~214

if ($pun_config['o_subscriptions'] == '1' && $subscribe)

заменить

if ($pun_config['o_subscriptions'] == '1' && $subscribe && !$merged)

#56 2006-04-01 22:06:54

Demo
Гость

Re: Мод склейки сообщений - Merge post

hcs

Не помогло (
Всё склеивается но переход происходит к указанной ошибке ((
А как сделать чтобы отменить показ этой ошибки? Чтобы переход происходил к посту?

#57 2006-04-02 03:10:18

Demo
Гость

Re: Мод склейки сообщений - Merge post

hcs

Или хотябы внести изменения в сам мод - типа если это первое сообщение в теме - то чтобы склейка не происходила...

#58 2006-04-02 05:51:52

hcs
Гость

Re: Мод склейки сообщений - Merge post

что-то я ничего не понимаю.
верни назад изменения, что бы стало

if ($pun_config['o_subscriptions'] == '1' && $subscribe)

и перед этим добавь

if (!$merged)

#59 2006-04-02 07:34:34

Demo
Гость

Re: Мод склейки сообщений - Merge post

Тоже не помогает (

Склеивается но параллельно на экран выводится ошибка.

#60 2006-04-02 07:49:53

hcs
Гость

Re: Мод склейки сообщений - Merge post

Включи дебаг и покажи номер строки и часть запроса, на котором валится ошибка.

#61 2006-04-02 08:15:30

Demo
Гость

Re: Мод склейки сообщений - Merge post

> Включи дебаг и покажи номер строки и часть запроса, на котором валится ошибка.

Ты бы подсказал как это сделать?..

#62 2006-04-02 10:19:57

hcs
Гость

Re: Мод склейки сообщений - Merge post

файл /include/common.php
найди строку

//define('PUN_DEBUG', 1);

убери символы //
должно получиться так:

define('PUN_DEBUG', 1);

после этого сообщение об ошибке будет содержать имя файла, номер строки и часть запроса в котором произошла ошибка.

Редактировался hcs (2006-04-02 10:21:32)

#63 2006-04-02 10:39:05

Demo
Гость

Re: Мод склейки сообщений - Merge post

Сенкс.

Вот что выдаёт:

An error was encountered
File: /home/y/ru/public_html/post.php
Line: 250

PunBB reported: Unable to fetch subscription info

Database reported: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND (fp.read_forum IS NULL OR fp.read_forum=1) AND s.topic_id=817 AND u.id!=2' at line 1 (Errno: 1064)

#64 2006-04-02 11:06:27

hcs
Гость

Re: Мод склейки сообщений - Merge post

я чегото не пойму, покажи как выглядят твои строки начиная с 240 по 250.

#65 2006-04-02 11:23:42

Demo
Гость

Re: Мод склейки сообщений - Merge post

С 238 по 255:

            update_search_index('post', $new_pid, $message);

            update_forum($cur_posting['id']);

            // Should we send out notifications?
            if ($pun_config['o_subscriptions'] == '1')
            {
                // Get the post time for the previous post in this topic
                $result = $db->query('SELECT posted FROM '.$db->prefix.'posts WHERE topic_id='.$tid.' ORDER BY id DESC LIMIT 1, 1') or error('Unable to fetch post info', __FILE__, __LINE__, $db->error());
                $previous_post_time = $db->result($result);

                // Get any subscribed users that should be notified (banned users are excluded)
                $result = $db->query('SELECT u.id, u.email, u.notify_with_post, u.language FROM '.$db->prefix.'users AS u INNER JOIN '.$db->prefix.'subscriptions AS s ON u.id=s.user_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id='.$cur_posting['id'].' AND fp.group_id=u.group_id) LEFT JOIN '.$db->prefix.'online AS o ON u.id=o.user_id LEFT JOIN '.$db->prefix.'bans AS b ON u.username=b.username WHERE b.username IS NULL AND COALESCE(o.logged, u.last_visit)>'.$previous_post_time.' AND (fp.read_forum IS NULL OR fp.read_forum=1) AND s.topic_id='.$tid.' AND u.id!='.intval($pun_user['id'])) or error('Unable to fetch subscription info', __FILE__, __LINE__, $db->error());
                if ($db->num_rows($result))
                {
                    require_once PUN_ROOT.'include/email.php';

                    $notification_emails = array();

#66 2006-04-02 14:59:36

hcs
Гость

Re: Мод склейки сообщений - Merge post

в четвертой строке кода, который ты показал

if ($pun_config['o_subscriptions'] == '1')

замени на

if ($pun_config['o_subscriptions'] == '1' && !$merged)

ну как?

#67 2006-04-02 15:11:28

Demo
Гость

Re: Мод склейки сообщений - Merge post

Сейчас полный порядок )))
Сенкс.

#68 2006-11-22 16:25:17

mnk
Гость

Re: Мод склейки сообщений - Merge post

А где лежит полностью исправленная версия мода. При установке с http://www.punres.org/files.php?pid=222 он ставиться с ошибкой

File: /var/www/html/forum/include/search_idx.php
Line: 149

PunBB reported: Unable to insert search index words

Database reported: Duplicate entry '' for key 1 (Errno: 1062)

#69 2006-11-22 16:47:33

hcs
Гость

Re: Мод склейки сообщений - Merge post

Хм, попробуй в таблице pun_search_words для поля  word выставить аттрибут BINARY

В исправленой версии почти ничего не изменилось, кроме того, что юзеры теперь не могут выбирать клеить им посты или нет.
Инструкция по апгрейду:

1. open post.php

2. find line:~ 147

//////begin hcs merge posts
    $merged=false;
    if (!$pun_user['is_guest'] && !$fid && isset($_POST['merge']) && $cur_posting['poster_id']!=NULL && $cur_posting['message']!=NULL && time()-$cur_posting['posted']<$pun_config['o_merge_timeout'])
    {    
            $message= pun_linebreaks(pun_trim("[color=#808080][i]".$lang_post['Added']." ".strftime("%c")." : [/i][/color]")) . "\n" . $message;
            $merged=true;
    }
///////end hcs merge posts

3. replace with

// MERGE POSTS BEGIN
    $merged=false;
    if (!$pun_user['is_guest'] && !$fid && (($is_admmod && intval($_POST['merge'])==1) || !$is_admmod) && $cur_posting['poster_id']!=NULL && $cur_posting['message']!=NULL && time()-$cur_posting['posted']<$pun_config['o_merge_timeout'])
    {
            $message= pun_linebreaks(pun_trim("[color=#808080][i]".$lang_post['Added']." ".strftime("%c")." : [/i][/color]")) . "\n" . $message;
            $merged=true;
    }
// MERGE POSTS END

4. FIND (line: ~ 557)

$checkboxes[] = '<label><input type="checkbox" name="merge" value="1" checked="checked" />'.$lang_post['Merge posts'];

5. ADD BEFORE

if ($is_admmod)

6. OPEN viewtopic.php

7. FIND (line: ~ 416)

<label><input type="checkbox" name="merge" value="1" checked="checked" /><?php echo $lang_post['Merge posts']; ?><br /></label>

8. REPLACE WITH

<?php if ($is_admmod) :
?>                                                <label><input type="checkbox" name="merge" value="1" checked="checked" /><?php echo $lang_post['Merge posts']; ?><br /></label>
<?php endif;
?>

Вот и все обновление. В админке интервал между постингом для юзеров поставить в 0.

#70 2006-11-22 17:08:00

mnk
Гость

Re: Мод склейки сообщений - Merge post

hcs пишет:

таблице pun_search_words для поля  word выставить аттрибут BINARY

Не понял. Тип поля BINARY не нашел. Можно командочку, для замены типа поля.

#71 2006-11-22 17:12:43

Slavik
Гость

Re: Мод склейки сообщений - Merge post

ALTER TABLE `header` CHANGE `id` `id` BINARY( 32 ) NOT NULL () (c) PhpMyAdmin

#72 2006-11-22 17:12:47

hcs
Гость

Re: Мод склейки сообщений - Merge post

Не тип поля а атрибут, тип varchar(20) аттрибут binary/
в пыхадмине заходишь в структуру таблицы, выбираешь поле, жмешь редактировать, появляется опции поля - тип, длина, атрибут, по умолчанию, дополнительно. в атрибуте выбираешь binary

#73 2006-11-22 17:19:50

mnk
Гость

Re: Мод склейки сообщений - Merge post

Сделал, что Вы написали - ошибка та же. Не знаю что и делать. Форум ставил с нуля 1.2.14, так что базы новые и свежие. Другого ничего не накатывал.
Если после ошибки назад и обновить то в топике -следующее

dfgdfgdfg

[color=#808080][i]Добавленный

[color=#808080][i]Добавленный

С BINARY  получилось так.

ALTER TABLE `forumsearch_words` MODIFY `word` varchar(20) BINARY;
hcs пишет:

В админке интервал между постингом для юзеров поставить в 0.

При таком тайминге, вообще посты сливаться не будут. А как тогда админу их слить?

Редактировался mnk (2006-11-22 17:52:45)

#74 2006-11-22 17:53:51

hcs
Гость

Re: Мод склейки сообщений - Merge post

Я имел в виду флуд-интервал, т.е. чтобы юзер мог оправлять следующий пост сразу же,а не по прошествии 5 минут как по дефолту.
Насчет ошибки я право даже не знаю, везде работает, а тут аномалия. Причем ошибка и способ решения взяты с оф.сайта - применить для этого поля varchar binary или varbinary
Но я тут увидел, что надпись "добавлено бла-бла-бла" добавляется к сообщению и индексируется. Это надо будет убрать.

Добавлено Wed Nov 22 20:57:06 2006 :
mnk,в версии 1.2.14 таблица уже правильная, с нужным аттрибутом. Советую ее удалить поставить заново, взяв запрос на ее создание из инсталлера.
Этот форум тоже 1.2.14, но все работает. Может ошибка при установке?

#75 2006-11-22 18:03:36

mnk
Гость

Re: Мод склейки сообщений - Merge post

Дак нужно запускать install_mod.php или нет? Или руками новую таблицу добавить?

Подвал доски

Под управлением FluxBB. Хостинг Hostens