1

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

Скачал и установил прекрасное (Please log in or register to see this URL), добавляющее в профиль день рождения. Помимо этого, на главной странице появляются напоминания о предстоящих др, и всё довольно неплохо настраивается в админке.

Т.к. расширение было написано для 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

...и пустую пустую болванку страницы поиска со словами "Ваш поиск не дал результатов.". (Please log in or register to see this URL) можно наглядно посмотреть. Пока не могу сообразить в чем проблема, потому что в манифесте ни одного упоминания о затрагивании поиска. Вот собственно, то, что у меня сейчас установлено:

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

PunBB.Ru ☭

Сайт nobody

Поделиться

2

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

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

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

Поделиться

3

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

Да, уверен. Сейчас даже залил "чистый" search.php, хотя они и так побайтово совпадали. Косяк точно в этом расширении, я пробовал отключать все, и оставлять только его - проблема была. Как только отключал это расширение, возвращался нормальный поиск. Сейчас расширение отключил, можно (Please log in or register to see this URL), что поиск работает.

Я не пойму, как может код из вышеприведенного инсталлера ломать 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

Вот, полностью рабочая теперь версия расширения, если кому интересно: (Please log in or register to see this URL). Только без доп. поля в сообщении, в юзеринфо, как видимо изначально было задумано для FluxBB.

PunBB.Ru ☭

Сайт nobody

Поделиться

9

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

nobody пишет:

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

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

Поделиться

10

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

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

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

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

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

Post's attachments

punBB_1.3_birthdays_ext.rar 5.97 Кб, 90 скачиваний с 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 16:48 отредактировано Funt)

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

akirakeitai пишет:

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

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

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

Поделиться

16

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

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

THEMES

Сайт TheDenchik

Поделиться