ООО ЭкоЮнит
FAQSearchMemberlistUsergroupsFilesLog inRegisterГлавная
printer-friendly view
 
AuthorMessage
Sergey Gender:Male


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


Joined: 06 Jan 2005
Show/Hide

 !  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, Skype 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 Visit poster's website Skype Name
Sergey Gender:Male


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


Joined: 06 Jan 2005
Show/Hide

Обновил чистку 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, Skype 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 Visit poster's website Skype Name
Siava Gender:Male

Партнер


Joined: 25 Dec 2005
Show/Hide

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
Show/Hide

Ммм, глюк обнаружился. 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 Text:
Show

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, скайп, слать емайлы, пытаться писать в приват. Спасибо за понимание. Please do not PM, ICQ, Skype 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 Visit poster's website Skype Name
Sergey Gender:Male


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


Joined: 06 Jan 2005
Show/Hide

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

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

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, скайп, слать емайлы, пытаться писать в приват. Спасибо за понимание. Please do not PM, ICQ, Skype 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 Visit poster's website Skype Name
Siava Gender:Male

Партнер


Joined: 25 Dec 2005
Show/Hide

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

Партнер


Joined: 25 Dec 2005
Show/Hide

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


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


Joined: 06 Jan 2005
Show/Hide

Исправил.

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, Skype 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 Visit poster's website Skype Name
Siava Gender:Male

Партнер


Joined: 25 Dec 2005
Show/Hide

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
Show/Hide

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, Skype 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 Visit poster's website Skype Name
Siava Gender:Male

Партнер


Joined: 25 Dec 2005
Show/Hide

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
Show/Hide

Еще один фикс для резервного копирования базы через админ панель форума
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, Skype 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 Visit poster's website Skype Name
Locked: Sat 04 Mar, 2006 15:17 by Sergey
Sergey Gender:Male


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


Joined: 06 Jan 2005
Show/Hide

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

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, скайп, слать емайлы, пытаться писать в приват. Спасибо за понимание. Please do not PM, ICQ, Skype 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 Visit poster's website 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 - Put the message in notification emails
Текст сообщения в уведомлении на емайл.
Название мода: Prime Notify - Put the message in notification emails Автор мода: primehalo Описание мода: Позволяет включить тексты сообщений в уведомления на емайл об ответах, новых темах, личных сообщениях. Страница
Sergey Поддержка и моды для phpBB3 13 Fri 23 Aug, 2013 19:56 View latest post
Sergey
No new posts [2.0.19] Forum notification mod
подписка на форумы, расширенные уведомления об ответах
Описание мода: Мод расширяет функциональные возможности phpBB по уведомлению об ответах в теме, позволяет пользователям форума наблюдать за созданием новых тем. На страницу просмотра форума добавляется ссылка Подписаться
Sergey Поддержка и моды для phpBB2 29 Sat 02 Nov, 2013 08:58 View latest post
vlad77
No new posts Мод Birthday Add-on: Congratulation on email
поздравление с днем рождения на емайл пользователю
Описание мода: Мод позволяет высылать в автоматическом режиме поздравления на емайл пользователям, указавших день рождения в своем профиле. Сложность установки: Легко Время установки: ~5 минут Примечание автора :arrow:
Sergey Поддержка и моды для phpBB2 0 Fri 28 Oct, 2005 15:58 View latest post
Sergey
No new posts Super Who is online
Мод показывает в viewonline.php очень точные ссылки на местоположение пользователей.
Название мода: super whoisonline Автор: vlad77 Описание мода: Этот мод в viewonline.php показывает очень точные ссылки на местоположение пользователей. Ссылки не вычисляются форумом, а берутся из переменных окружения
vlad77 Поддержка и моды для phpBB2 4 Thu 26 Jul, 2018 20:02 View latest post
vlad77
No new posts Запрет регистрации аккаунтов с почтовыми адресами одного сервиса
дополнительная проверка адреса емайл перед регистрацией, phpbb2
Бэкпортированное для phpBB2 дополнение, позволяющее запретить регистрацию нескольких учетных записей с адресами емайл, принадлежащих одному и тому же почтовому сервису (Яндекс, NextMail). Исходный текст в теме [RC] AJAX
Sergey Поддержка и моды для phpBB2 0 Mon 26 May, 2014 19:22 View latest post
Sergey






All times are UTC + 3 hours
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
/a
Username:

Password:

Log me on automatically each visit
  Яндекс.Метрика
CrackerTracker © 2004 - 2018 CBACK.de