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

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

Вы не вошли.

Объявление

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

#1 2007-02-03 14:28:17

hcs
Гость

Private Message Mod - hcs edition

Навеяно многочисленными вопросами и просьбами касаемо  Службы личных сообщений в редакции нашего форума

Основано на оригинальном моде, добавлены фичи:
[listo]
[li] Управление службой из панели приватных сообщений[/li]
[li] Возможность использования поп-ап для оповещения[/li]
[li] Возможность отключить службу индивидуально[/li]
[li] Исправлена верстка[/li]
[li] Исправлен инсталлер[/li]
[li] Устранена мелкая дырка в защите[/li]
[/listo]
Какие еще особенности - не припомню.
Скачать: http://punbb.ru/downloads/PMS_Mod_hcs_edition.zip
Инструкция для новой установки внутри архива.

Особенности обновления с оригинального мода:
Специального инсталлера для апгрейда нет, правим бд ручками
добавляем в  messages 1 поле и в users еще 2 поля:

ALTER TABLE messages ADD popup TINYINT DEFAULT '1'
ALTER TABLE users ADD popup_enable TINYINT DEFAULT '1'
ALTER TABLE users ADD messages_enable TINYINT DEFAULT '1'

Файлы из архива переписываем в форум, удаляем инсталлер и пользуемся.

Архив обновлен

Редактировался hcs (2008-01-11 20:36:05)

#2 2007-02-03 14:46:28

TEXist
Гость

Re: Private Message Mod - hcs edition

hcs
Я правильно понял - чтобы добавить только возможность отключать почту нужно добавить только это:

ALTER TABLE users ADD messages_enable TINYINT DEFAULT '1'

И загрузить файл message_list.php с небольшой добавкой ленгвиджа?
Т.е. всплывающее окно мне не нужно к примеру, только возможность отключать почту.

#3 2007-02-03 14:52:21

hcs
Гость

Re: Private Message Mod - hcs edition

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

#4 2007-02-03 15:48:54

TEXist
Гость

Re: Private Message Mod - hcs edition

Получилось! smile
Но не сразу...
Нужно убрать из запроса в файле message_list.php:

$result = $db->query('SELECT popup_enable, messages_enable FROM '.$db->prefix.'users  WHERE id='. $pun_user['id']) or error('Unable to fetch user info for Private Messsage options', __FILE__, __LINE__, $db->error());

вот эту строчку:

popup_enable,

т.е. вот так должно быть:

$result = $db->query('SELECT messages_enable FROM '.$db->prefix.'users  WHERE id='. $pun_user['id']) or error('Unable to fetch user info for Private Messsage options', __FILE__, __LINE__, $db->error());

#5 2007-02-03 16:12:17

hcs
Гость

Re: Private Message Mod - hcs edition

Это запрос вообще лишний.
Сделал ревизию, убраны лишние запросы, лишние переменные и лишние условия, архив обновлён.

#6 2007-02-03 16:46:06

ViK Mefisto
Гость

Re: Private Message Mod - hcs edition

ставил апдгрейдом, при отправке сообщения вылазил еррор на отсутствие popup в messages. переименовал popup_enable в popup и всё заработало.
мод понра, спасибо!

Редактировался ViK Mefisto (2007-02-03 16:47:04)

#7 2007-02-03 16:54:17

hcs
Гость

Re: Private Message Mod - hcs edition

Спасибо, исправил.

#8 2007-02-05 12:09:51

mbg
Гость

Re: Private Message Mod - hcs edition

А подойдет ли этот мод для стандартной (не UTF8) версии форума?

#9 2007-02-05 12:19:08

hcs
Гость

Re: Private Message Mod - hcs edition

подойдет, только надо будет пересохранить русский языковой файл в win-1251

#10 2007-02-05 22:08:39

mbg
Гость

Re: Private Message Mod - hcs edition

Большое спасибо, все работает.

#11 2007-02-09 08:03:37

artoodetoo
Гость

Re: Private Message Mod - hcs edition

hcs, а можно пожелания высказывать? твоя редакция - это только багфикс или будешь развивать мод?
хочется иметь дополнительные папки, как в почтовых клиентах, для раскладывания писем по темам.

#12 2007-02-09 11:41:03

hcs
Гость

Re: Private Message Mod - hcs edition

Пожелания высказывать можно, если не я, то кто-то другой вполне возможно будет развивать.
Лично я бы сделал как тут ктото предлагал - переписку с одним из пользователей в виде топика...

#13 2007-02-09 13:16:24

ViK Mefisto
Гость

Re: Private Message Mod - hcs edition

Лично я бы сделал как тут ктото предлагал - переписку с одним из пользователей в виде топика...

хорошая мысль. готов проводить тест, если кто сделает)

Редактировался ViK Mefisto (2007-02-09 13:19:36)

#14 2007-02-09 13:21:52

artoodetoo
Гость

Re: Private Message Mod - hcs edition

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

это же перспективно: добавляешь плагин аттача - и он сразу есть в ЛС. поисковые метки, пометка как прочитанное и т.д. - все надо делается только один раз и сразу доступно в личных сообщениях smile

#15 2007-02-09 13:25:17

hcs
Гость

Re: Private Message Mod - hcs edition

Прикольно smile
Как быть с правами?

#16 2007-02-09 13:25:22

ViK Mefisto
Гость

Re: Private Message Mod - hcs edition

представь, почтовая папка реализуется как форум

то есть тут подойдёт твоя наработка с суперкатегориями?

#17 2007-02-09 14:47:05

artoodetoo
Гость

Re: Private Message Mod - hcs edition

hcs пишет:

Прикольно
Как быть с правами?

еще не придумал lol давайте помозгуем вместе как это красиво реализовать

ViK Mefisto пишет:

то есть тут подойдёт твоя наработка с суперкатегориями?

ага. суперкатегории - это вообще штука с большим потенциалом smile но это другая тема...
чтобы не засорять эту ветку - завожу отдельную тему Проект "Личные сообщения на базе топиков"

#18 2007-02-09 15:18:36

ViK Mefisto
Гость

Re: Private Message Mod - hcs edition

допустим, есть у нас суперкатегория ЛС, в ней на каждого юзера создаётся форум и в этом форуме лежат топики-переписки с другими юзерами. так оно в вашем представлении будет? если так то надо делать настройку прав доступа к форумам не по группам а по отдельным юзерам(давно о таком мечтаю))). ещё придётся решыть проблемму с выводом темы переписки в форума обоих переписчиков(держать 2 одинаковых темы жирно сильно будет). вроде пока все мысли по этой теме, если я что не так понял поправте.

едит: пока писал, тему создали новую. если несложно, перенесите пост туда.

Редактировался ViK Mefisto (2007-02-09 15:21:24)

#19 2007-02-09 18:14:34

SDTux
Гость

Re: Private Message Mod - hcs edition

Опа, ребята, так это очень в тему к моей идее про создание раздела для каждого пользователя с избранными темами!

#20 2007-02-19 00:21:38

KCEOH
Гость

Re: Private Message Mod - hcs edition

hcs, все б хорошо, но

[mono]Fatal error: require() [function.require]: Failed opening required './mod_modern_bbcode.php' .......\message_send.php on line 246[/mono]

smile
Или чтоб юзеры не пользовались другими BB-модами? wink

Еще замечание - когда ставишь или убираешь галку включения ЛС, то пишет - сообщение удалено, перенаправление. Пофиксить бы.

В целом - понравилось wink

#21 2007-02-20 18:39:22

Griffon
Гость

Re: Private Message Mod - hcs edition

Личка уже стала частью большинства форумов, пора бы настройки уже перенести в профиль, а то они как то болтаются отдельно hmm
У себя пока сделал так:

#
# [ OPEN ]
#

 profile.php

#
# [ FIND ]
#

// Load the profile.php language file
require PUN_ROOT.'lang/'.$pun_user['language'].'/profile.php';

#
# [ AFTER ADD ]
#

if(!isset($lang_pms))
    require PUN_ROOT.'lang/'.$pun_user['language'].'/pms.php';

#
# [ FIND ]
#

    // Validate input depending on section
    switch ($section)
    {

#
# [ AFTER ADD ]
#

        case 'private':
        {
            $form = extract_elements(array('messages_enable', 'popup_enable'));

            $form['messages_enable'] = (isset($form['messages_enable']) && intval($form['messages_enable']) > 0 ? 1 : 0);
            $form['popup_enable'] = (isset($form['popup_enable']) && intval($form['popup_enable']) > 0 ? 1 : 0);

            break;
        }


#
# [ FIND ]
#

?>
    <div class="clearer"></div>
</div>
<?php

    require PUN_ROOT.'footer.php';
}

#
# [ BEFORE ADD ]
#

    else if ($section == 'private')
    {
        $page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / '.$lang_common['Profile'];
        require PUN_ROOT.'header.php';

        generate_profile_menu('private');

?>
    <div class="blockform">
        <h2><span><?php echo pun_htmlspecialchars($user['username']).' - '.$lang_profile['Section private'] ?></span></h2>
        <div class="box">
            <form id="profile9" method="post" action="profile.php?section=private&amp;id=<?php echo $id ?>">
                <div><input type="hidden" name="form_sent" value="1" /></div>
                    <div class="inform">
                    <fieldset id="profileavatar">
                        <legend><?php echo $lang_pms['Options PM'] ?></legend>
                        <div class="infldset">
                            <div class="rbox">
                                <label><input type="checkbox" name="form[messages_enable]" value="1"<?php if ($pun_user['messages_enable'] == '1') echo ' checked="checked"' ?> /><?php echo $lang_pms['Use messages'] ?><br /></label>
                                <label><input type="checkbox" name="form[popup_enable]" value="1"<?php if ($pun_user['popup_enable'] == '1') echo ' checked="checked"' ?> /><?php echo $lang_pms['Use popup'] ?><br /></label>
                            </div>
                        </div>
                    </fieldset>
                </div>
                <p><input type="submit" name="update" value="<?php echo $lang_pms['Send'] ?>" /><?php echo $lang_pms['Instructions'] ?></p>
            </form>
        </div>
    </div>
<?php
    }

#
# [ OPEN ]
#

lang/ВАШ ЯЗЫК/profile.php

#
# [ IN THE END OF FILE FIND]
#

);

#
# [ ADD BEFORE ]
#
        ,
        // PM 2 Profile Stuff
        'Section private'        =>    'Сообщений'

#
# [ OPEN ]
#

include/functions.php

#
# [ FIND ]
#

                    <li<?php if ($page == 'privacy') echo ' class="isactive"'; ?>><a href="profile.php?section=privacy&amp;id=<?php echo $id ?>"><?php echo $lang_profile['Section privacy'] ?></a></li>

#
# [ AFTER ADD ]
#

                    <li<?php if ($page == 'private') echo ' class="isactive"'; ?>><a href="profile.php?section=private&amp;id=<?php echo $id ?>"><?php echo $lang_profile['Section private'] ?></a></li>

выдирать из message_list.php было лень, поэтому просто закоментировал в нём элемент меню:

#
# [ FIND ]
#

<li <?php if ($box == 2) echo 'class="isactive"' ?>><a href="message_list.php?box=2"><?php echo $lang_pms['Options'] ?></a></li>

#
# [ REPLACE WITH ]
#

                    <?php
                    /* <li <?php if ($box == 2) echo 'class="isactive"' ?>><a href="message_list.php?box=2"><?php echo $lang_pms['Options'] ?></a></li> */
                    ?>

#22 2007-03-24 02:31:24

Whisper
Гость

Re: Private Message Mod - hcs edition

скачал установил
появился вопрос: в русификации Личных сообщений используется кодировка UTF-8 ... как мне включить поддержку єтой кодировки или изменить на другую ?

подойдет, только надо будет пересохранить русский языковой файл в win-1251

собственно как ?

всё вопрос снимается нашел фишку перекодировки smile)

Редактировался Whisper (2007-03-24 02:37:31)

#23 2007-05-08 14:02:27

niikto
Гость

Re: Private Message Mod - hcs edition

пробую внедрить с сборку 0.0.5

пока что выдаёт:
Notice: Undefined index: o_pms_messages in s:\home\aa.z\nlf\include\pms\header_new_messages.php on line 38

наверху.


o_pms_messages и вправду нету ни в конфиге базе, ни в кеше, нигде... но при этом - в сборке HCS точно такой же файл header_new_messages.php и тоже ничего подобного в конфиге. в чем дело? - там же не выдаёт эту ошибку?

вот 38-я строка:

        // Check if the inbox is full
        if($pun_config['o_pms_messages'] != 0 && $pun_user['g_id'] > PUN_GUEST){
            $result = $db->query('SELECT count(*) FROM '.$db->prefix.'messages WHERE owner='.$pun_user['id']) or error('Unable to test if the message-box is full', __FILE__, __LINE__, $db->error());
            list($count) = $db->fetch_row($result);

Добавлено спустя     25 минут   19 секунд:
.
.
.
и когда залазишь в  настройки:

http://nlf.aa.z/message_list.php?box=2#

вместо футера вылазит:

Notice: Undefined variable: new_messages in s:\home\aa.z\nlf\include\pms\footer_links.php on line 12
[Денвер: показать возможную причину ошибки]
Notice: Undefined variable: messages_exist in s:\home\aa.z\nlf\include\pms\footer_links.php on line 14

я поправил все ссылки на header и footer - потому что они в сборке 005 перенесены в include

но вот такие кояски остались sad

#24 2007-05-08 15:23:42

hcs
Гость

Re: Private Message Mod - hcs edition

это ошибка. o_pms_messages это какой-то странный гибрид, наверное он должен был мутировать в pms_messages в таблице users, чтобы хранить общее количество непрочтенных приватных сообщений, чтобы избавиться от следующего после проверки запроса.
Проверка тоже лишняя, строку :

if($pun_config['o_pms_messages'] != 0 && $pun_user['g_id'] > PUN_GUEST){

можно убрать. закрывающую скобку тоже надо убрать, она идет несколькими строками ниже, после этой строки:

$tpl_temp .= "\n\t\t\t\t".'<ul><li class="pmlink"><strong><a href="message_list.php">'.$lang_pms['Full inbox'].'</a></strong></li></ul>';

niikto, ну ты просто молодец!

#25 2007-05-09 05:08:33

niikto
Гость

Re: Private Message Mod - hcs edition

hcs рад стараться!

остались только
Notice: Undefined variable: new_messages in s:\home\aa.z\nlf\include\pms\footer_links.php on line 12
[Денвер: показать возможную причину ошибки]
Notice: Undefined variable: messages_exist in s:\home\aa.z\nlf\include\pms\footer_links.php on line 14

как это решить?

и вообще я до сих пор не понял - в сборке 53 ведь ничего не закоментировано - так почему ТАМ эта ошибка не вылазит? и первая - тоже почему не вылазит?

Подвал доски

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