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

Смена Статуса темы

У вас есть идея для расширения функциональности phpBB 3.0.x? Расскажите о ней здесь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
delphix
phpBB 1.0.0
Сообщения: 9
Стаж: 18 лет

Смена Статуса темы

Сообщение delphix »

Нужна возможность смены статуса темы при коментировании её
на
1 - принята
2 - непринята
3 - в рассмотрении

те смысл какой:
1 есть тема которая поститься одной группой людей
2 вторая группа людей может ответить на тему и при этом сменить какую - то пометку (по умолчанию принята) или иконку темы или чтото в таком духе. но при этом вторая группа людей не имеет доступа к кнопке "изменить тему"

можно ли это сделать спасибо заранее, буду благодарен даже за просто подсказку что и как делать
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 20 лет 4 месяца
Откуда: Питер
Благодарил (а): 3 раза
Поблагодарили: 454 раза

Re: Смена Статуса темы

Сообщение Палыч »

Есть значки тем, их можно поменять (просто закачать другие файлы-изображения)
Значки меняются при редактировании первого сообщения в теме.
Второй группе даёте право редактирования.
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
delphix
phpBB 1.0.0
Сообщения: 9
Стаж: 18 лет

Re: Смена Статуса темы

Сообщение delphix »

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

"значок темы стандарный" "название темы" "этот статус" "количество ответов" ....

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

у меня не получается так как не знаю где связать определенный топик с ещё одним значением
Аватара пользователя
RedScorp
phpBB 1.4.1
Сообщения: 43
Стаж: 20 лет 11 месяцев
Откуда: г. Уральск

Re: Смена Статуса темы

Сообщение RedScorp »

delphix писал(а):1 - принята
2 - непринята
3 - в рассмотрении
Палыч писал(а):Есть значки тем, их можно поменять (просто закачать другие файлы-изображения)
Доброго времени суток. У меня модераторы попросили нечто подобное. Точнее объединить оба варианта.
Уважаемый Палыч, не подскажите как реализовать вот такое: пользователь заходит в ветку форума, выбирает "Модераторский раздел", там галочками отмечает нужные темы, потом внизу в пункте "быстрые действия" выбирает "Пометить тему как принята / Пометить тему как не принята / Пометить тему как в рассмотрении". Там ведь сейчас есть "Сделать важной / Сделать объявлением / ..." И результатом этого действия чтобы было - форум автоматически на выбранные темы проставлял определенные значки.

Заранее большое спасибо за советы/помощь.

PS. Пока писал пост, ребята спросили про доступ к такой функции (если реализуем) чтобы был не только у модераторов, но и определенной (существующей) группы пользователей.
Изображение Изображение
Аватара пользователя
RedScorp
phpBB 1.4.1
Сообщения: 43
Стаж: 20 лет 11 месяцев
Откуда: г. Уральск

Re: Смена Статуса темы

Сообщение RedScorp »

Кхмм, в общем кое что на скорую руку своял. Вот только для двух вариантов (а не трех). Есть подозрения что это решается еще проще и какими-нить стандартными функциями. Итак, прошу сильно ногами не бить, но поправьте меня если что:

images/icons/misc/ - Скопировать сюда свои иконки.

SQL
Добавить записи (обязательно проверьте свободные ID - icons_id, auth_option_id)

Код: Выделить всё

INSERT INTO `phpbb_icons` (`icons_id`, `icons_url`, `icons_width`, `icons_height`, `icons_order`, `display_on_posting`) VALUES
(11, 'misc/work.gif', 16, 16, 11, 0),
(12, 'misc/unwork.gif', 16, 16, 12, 0);

INSERT INTO `phpbb_acl_options` (`auth_option_id`, `auth_option`, `is_global`, `is_local`, `founder_only`) VALUES
(118, 'f_work', 0, 1, 0);

INSERT INTO `phpbb_acl_roles_data` (`role_id`, `auth_option_id`, `auth_setting`) VALUES
(14, 118, 1);
mcp.php
Найти

Код: Выделить всё

         case 'make_global':
         case 'make_normal':
Ниже добавить

Код: Выделить всё

         case 'make_work':
includes/mcp/mcp_forum.php
Найти

Код: Выделить всё

                'S_CAN_MAKE_STICKY' => $auth->acl_get('f_sticky', $forum_id),
                'S_CAN_MAKE_ANNOUNCE' => $auth->acl_get('f_announce', $forum_id),
Ниже добавить

Код: Выделить всё

                'S_CAN_MAKE_WORK' => $auth->acl_get('f_work', $forum_id),
includes/mcp/mcp_main.php
Найти

Код: Выделить всё

                                case 'move':
                                $user->add_lang('viewtopic');
Выше добавить

Код: Выделить всё

                        case 'make_work':
                        case 'make_unwork':

                                $topic_ids = (!$quickmod) ? request_var('topic_id_list', array(0)) : array(request_var('t', 0));

                                if (!sizeof($topic_ids))
                                {
                                        trigger_error('NO_TOPIC_SELECTED');
                                }

                                change_topic_icon($action, $topic_ids);
                        break;
Найти

Код: Выделить всё

/**
* Change Topic Type
*/
function change_topic_type($action, $topic_ids)
Выше добавить

Код: Выделить всё

/**
* Change Topic Icon
*/
function change_topic_icon($action, $ids)
{
        global $auth, $user, $db, $phpEx, $phpbb_root_path;

        $table = TOPICS_TABLE;
        $sql_id = 'topic_id';
        $set_id = 'icon_id';
        $l_prefix = 'TOPIC';

        $redirect = request_var('redirect', build_url(array('action', 'quickmod')));

        $s_hidden_fields = build_hidden_fields(array(
                $sql_id . '_list'       => $ids,
                'action'                        => $action,
                'redirect'                      => $redirect)
        );
        $success_msg = '';

        if (confirm_box(true))
        {
                $sql = "UPDATE $table
                        SET $set_id = " . (($action == 'make_work') ? '11' : '12') . '
                        WHERE ' . $db->sql_in_set($sql_id, $ids);
                $db->sql_query($sql);

                $data = get_topic_data($ids);

                foreach ($data as $id => $row)
                {
                        add_log('mod', $row['forum_id'], $row['topic_id'], 'LOG_' . strtoupper($action), $row['topic_title']);
                }

                $success_msg = $l_prefix . ((sizeof($ids) == 1) ? '' : 'S') . '_' . (($action == 'make_work') ? 'WORKED' : 'UNWORKED') . '_SUCCESS';
        }
        else
        {
                confirm_box(false, strtoupper($action) . '_' . $l_prefix . ((sizeof($ids) == 1) ? '' : 'S'), $s_hidden_fields);
        }

        $redirect = request_var('redirect', "index.$phpEx");
        $redirect = reapply_sid($redirect);

        if (!$success_msg)
        {
                redirect($redirect);
        }
        else
        {
                meta_refresh(2, $redirect);
                trigger_error($user->lang[$success_msg] . '<br /><br />' . sprintf($user->lang['RETURN_PAGE'], '<a href="' . $redirect . '">', '</a>'));
        }
}
В строке

Код: Выделить всё

SET $set_id = " . (($action == 'make_work') ? '11' : '12') . '
прописать свои ID иконок!

language/ru/mcp.php
Найти

Код: Выделить всё

        'MCP_MAKE_NORMALS_CONFIRM'              => 'Вы уверены, что хотите сделать выбранные темы обычными?',
Ниже добавить

Код: Выделить всё

        'MAKE_WORK'                             => 'Пометить: Принято в работу',
        'MAKE_WORK_TOPIC'                       => 'Пометить: Принято в работу',
        'MAKE_WORK_TOPIC_CONFIRM'               => 'Вы уверены, что хотите пометить выбранные темы принятыми в работу?',
        'MAKE_UNWORK'                           => 'Пометить: Выполнено',
        'MAKE_UNWORK_TOPIC'                     => 'Пометить: Выполнено',
        'MAKE_UNWORK_TOPIC_CONFIRM'             => 'Вы уверены, что хотите пометить выбранные темы как выполненные?',
styles/prosilver/template/mcp_forum.html
Найти

Код: Выделить всё

                <!-- IF S_CAN_MAKE_ANNOUNCE -->
                        <option value="make_announce">{L_MAKE_ANNOUNCE}</option>
                        <option value="make_global">{L_MAKE_GLOBAL}</option>
                <!-- ENDIF -->
Ниже добавить

Код: Выделить всё

                <!-- IF S_CAN_MAKE_WORK -->
                        <option value="make_work">{L_MAKE_WORK}</option>
                        <option value="make_unwork">{L_MAKE_UNWORK}</option>
                <!-- ENDIF -->
Чистим кэш и провряем. Вроде ничего не забыл...
Кстати, в модераторском разделе добавочные иконки тем не отображаются, там постоянно горит стандартная иконка у всех - "круг с текстом". Из-за этого трудно ориентироваться где какие метки установить. Пока еще не разобрался что и где подправить надо.
Изображение Изображение
Аватара пользователя
RedScorp
phpBB 1.4.1
Сообщения: 43
Стаж: 20 лет 11 месяцев
Откуда: г. Уральск

Re: Смена Статуса темы

Сообщение RedScorp »

Ну вот и еще кое что не проглядел. В таблицу 'phpbb_acl_users' пришлось ручками прописать необходимых пользователей, чтобы дать им доступ к феньке в определенных категориях форума.

Код: Выделить всё

INSERT INTO `phpbb_acl_users` (`user_id`, `forum_id`, `auth_option_id`, `auth_role_id`, `auth_setting`) VALUES
(69, 2, 118, 0, 1),
(68, 2, 118, 0, 1);
Изображение Изображение

Вернуться в «Запросы модов для phpBB 3.0.x»