есть ли модуль который ищет сообщения в которых был использован искомый тег ббкода ?
Когда вводишь в строку [название тега] и в результате список со всеми сообщениями в которых есть этот тег
Уважаемые пользователи, по техническим причинам загрузка файлов временно недоступна. Приносим извинения за временные неудобства.
Поиск сообщений с определенными ббкод тегами
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
-
Татьяна5
- Поддержка

- Сообщения: 13177
- Стаж: 15 лет 2 месяца
- Благодарил (а): 236 раз
- Поблагодарили: 3754 раза
Re: Поиск сообщений с определенными ббкод тегами
Мода нет, это можно сделать через phpMyAdmin
Зайти в таблицу
Перейти на вкладку "Поиск"
Поле
Выполнить, получим результат запроса со списком id постов
И переходить по ссылкам http://адрес_форума/viewtopic.php?p=(здесь_id)#p(здесь_id)
Зайти в таблицу
phpbb_postsПерейти на вкладку "Поиск"
Поле
post_text, "Содержит", ввести ббкод без квадратных скобокВыполнить, получим результат запроса со списком id постов
И переходить по ссылкам http://адрес_форума/viewtopic.php?p=(здесь_id)#p(здесь_id)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
Sheer
- Former team member
- Сообщения: 12113
- Стаж: 19 лет 8 месяцев
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 54 раза
- Поблагодарили: 2756 раз
Re: Поиск сообщений с определенными ббкод тегами
Не совсем верно. Если так искатьТатьяна5 писал(а):ввести ббкод без квадратных скобок
[i] , то найдено будет много чего лишнего, например текст содержащий imgВот набросок, кому не лень, может доделать.
bbc_search.php
Код: Выделить всё
<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup(array('posting', 'search'));
$bb_code = request_var('bbc', '');
$submit = request_var('submit', false);
$start = request_var('s', 0);
$bbcodes = array(
'b:' => $user->lang['BBCODE_B_HELP'],
'i:' => $user->lang['BBCODE_I_HELP'],
'u:' => $user->lang['BBCODE_U_HELP'],
'img:' => $user->lang['BBCODE_P_HELP'],
'code:' => $user->lang['BBCODE_C_HELP'],
'list:' => $user->lang['BBCODE_L_HELP'],
'quote:' => $user->lang['BBCODE_Q_HELP'],
'url=' => $user->lang['BBCODE_W_HELP'],
'color=' => $user->lang['FONT_COLOR'],
'flash=' => $user->lang['BBCODE_D_HELP'],
'size=' => $user->lang['BBCODE_F_HELP'],
);
$sql = 'SELECT bbcode_tag, bbcode_helpline FROM '. BBCODES_TABLE .'';
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$bbcodes[$row['bbcode_tag']] = $row['bbcode_helpline'];
}
$s_bbcode = '';
foreach ($bbcodes as $key => $value)
{
$selected = ($bb_code == $key) ? ' selected="selected"' : '';
$s_bbcode .= '<option value="' . $key . '"' . $selected . '>' . $value . '</option>';
}
$order_by = '';
//$order_by = ' ORDER BY post_time ASC LIMIT '. $start .' , '. $config['topics_per_page'].'';
if ($submit)
{
$sql = 'SELECT DISTINCT t.topic_title, t.topic_id, t.forum_id, p.post_id, p.post_subject, f.forum_id, f.forum_name
FROM '. TOPICS_TABLE .' t
LEFT JOIN '. POSTS_TABLE .' p ON (t.topic_id = p.topic_id)
LEFT JOIN '. FORUMS_TABLE .' f ON (t.forum_id = f.forum_id)
WHERE p.post_text REGEXP \''.$bb_code.'\' '.$order_by.'';
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$topic_id = $row['topic_id'];
$forum_id = $row['forum_id'];
$post_id = $row['post_id'];
$template->assign_block_vars('row', array(
'TOPIC' => $row['topic_title'],
'SUBJECT' => $row['post_subject'],
'FORUM' => $row['forum_name'],
'U_FORUM' => append_sid("{$phpbb_root_path}viewforum.$phpEx", "f=$forum_id"),
'U_TOPIC' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&t=$topic_id"),
'U_POST' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&t=$topic_id&p=$post_id#p$post_id"),
));
}
}
$template->assign_vars(array(
'S_BB_CODE' => $s_bbcode,
'S_ACTION' => append_sid("{$phpbb_root_path}bbc_search.$phpEx"),
));
// Output the page
page_header('');
$template->set_filenames(array(
'body' => 'bbc_search.html')
);
page_footer();
?>Код: Выделить всё
<!-- INCLUDE overall_header.html -->
<h3>BB-code Search</h3><br />
<form name="search" action="{S_ACTION}" method="post">
<select name="bbc">{S_BB_CODE}</select><b></b>
<input type="submit" name="submit" value="{L_SUBMIT}" class="btnmain"/>
</form>
<br /><hr /><br />
<!-- IF .row -->
<!-- BEGIN row -->
{L_TOPIC}: <a href="{row.U_TOPIC}">{row.TOPIC}</a> {L_MESSAGE}: <a href="{row.U_POST}"><b>{row.SUBJECT}</b></a> {L_IN}: <a href="{row.U_FORUM}">{row.FORUM}</a><br />
<!-- END row -->
<br /><hr />
<!-- ELSE -->
<p class="error"><b>{L_NO_SEARCH_RESULTS}</b></p>
<!-- ENDIF -->
<!-- INCLUDE overall_footer.html -->Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
Татьяна5
- Поддержка

- Сообщения: 13177
- Стаж: 15 лет 2 месяца
- Благодарил (а): 236 раз
- Поблагодарили: 3754 раза
Re: Поиск сообщений с определенными ббкод тегами
Да. Но для самодельных ббкодов (которые чаще всего с длинными названиями) подходит и этоSheer писал(а):Не совсем верно
-
Vova_OB
- phpBB 2.0.2
- Сообщения: 310
- Стаж: 16 лет 4 месяца
- Откуда: Kiev Ukraine
- Благодарил (а): 74 раза
- Поблагодарили: 8 раз
Re: Поиск сообщений с определенными ббкод тегами
Благодарен, немного переделал под права прочтения форума если пользователь может видеть форум то видит тогда темы этого форума в результате.
Есть еще желание доделать под модуль ббкод для модератора и ббкод для админа (display_only_for_adm, display_only_for_mod) - когда теги которые доступны только админу и модератору не видит в выпадающем списке обычный пользователь и тем более гость, как получится выложу.
Добавлено спустя 1 минуту 54 секунды:
хотя кажется что можно было с правами по проще сделать с меншим колличеством кода
Есть еще желание доделать под модуль ббкод для модератора и ббкод для админа (display_only_for_adm, display_only_for_mod) - когда теги которые доступны только админу и модератору не видит в выпадающем списке обычный пользователь и тем более гость, как получится выложу.
Код: Выделить всё
<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup(array('posting', 'search'));
$bb_code = request_var('bbc', '');
$submit = request_var('submit', false);
$start = request_var('s', 0);
$bbcodes = array(
'b:' => $user->lang['BBCODE_B_HELP'],
'i:' => $user->lang['BBCODE_I_HELP'],
'u:' => $user->lang['BBCODE_U_HELP'],
'img:' => $user->lang['BBCODE_P_HELP'],
'code:' => $user->lang['BBCODE_C_HELP'],
'list:' => $user->lang['BBCODE_L_HELP'],
'quote:' => $user->lang['BBCODE_Q_HELP'],
'url=' => $user->lang['BBCODE_W_HELP'],
'color=' => $user->lang['FONT_COLOR'],
'flash=' => $user->lang['BBCODE_D_HELP'],
'size=' => $user->lang['BBCODE_F_HELP'],
);
$sql = 'SELECT bbcode_tag, bbcode_helpline,display_only_for_adm, display_only_for_mod, display_on_posting FROM '. BBCODES_TABLE .'';
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$bbcodes[$row['bbcode_tag']] = $row['bbcode_helpline'];
}
$s_bbcode = '';
foreach ($bbcodes as $key => $value)
{
$selected = ($bb_code == $key) ? ' selected="selected"' : '';
$s_bbcode .= '<option value="' . $key . '"' . $selected . '>' . $value . '</option>';
}
$order_by = '';
//$order_by = ' ORDER BY post_time ASC LIMIT '. $start .' , '. $config['topics_per_page'].'';
if ($submit)
{
$sql = 'SELECT DISTINCT t.topic_title, t.topic_id, t.forum_id, p.post_id, p.post_subject, f.forum_id, f.forum_name
FROM '. TOPICS_TABLE .' t
LEFT JOIN '. POSTS_TABLE .' p ON (t.topic_id = p.topic_id)
LEFT JOIN '. FORUMS_TABLE .' f ON (t.forum_id = f.forum_id)
WHERE p.post_text REGEXP ''.$bb_code.'' '.$order_by.'';
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$topic_id = $row['topic_id'];
$forum_id = $row['forum_id'];
$post_id = $row['post_id'];
$template->assign_block_vars('row', array(
// 'DISPLAY_ONLY_FOR_ADM' => $row['display_only_for_adm'] ? true : false,
//'DISPLAY_ONLY_FOR_MOD' => $row['display_only_for_mod'] ? true : false,
'TOPIC_LANG_CONSTANT' => $auth->acl_get('f_read', $row['forum_id']) ? $user->lang['TOPIC'] .':' :'',
'MESSAGE_LANG_CONSTANT' => $auth->acl_get('f_read', $row['forum_id']) ? $user->lang['MESSAGE'] .':' :'',
'IN_LANG_CONSTANT' => $auth->acl_get('f_read', $row['forum_id']) ? $user->lang['IN'] .':' :'',
'BRTAG_LANG_CONSTANT' => $auth->acl_get('f_read', $row['forum_id']) ? '<br />' :'',
'TOPIC' => $auth->acl_get('f_read', $row['forum_id']) ? $row['topic_title']:'',
'SUBJECT' => $auth->acl_get('f_read', $row['forum_id']) ? $row['post_subject']:'',
'FORUM' => $auth->acl_get('f_read', $row['forum_id']) ? $row['forum_name']:'',
'U_FORUM' => $auth->acl_get('f_read', $row['forum_id']) ? append_sid("{$phpbb_root_path}viewforum.$phpEx", "f=$forum_id"):'',
'U_TOPIC' => $auth->acl_get('f_read', $row['forum_id']) ? append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&t=$topic_id"):'',
'U_POST' => $auth->acl_get('f_read', $row['forum_id']) ? append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&t=$topic_id&p=$topic_id#p$post_id"):'',
));
}
}
$template->assign_vars(array(
'S_BB_CODE' => $s_bbcode,
'S_ACTION' => append_sid("{$phpbb_root_path}bbcode_search.$phpEx"),
));
// Output the page
page_header('');
$template->set_filenames(array(
'body' => 'bbcode_search.html')
);
page_footer();
?>Код: Выделить всё
<!-- INCLUDE overall_header.html -->
<h3>BB-code Search</h3><br />
<form name="search" action="{S_ACTION}" method="post">
<select name="bbc">{S_BB_CODE}</select><b></b>
<input type="submit" name="submit" value="{L_SUBMIT}" class="btnmain"/>
</form>
<br /><hr /><br />
<!-- IF .row -->
<!-- BEGIN row -->
{row.TOPIC_LANG_CONSTANT} <a href="{row.U_TOPIC}">{row.TOPIC}</a> {row.MESSAGE_LANG_CONSTANT} <a href="{row.U_POST}"><b>{row.SUBJECT}</b></a> {row.IN_LANG_CONSTANT} <a href="{row.U_FORUM}">{row.FORUM}</a>{row.BRTAG_LANG_CONSTANT}
<!-- END row -->
<br /><hr />
<!-- ELSE -->
<p class="error"><b>{L_NO_SEARCH_RESULTS}</b></p>
<!-- ENDIF -->
<!-- INCLUDE overall_footer.html -->хотя кажется что можно было с правами по проще сделать с меншим колличеством кода
Re: Поиск сообщений с определенными ббкод тегами
https://www.phpbb.com/customise/db/mod/ ... y_for_mod/Vova_OB писал(а):когда теги которые доступны только админу и модератору не видит в выпадающем списке обычный пользователь
Добавляет чекбокс в админку для бб-кодов, предназначенных только для модераторов.
При нажатии на кнопку "Ответ" любой юзер всё равно сможет увидеть внутренность бб-кода.

