Username:
Password:
 Log me on automatically each visit
 
Aeroion.Ru
Форумы сервера Aeroion.Ru
Welcome

Aeroion.Ru Forum Index
  » Технические форумы
   » Поддержка и моды для phpBB2
    » Мод Forum notification - решение проблем
   на емайл приходит не очень хорошое сообщение
printer-friendly view
AuthorМод Forum notification - решение проблем
Sergey Gender:Male


Местный босс - администратор


Joined: 06 Jan 2005
Location: Оренбург
Posts: 1165
Last Visited: Yesterday at 14:46
Кредиты: 3714
Reputation: 48
Age: 41
Zodiac: Aquarius Pig

 !  Sergey @ Sat 04 Mar, 2006 15:20:
Эта тема имеет только исторический интерес. Переходим на Forum notification mod 2.0.19



При использовании оригинального мода на емайл пользователям приходит сообщение с bb-кодами. Другой баг (или фича) - при редактировании сообщения модератором пользователям, подписанным на эту тему/форум приходит сообщение о создании новой темы модератором с таким же названием.

Исправление этих багов.

Code:
#
#-----[ OPEN ]------------------------------------------
#
posting.php

#
#-----[ FIND ]------------------------------------------
#
            if ( $post_data['first_post'] )
            {
                // fetch topic title
                $sql = "SELECT topic_title, topic_id

#
#-----[ REPLACE WITH ]------------------------
#
            if ( $post_data['first_post']  && $mode != 'editpost')
            {
                // fetch topic title
                $sql = "SELECT topic_title, topic_id
#
#-----[ FIND ]------------------------------------------
#
            else
            {
                user_notification($mode, $post_data, $post_info['topic_title'], $forum_id, $topic_id, $post_id, $notify_user);
            }
#
#-----[ REPLACE WITH ]------------------------
#
            else  if ( $mode != 'editpost' )
            {
                user_notification($mode, $post_data, $post_info['topic_title'], $forum_id, $topic_id, $post_id, $notify_user);
            }

#
#-----[ OPEN ]------------------------------------------
#
includes/functions_post.php

#
#-----[ FIND ]------------------------------------------
# (в трех местах функции user_notification)
                    $post_text = (count($orig_word)) ? preg_replace($orig_word, $replacement_word, unprepare_message($post_data['message'])) : unprepare_message($post_data['message']);

#
#-----[ AFTER ADD ]------------------------------------------
# (в трех местах функции user_notification)
                    //(C) взято из Extended_PM_Notification MOD
                    //Clean up all BBcode UID
                    $post_text = trim(stripslashes($post_text));
                    $quote = $lang['Quote'];
                    $code = $lang['Code'];
                   
                    $bbcode_match = array('/\[quote\S*="\w+"\]/si', '/\[quote\S*\]/si', '/\[\/quote\S*\]/si', '/\[code[^\]]*\]/si', '/\[\/code[^\]]*\]/si', '/\[[^\]]*\]/si');
                    $bbcode_replace = array("\n$quote >>\n", "\n$quote >>\n","\n<< $quote\n", "\n$code >>\n","\n<< $code\n",'');
                    $post_text = preg_replace($bbcode_match, $bbcode_replace, $post_text);

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, слать емайлы, пытаться писать в приват. Спасибо за понимание.
Please do not PM, ICQ or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
Back to topOffline View user's profile Skype Name
Sergey Gender:Male


Местный босс - администратор


Joined: 06 Jan 2005
Location: Оренбург
Posts: 1165
Last Visited: Yesterday at 14:46
Кредиты: 3714
Reputation: 48
Age: 41
Zodiac: Aquarius Pig

Обновил чистку bbcode и оптимизировал код. Добавлена таблица для утилиты резервного копирования базы.

Code:
#
#-----[ OPEN ]------------------------------------------------
#
admin/admin_db_utilities.php

#
#-----[ FIND ]------------------------------------------------
# NOTE: Whole string is longer
#
            $tables = array('auth_access', 'banlist', 'categories',

#
#-----[ IN-LINE FIND ]----------------------------------------
#
);

#
#-----[ IN-LINE BEFORE, ADD ]----------------------------------
#
, 'forums_watch'

#
#-------[ OPEN ]---------
#
includes/function_post.php

#
#-------[ FIND ]---------
#
//
// Handle user notification on new post (including forum notification)
//

#
#-------[ BEFORE, ADD ]---------
#
//Clean up all BBcode UID
function clean_up_all_bbcode($post_text, $orig_word, $replacement_word)
{
    global $lang, $orig_word;
    $post_text = " " . $post_text;
    if (!$orig_word)
    {
        $orig_word = array();
        $replacement_word = array();
        obtain_word_list($orig_word, $replacement_word);
    }

    $post_text = (count($orig_word)) ? preg_replace($orig_word, $replacement_word, unprepare_message($post_text)) : unprepare_message($post_text);

    // First: If there isn't a "[" and a "]" in the message, don't bother.
    if (! (strpos($post_text, "[") && strpos($post_text, "]")) )
    {
        // Remove padding, return.
        $post_text = stripslashes(substr($post_text, 1));
        return $post_text;
    }

    //Extended_PM_Notification MOD
    //Clean up all BBcode UID
    $post_text = stripslashes($post_text);
    $quote = $lang['Quote'];
    $code = $lang['Code'];
    $wrote = $lang['wrote'];

    $post_text = preg_replace("/\[quote[\:1]*\:[0-9a-z]+=\"([^\"]*)\".*?\]/si", "\\1 $wrote >>\n", $post_text);
    $post_text = preg_replace("/\[quote[\:1]*\:[0-9a-z]+\]/si", "$quote >>", $post_text);
    $post_text = preg_replace("/\[\/quote[\:1]*\:[0-9a-z]+\]/si", "<< $quote", $post_text);
    $post_text = preg_replace("/\[code[\:1]*\:[0-9a-z]+\]/si",  "$code >>", $post_text);
    $post_text = preg_replace("/\[\/code[\:1]*\:[0-9a-z]+\]/si", "<< $code", $post_text);
    $post_text = preg_replace("/\[(([^\s\]]+\:[0-9a-z]+)|([\/]?url[^\s\]]*))\]/si", "", $post_text);
    $post_text = preg_replace("/&#([0-9+]*);/sie", "chr(\\1)", $post_text);
    // Remove our padding from the string..
    $post_text = substr($post_text, 1);
    return $post_text;
}

#
#-------[ FIND ]---------
#
        if ($mode == 'reply')
        {
            $sql = "SELECT ban_userid

#
#-------[ BEFORE, ADD ]---------
#
        $orig_word = array();
        $replacement_word = array();
        obtain_word_list($orig_word, $replacement_word);

#
#-------[ FIND ] (3-x)---------
#
                    $orig_word = array();
                    $replacement_word = array();
                    obtain_word_list($orig_word, $replacement_word);

#
#------[ REPLACE WITH ] (3-x) ------------
# (just remove the lines)
#


#
#-------[ FIND ] (3-x)---------
#
                    $post_text = (count($orig_word)) ? preg_replace($orig_word, $replacement_word, unprepare_message($post_data['message'])) : unprepare_message($post_data['message']);

#
#------[ REPLACE WITH ] (3-x) ------------
#
                    $post_text = clean_up_all_bbcode($post_data['message'], $orig_word, $replacement_word);

#
#-------[ FIND ] (3-x)---------
#
                            'TOPIC_TITLE' => $topic_title,

#
#------[ REPLACE WITH ] (3-x) ------------
#
                            'TOPIC_TITLE' => stripslashes($topic_title),

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, слать емайлы, пытаться писать в приват. Спасибо за понимание.
Please do not PM, ICQ or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
Back to topOffline View user's profile Skype Name
Siava Gender:Male

Партнер


Joined: 25 Dec 2005
Posts: 39
Last Visited: Tue 17 Apr, 2012 15:01
Кредиты: 486
Reputation: 4
Age: 30
Zodiac: Cancer Cock

Sergey, Потестил обновлённый код, но он у меня работает некорректно Sad
В уведомлениях нет курсива, подчёркнутого текста, пустые цитаты и код.
В старой версии (первое исправление) всё ок.



P.S.
Здорово ты форум наворотил Smile

Добавлено спустя 6 минут 32 секунды:

Стоп.. может это я не так делаю?
Второе обновление надо ставить после первого или вместо первого?
Back to topOffline View user's profile Visit poster's website
Sergey Gender:Male


Местный босс - администратор


Joined: 06 Jan 2005
Location: Оренбург
Posts: 1165
Last Visited: Yesterday at 14:46
Кредиты: 3714
Reputation: 48
Age: 41
Zodiac: Aquarius Pig

Ммм, глюк обнаружился. BBкод name [n] почему-то вычищается полностью вместе с содержимым. Будем выяснять, где косяк.
Остальное вроде нормально. Вот результат теста
Siava @ Вс 25 Дек, 2005 19:42 wrote: (View Post)
Show


Siava @ Вс 25 Дек, 2005 19:42 wrote: (View Post)
Show

Да, извиняюсь, забыл написать: второй код ставить вместо первого, в части includes/functions_post.php.

Кстати, функция clean_up_all_bbcode здесь представлена в урезанном варианте. Та, что работает на этом форуме, содержит код для очистки тэгов hide, mod. Если надо, выложу полную версию функции.

Protected Message:
Show

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, слать емайлы, пытаться писать в приват. Спасибо за понимание.
Please do not PM, ICQ or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
Back to topOffline View user's profile Skype Name
Sergey Gender:Male


Местный босс - администратор


Joined: 06 Jan 2005
Location: Оренбург
Posts: 1165
Last Visited: Yesterday at 14:46
Кредиты: 3714
Reputation: 48
Age: 41
Zodiac: Aquarius Pig

Siava, можешь побить меня канделябром (но, плиз, не сильно).
Код тестил в одних условиях, а на форуме другое получилось. Я исправил код.
Если еще не снес обновление, просто замени функцию clean_up_all_bbcode

--------
Offtopic:
Ну, и еще раз с НОВЫМ ГОДОМ!

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, слать емайлы, пытаться писать в приват. Спасибо за понимание.
Please do not PM, ICQ or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
Back to topOffline View user's profile Skype Name
Siava Gender:Male

Партнер


Joined: 25 Dec 2005
Posts: 39
Last Visited: Tue 17 Apr, 2012 15:01
Кредиты: 486
Reputation: 4
Age: 30
Zodiac: Cancer Cock

Sergey, всё супер! Только что руки дошли до этого фикса, так что ничего страшного Smile
Всё работает корректно. спасибо и с новым годом! Very Happy
Back to topOffline View user's profile Visit poster's website
Siava Gender:Male

Партнер


Joined: 25 Dec 2005
Posts: 39
Last Visited: Tue 17 Apr, 2012 15:01
Кредиты: 486
Reputation: 4
Age: 30
Zodiac: Cancer Cock

Sergey, заметил что когда в сообщениях встречаются слова в кавычках, то в тексте по email они выглядят так \"
Back to topOffline View user's profile Visit poster's website
Sergey Gender:Male


Местный босс - администратор


Joined: 06 Jan 2005
Location: Оренбург
Posts: 1165
Last Visited: Yesterday at 14:46
Кредиты: 3714
Reputation: 48
Age: 41
Zodiac: Aquarius Pig

Исправил.

Code:
#
#-------[ OPEN ]---------
#
includes/function_post.php

#
#------- [ FIND ] ---------
#
        // Remove padding, return.
        $post_text = substr($post_text, 1);

#
#------ [ REPLACE WITH ] ------------
#
        // Remove padding, return.
        $post_text = stripslashes(substr($post_text, 1));

#
#-------[FIND] (3-x)---------
#
                            'TOPIC_TITLE' => $topic_title,

#
#------[REPLACE WITH] (3-x) ------------
#
                            'TOPIC_TITLE' => stripslashes($topic_title),


[!!!]Код во втором посте уже пофиксенный[!!!]

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, слать емайлы, пытаться писать в приват. Спасибо за понимание.
Please do not PM, ICQ or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
Back to topOffline View user's profile Skype Name
Siava Gender:Male

Партнер


Joined: 25 Dec 2005
Posts: 39
Last Visited: Tue 17 Apr, 2012 15:01
Кредиты: 486
Reputation: 4
Age: 30
Zodiac: Cancer Cock

Sergey, Извиняюсь, но кажется мой глюк был ошибочный Shocked я так и не понял при каком условии пришло сообщение с \" , но поставив последний фикс вместо начала цитаты пришло вот это:
Code:
[quote:2c3b18f7ab="Siava"]

Дальше было всё корректно и с кавычками тоже.. я сделал откат до внесения последнего фикса и был удивлён, что письмо пришло нормальное и кавычки были тоже без \ Confused
Back to topOffline View user's profile Visit poster's website
Sergey Gender:Male


Местный босс - администратор


Joined: 06 Jan 2005
Location: Оренбург
Posts: 1165
Last Visited: Yesterday at 14:46
Кредиты: 3714
Reputation: 48
Age: 41
Zodiac: Aquarius Pig

Siava, дружище, спасибо за терпение. Это мой косяк. Embarassed
Мне не следовало убирать строку после //Clean up all BBcode UID и переносить ее в конец функции.
Code:
    $post_text = stripslashes($post_text);


Но фикс остается в силе. Во-первых, убираем слэши из темы сообщения. Во-вторых, письма со слэшами приходят, если нет bbcode в сообщении.

Code:
    // First: If there isn't a "[" and a "]" in the message, don't bother.
    if (! (strpos($post_text, "[") && strpos($post_text, "]")) )
    {
        // Remove padding, return.
        $post_text = stripslashes(substr($post_text, 1));
        return $post_text;
    }

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, слать емайлы, пытаться писать в приват. Спасибо за понимание.
Please do not PM, ICQ or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
Back to topOffline View user's profile Skype Name
Siava Gender:Male

Партнер


Joined: 25 Dec 2005
Posts: 39
Last Visited: Tue 17 Apr, 2012 15:01
Кредиты: 486
Reputation: 4
Age: 30
Zodiac: Cancer Cock

Sergey, теперь всё супер! Very Happy спасибо за фикс Smile

Добавлено спустя 1 минуту 28 секунд:

P.S.
фикс пофиксен Mr. Green
Back to topOffline This post has 1 review(s) View user's profile Visit poster's website
Sergey Gender:Male


Местный босс - администратор


Joined: 06 Jan 2005
Location: Оренбург
Posts: 1165
Last Visited: Yesterday at 14:46
Кредиты: 3714
Reputation: 48
Age: 41
Zodiac: Aquarius Pig

Еще один фикс для резервного копирования базы через админ панель форума
Code:
#
#-----[ OPEN ]------------------------------------------------
#
admin/admin_db_utilities.php

#
#-----[ FIND ]------------------------------------------------
# NOTE: Whole string is longer
#
            $tables = array('auth_access', 'banlist', 'categories',

#
#-----[ IN-LINE FIND ]----------------------------------------
#
);

#
#-----[ IN-LINE BEFORE, ADD ]----------------------------------
#
, 'forums_watch'

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, слать емайлы, пытаться писать в приват. Спасибо за понимание.
Please do not PM, ICQ or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
Back to topOffline View user's profile Skype Name
Locked: Sat 04 Mar, 2006 15:17 by Sergey
Sergey Gender:Male


Местный босс - администратор


Joined: 06 Jan 2005
Location: Оренбург
Posts: 1165
Last Visited: Yesterday at 14:46
Кредиты: 3714
Reputation: 48
Age: 41
Zodiac: Aquarius Pig

Тему закрываем по причине потери актуальности в связи с выходом релиза Forum notification mod 1.5.0.

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, слать емайлы, пытаться писать в приват. Спасибо за понимание.
Please do not PM, ICQ or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
Back to topOffline View user's profile Skype Name
Display posts from previous:   

Summary Rating For >> Мод Forum notification - решение проблем
Average Rating: 0.00 :: Min Rating: 0 :: Max Rating: 0 :: Number of Ratings: 0
Choose Rating: 1   2   3   4   5  

Similar Topics
Topic Author Forum Replies Last Post
No new posts Локализация и поддержка Prime Notify ...
Текст сообщения в уведомлении на емайл.
Sergey Поддержка и моды для phpBB3 0 Mon 19 Jan, 2009 18:15 View latest post
Sergey
No new posts [2.0.19] Forum notification mod
подписка на форумы, расширенные уведо...
Sergey Поддержка и моды для phpBB2 28 Wed 29 Feb, 2012 12:52 View latest post
vlad77
No new posts Мод Return on the previous message
редирект на предыдущее сообщение посл...
Sergey Поддержка и моды для phpBB2 1 Tue 17 Jan, 2006 18:54 View latest post
Sergey
No new posts Мод Birthday Add-on: Congratulation o...
поздравление с днем рождения на емайл...
Sergey Поддержка и моды для phpBB2 0 Fri 28 Oct, 2005 15:58 View latest post
Sergey
No new posts Last Forum Topic On Index vlad77 Архив модов для phpBB 2.0.x 0 Mon 23 Aug, 2010 20:23 View latest post
vlad77




All times are UTC + 3 Hours
All times are synchronized with the forum server time
Users browsing this topic:
Registered Users: None

Jump to:   
printer-friendly view
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum