1

Тема: [Релиз] Дни Рождения

Скачал и установил прекрасное расширение для FluxBB от Gizzmo, добавляющее в профиль день рождения. Помимо этого, на главной странице появляются напоминания о предстоящих др, и всё довольно неплохо настраивается в админке.

Т.к. расширение было написано для FluxBB, кое-что не работает, а именно - что-то должно отображаться на странице с сообщениями, но вместо этого выпадают варнинги. Я решил эту проблему просто - выкинул из манифеста блок, добавляющий новый функционал на страницу viewtopic.php.

Со временем была замечена еще одна проблема, которая пока не решена: при установленом расширении "birthdays" страница поиска не работает. Выдает:

Notice: Undefined variable: show_as in /var/www/vhosts/arsamania.ru/httpdocs/forum/search.php on line 110

Notice: Undefined variable: action in /var/www/vhosts/arsamania.ru/httpdocs/forum/search.php on line 119

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

Не пойму, откуда берется проблема, но т.к. расширение для FluxBB, вполне возможно где-то какая-то несовместимость или ошибка... Может кто-то сможет подсказать решение?

PunBB.Ru ☭

Сайт nobody

Поделиться

2

Re: [Релиз] Дни Рождения

Ты уверен что у тебя search.php не имеет изменений?

Захочешь — найдешь время, не захочешь — найдешь причину.

Поделиться

3

Re: [Релиз] Дни Рождения

Да, уверен. Сейчас даже залил "чистый" search.php, хотя они и так побайтово совпадали. Косяк точно в этом расширении, я пробовал отключать все, и оставлять только его - проблема была. Как только отключал это расширение, возвращался нормальный поиск. Сейчас расширение отключил, можно удостовериться, что поиск работает.

Я не пойму, как может код из вышеприведенного инсталлера ломать search.php. Мистика какая-то...

PunBB.Ru ☭

Сайт nobody

Поделиться

4

Re: [Релиз] Дни Рождения

В расширении используется хук co_common, код для этого хука исполняется при условии $forum_config['o_birthday_email'] != '0'
в котором устанавливается переменная $query, которая используется в search.php, и трактуется как неправильный результат поиска.
Добавь в конец хука co_common

 unset($query);

после

$forum_db->query_build($query) or error(__FILE__, __LINE__);
Захочешь — найдешь время, не захочешь — найдешь причину.

Поделиться

5

Re: [Релиз] Дни Рождения

Ммм... Сначала все работало отлично, а потом по мере добавления ДР в профилях поиск снова отвалился на каком-то этапе. Обидно, просто кошмар smile

PunBB.Ru ☭

Сайт nobody

Поделиться

6

Re: [Релиз] Дни Рождения

Действительно, опытным путем доказано, что этот код влияет на поломку поиска:

<!--
=================================================
    Start Email Hooks
=================================================
-->
        <hook id="co_common"><![CDATA[
            if($forum_config['o_birthday_email'] != '0')
            {
                $bdays = array();
                $now = getdate(time() + (($forum_user['timezone'] + $forum_user['dst']) * 3600));
                $query = array(
                    'SELECT'    => 'id, username, email, birthday, bday_email, language',
                    'FROM'        => 'users',
                    'WHERE'        => 'bday_email != \''.date('y').'\' AND birthday LIKE \'%-'.$now['mon'].'-'.$now['mday'].'\'',
                );
                $result = $forum_db->query_build($query) or error(__FILE__, __LINE__);

                if ($forum_db->num_rows($result))
                {
                    if (!defined('FORUM_EMAIL_FUNCTIONS_LOADED'))
                        require FORUM_ROOT.'include/email.php';

                    // loop though the users and send emails
                    while($cur_birthday = $forum_db->fetch_assoc($result))
                    {
                        if (file_exists($ext_info['path'].'/lang/'.$cur_birthday['language'].'.tpl'))
                        {
                            // Load the template
                            $mail_tpl = forum_trim(file_get_contents($ext_info['path'].'/lang/'.$cur_birthday['language'].'.tpl'));

                            // The first row contains the subject (it also starts with "Subject:")
                            $first_crlf = strpos($mail_tpl, "\n");
                            $mail_subject = forum_trim(substr($mail_tpl, 8, $first_crlf-8));
                            $mail_message = forum_trim(substr($mail_tpl, $first_crlf));

                            list($year) = explode('-', $cur_birthday['birthday']);
                            $mail_message = str_replace('<age>', (($year !=0)?date('Y')-$year:''), $mail_message);

                            $mail_message = str_replace('<username>', $cur_birthday['username'], $mail_message);
                            $mail_message = str_replace('<board_title>', $forum_config['o_board_title'], $mail_message);
                            $mail_message = str_replace('<board_mailer>', sprintf($lang_common['Forum mailer'], $forum_config['o_board_title']), $mail_message);

                            forum_mail($cur_birthday['email'], $mail_subject, $mail_message);

                            // set the user's last bday_email sent time
                            $query = array(
                                'UPDATE'    => 'users',
                                'SET'        => 'bday_email='.date('y'),
                                'WHERE'        => 'id='.$cur_birthday['id'],
                            );

                            $forum_db->query_build($query) or error(__FILE__, __LINE__);

                            $mail_subject = $mail_message = $year = null;
                        }
                    }
                }
            }
        ]]></hook>

Если убрать в админке галку об e-mail поздравлении, то поиск прекрасно работает, так что это не связано с тем, что пользователи добавили ДР в профили, как я думал раньше smile Однако, получается, что unset($query); не дает никакого эффекта. Пока оставил без уведомлений по e-mail, главное, что основной функционал расширения работает.

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

В приведенном выше коде нет unset($query);, потому что я взял код из своего первого сообщения. Это я так, на всякий случай smile

PunBB.Ru ☭

Сайт nobody

Поделиться

7

Re: [Релиз] Дни Рождения

перемести unset($query); до последней фигурной скобки.

Захочешь — найдешь время, не захочешь — найдешь причину.

Поделиться

8

Re: [Релиз] Дни Рождения

Да, спасибо, это помогло smile

Вот, полностью рабочая теперь версия расширения, если кому интересно: birthdays для 1.3. Только без доп. поля в сообщении, в юзеринфо, как видимо изначально было задумано для FluxBB.

PunBB.Ru ☭

Сайт nobody

Поделиться

9

Re: [Релиз] Дни Рождения

nobody пишет:

Вот, полностью рабочая теперь версия расширения

Перезалейте плиз, буду весьма признателен.

Поделиться

10

Re: [Релиз] Дни Рождения

Ноу проблемс, амиго smile

В прикреплённом файле полностью рабочая версия расширения, которая используется на моём форуме в данный момент.

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

вроде прикрепилось, но почему-то написано "файл не был скачан", хотя всё скачивается нормально.

Post's attachments

punBB_1.3_birthdays_ext.rar 5.97 Кб, 86 скачиваний с 2010-07-19 

You don't have the permssions to download the attachments of this post.
PunBB.Ru ☭

Сайт nobody

Поделиться

11

Re: [Релиз] Дни Рождения

nobody, спасибо, все работает. smile

Поделиться

12

Re: [Релиз] Дни Рождения

nobody, а на 1.4.2 работать будет без проблем?

Поделиться

13

Re: [Релиз] Дни Рождения

Возможно ли сделать это расширение для версии 1.4.2 за плату?

Поделиться

14

Re: [Релиз] Дни Рождения

nobody
http://smayly.ru/gallery/anime/PerfectWorldPig/cute.gifСпасибо! на 1.4.2 всё отлично работает!

Поделиться

15 (07.03.2015 04:48 отредактировано Funt)

Re: [Релиз] Дни Рождения

akirakeitai пишет:

nobody
http://smayly.ru/gallery/anime/PerfectWorldPig/cute.gifСпасибо! на 1.4.2 всё отлично работает!

У меня пишет, что данное расширение не совместимо с установленной версией форума.  Версия  форума1.4.2
Подскажите, как можно исправить.

Разобрался. Всем спасибо.

Поделиться

16

Re: [Релиз] Дни Рождения

Расширение хорошо)))

THEMES

Сайт TheDenchik

Поделиться