Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
Подмена текста в сообщении на собственнный
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ).
Подмена текста в сообщении на собственнный
Доброго времени суток.
Подскажите пожалуйста: как сделать, чтобы при обнаружении в сообщении текста [xxx=2345] данный текст подменялся на мой собственный.
В сообщении никакого другого текста не будет.Что-то типа bbcode, но вместо этого текста будет выполняться запрос к бд и выводиться результаты в виде таблицы.
Форум у меня 3.0.13-PL1
Подскажите пожалуйста: как сделать, чтобы при обнаружении в сообщении текста [xxx=2345] данный текст подменялся на мой собственный.
В сообщении никакого другого текста не будет.Что-то типа bbcode, но вместо этого текста будет выполняться запрос к бд и выводиться результаты в виде таблицы.
Форум у меня 3.0.13-PL1
Последний раз редактировалось LavIgor 25.10.2016 20:13, всего редактировалось 1 раз.
Причина: Исправил заголовок и номер версии
Причина: Исправил заголовок и номер версии
- LavIgor
- Former team member
- Сообщения: 3468
- Стаж: 9 лет 11 месяцев
- Благодарил (а): 41 раз
- Поблагодарили: 932 раза
Re: [3.1] Подмена текста в сообщении на собственнный
Думаю, Вы имели в виду 3.1.6.
А добиться желаемого можно с помощью создания своего расширения: Расширения - это просто!.
Следует найти подходящие события, а дальше на Ваше усмотрение (желаемый запрос к базе, например).
- LavIgor
- Former team member
- Сообщения: 3468
- Стаж: 9 лет 11 месяцев
- Благодарил (а): 41 раз
- Поблагодарили: 932 раза
Re: [3.1] Подмена текста в сообщении на собственнный
kupidon, в этой версии вообще всё подряд (ну или просто многое) править можно.
А почему тогда ветка расширений, префикс 3.1, да ещё и номер шестнадцатый?
А почему тогда ветка расширений, префикс 3.1, да ещё и номер шестнадцатый?
Перенесено из форума Для авторов в форум Для авторов (phpBB 3.0.x) 25.10.2016 20:11 модератором LavIgor
- Sheer
- Former team member
- Сообщения: 12113
- Стаж: 17 лет 1 месяц
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 54 раза
- Поблагодарили: 2752 раза
- Контактная информация:
Re: Подмена текста в сообщении на собственнный
А патамушта пофегу куда песать оне всеравно прочтут
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
- Татьяна5
- Поддержка
- Сообщения: 12372
- Стаж: 12 лет 7 месяцев
- Благодарил (а): 223 раза
- Поблагодарили: 3517 раз
- Контактная информация:
Re: Подмена текста в сообщении на собственнный
писал с телефона по памяти версию. После Вашего ответа , уже дома, перепроверил, чтобы не вводить в заблуждение.
нет, потому что вы закрыли форумы с версией 3.0. Темы там создать нельзя., где хочешь там и ищи как написать.
Спасибо. В adaptive hide вносятся изменения в файлы:
posting.php
includes/bbcode.php
includes/constants.php
includes/functions_posting.php
includes/ucp/ucp_pm_compose.php
includes/ucp/ucp_pm_viewmessage.php
Как распознать свой bbcode я разберусь, как сделать запрос и вывести результат тоже. Подскажите в каких файлах искать.
- Татьяна5
- Поддержка
- Сообщения: 12372
- Стаж: 12 лет 7 месяцев
- Благодарил (а): 223 раза
- Поблагодарили: 3517 раз
- Контактная информация:
Re: Подмена текста в сообщении на собственнный
Не знаю как насчёт
constants.php
, а во все остальные перечисленные изменения точно вносить придётсяRe: Подмена текста в сообщении на собственнный
не подскажите где посмотреть: какой из этих файлов и за что отвечает?
- Татьяна5
- Поддержка
- Сообщения: 12372
- Стаж: 12 лет 7 месяцев
- Благодарил (а): 223 раза
- Поблагодарили: 3517 раз
- Контактная информация:
Re: Подмена текста в сообщении на собственнный
В коде. И просто по названиям файлов
posting - "постинг", страница ответа
bbcode - ббкоды
functions_posting - функции для страницы ответа
ucp_pm_compose - личный раздел _ личные сообщения _ создание
ucp_pm_viewmessage - личный раздел _ личные сообщения _ просмотр сообщений
posting - "постинг", страница ответа
bbcode - ббкоды
functions_posting - функции для страницы ответа
ucp_pm_compose - личный раздел _ личные сообщения _ создание
ucp_pm_viewmessage - личный раздел _ личные сообщения _ просмотр сообщений
Re: Подмена текста в сообщении на собственнный
Спасибо за ответы.
posting - "постинг", страница ответа
bbcode - ббкоды
получается что за вывод сообщения в теме (больше нигде не надо, ТОЛЬКО В ТЕМЕ) отвечают эти два файла?
Думаю, мне необязательно его добавлять в BBCODE.
Какая то стандартная функция, достает сообщение из БД: [xxx=2345],
Разделяет его и сверяет его с шаблоном:
Берет из него 2345, делает запрос в БД.
Выводит результаты запроса в сообщение.
includes/functions_posting.php ? этого файла достаточно?
posting - "постинг", страница ответа
bbcode - ббкоды
получается что за вывод сообщения в теме (больше нигде не надо, ТОЛЬКО В ТЕМЕ) отвечают эти два файла?
Думаю, мне необязательно его добавлять в BBCODE.
Какая то стандартная функция, достает сообщение из БД: [xxx=2345],
Разделяет его и сверяет его с шаблоном:
Берет из него 2345, делает запрос в БД.
Выводит результаты запроса в сообщение.
includes/functions_posting.php ? этого файла достаточно?
- Татьяна5
- Поддержка
- Сообщения: 12372
- Стаж: 12 лет 7 месяцев
- Благодарил (а): 223 раза
- Поблагодарили: 3517 раз
- Контактная информация:
Re: Подмена текста в сообщении на собственнный
Нет, за то много файлов отвечают, не только эти
Навряд ли
3 файла точно понадобятся, а дальше надо смотреть ещё подробнее как сделан adaptive hide, может ещё какой файл зацепит
Re: Подмена текста в сообщении на собственнный
Все перерыл в этом adaptive hide. Не могу разобраться. Посоветуйте пожалуйста что-нибудь?
Вот код установки adaptive hide
Код: Выделить всё
<open src="posting.php">
<edit>
<find><![CDATA[if (isset($post_data['post_text']))
{
$message_parser->message = &$post_data['post_text'];
unset($post_data['post_text']);]]></find>
<action type="after-add"><![CDATA[
// Adaptive Hide BBcodes MOD
if ($mode == 'quote')
{
$user->add_lang('mods/adaptive_hide_bbcodes');
$hide_search_ary = array();
$hide_search_ary[] = '!\[hide:' . $post_data['bbcode_uid'] . '\](.*?)\[/hide:' . $post_data['bbcode_uid'] . '\]!s';
$hide_search_ary[] = '!\[hide\=([0-9]+):' . $post_data['bbcode_uid'] . '\](.*?)\[/hide:' . $post_data['bbcode_uid'] . '\]!s';
$hide_search_ary[] = '!\[ghide\=([a-zA-Z0-9-+.,_ ]+):' . $post_data['bbcode_uid'] . '\](.*?)\[/ghide:' . $post_data['bbcode_uid'] . '\]!s';
$hide_search_ary[] = '!\[ghide:' . $post_data['bbcode_uid'] . '\](.*?)\[/ghide:' . $post_data['bbcode_uid'] . '\]!s';
$message_parser->message = preg_replace($hide_search_ary, $user->lang('ADAPT_HIDE_QUOTE'), $message_parser->message);
}
// end Adaptive Hide BBcodes MOD
]]></action>
</edit>
</open>
<open src="includes/bbcode.php">
<edit>
<find><![CDATA[ function bbcode_second_pass(&$message, $bbcode_uid = '', $bbcode_bitfield = false)
{]]></find>
<action type="after-add"><![CDATA[
global $auth, $db, $user, $row, $author_id, $group_ids; // Adaptive Hide BBcodes MOD
]]></action>
</edit>
<edit>
<find><![CDATA[ if (!$undid_bbcode_specialchars)
{
$message = str_replace(array(':', '.'), array(':', '.'), $message);
$undid_bbcode_specialchars = true;
}]]></find>
<action type="after-add"><![CDATA[
// Adaptive Hide BBcodes MOD
if (substr_count($preg['search'][0], 'hide'))
{
$poster_id = isset($row['user_id']) ? $row['user_id'] : (isset($row['poster_id']) ? $row['poster_id'] : (isset($author_id) ? $author_id : 2));
if (!isset($row['forum_id']))
{
$row['forum_id'] = 0;
}
$user->setup('mods/adaptive_hide_bbcodes');
if (substr_count($preg['search'][0], '[hide:') && ($user->data['user_id'] == ANONYMOUS || $user->data['is_bot'] == 1))
{
$message = preg_replace($preg['search'], array(0 => '[hide:' . $this->bbcode_uid . ']' . $user->lang('ADAPT_HIDE_GUEST') . '[/hide:' . $this->bbcode_uid . ']'), $message);
}
if (substr_count($preg['search'][0], '[hide\=') && !$auth->acl_get('m_edit', $row['forum_id']) && $user->data['user_id'] != $poster_id)
{
$sql = 'SELECT group_id
FROM ' . USER_GROUP_TABLE . '
WHERE user_id = ' . (int)$poster_id . '
AND user_pending = 0';
$result = $db->sql_query($sql);
$poster_groups = array();
while ($sql_row = $db->sql_fetchrow($result))
{
$poster_groups[] = $sql_row['group_id'];
}
$db->sql_freeresult($result);
$ignore_groups = explode(',', ADAPT_HIDE_IGNORE_LIMIT_GROUPS);
$ignore_limit = false;
foreach ($poster_groups as $poster_group)
{
if (in_array($poster_group, $ignore_groups))
{
$ignore_limit = true;
break;
}
}
$sql = 'SELECT user_posts
FROM ' . USERS_TABLE . '
WHERE user_id = ' . (int)$poster_id;
$result = $db->sql_query($sql);
$sql_row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
$poster_posts = $sql_row['user_posts'];
$hide_matches = array();
preg_match_all($preg['search'][0], $message, $hide_matches);
foreach ($hide_matches[1] as $key => $posts)
{
if (!$ignore_limit)
{
$posts = min($posts, ADAPT_HIDE_LIMIT_POSTS, $poster_posts);
}
$hide_cause = false;
if ($user->data['user_id'] == ANONYMOUS || $user->data['is_bot'] == 1)
{
if ($posts == 0)
{
$hide_cause = $user->lang('ADAPT_HIDE_GUEST');
}
else
{
$hide_cause = sprintf($user->lang('ADAPT_HIDE_GUEST_POSTS'), $posts);
}
}
elseif ($user->data['user_posts'] < $posts)
{
$hide_cause = sprintf($user->lang('ADAPT_HIDE_POSTS'), $posts);
}
if ($hide_cause)
{
$message = str_replace($hide_matches[0][$key], '[hide=' . $posts . ':' . $this->bbcode_uid . ']' . $hide_cause . '[/hide:' . $this->bbcode_uid . ']', $message);
}
}
}
if (substr_count($preg['search'][0], '[ghide') && !$auth->acl_get('m_edit', $row['forum_id']) && $user->data['user_id'] != $poster_id)
{
if (!sizeof($group_ids))
{
$sql = 'SELECT group_id
FROM ' . USER_GROUP_TABLE . '
WHERE user_id = ' . (int)$user->data['user_id'] . '
AND user_pending = 0';
$result = $db->sql_query($sql);
$group_ids = array();
while ($sql_row = $db->sql_fetchrow($result))
{
$group_ids[] = $sql_row['group_id'];
}
$db->sql_freeresult($result);
}
if (substr_count($preg['search'][0], '[ghide:'))
{
$sql = 'SELECT group_id
FROM ' . USERS_TABLE . '
WHERE user_id = ' . (int)$poster_id;
$result = $db->sql_query($sql);
$sql_row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
$poster_group = $sql_row['group_id'];
if (!in_array($poster_group, $group_ids))
{
$message = preg_replace($preg['search'], array(0 => '[ghide:' . $this->bbcode_uid . ']' . $user->lang('ADAPT_HIDE_GROUPS') . '[/ghide:' . $this->bbcode_uid . ']'), $message);
}
}
if (substr_count($preg['search'][0], '[ghide\='))
{
$hide_matches = array();
preg_match_all($preg['search'][0], $message, $hide_matches);
foreach ($hide_matches[1] as $key => $groups)
{
$groups_ary = explode(',', $groups);
$ghide = true;
foreach ($groups_ary as $group)
{
if (in_array($group, $group_ids))
{
$ghide = false;
break;
}
}
if ($ghide)
{
$message = str_replace($hide_matches[0][$key], '[ghide=' . $groups . ':' . $this->bbcode_uid . ']' . $user->lang('ADAPT_HIDE_GROUPS') . '[/ghide:' . $this->bbcode_uid . ']', $message);
}
}
}
}
}
// end Adaptive Hide BBcodes MOD
]]></action>
</edit>
</open>
<open src="includes/constants.php">
<edit>
<find><![CDATA[?>]]></find>
<action type="before-add"><![CDATA[
// Adaptive Hide BBcodes MOD
define('ADAPT_HIDE_LIMIT_POSTS', 200);
define('ADAPT_HIDE_IGNORE_LIMIT_GROUPS', '4,5');
// end Adaptive Hide BBcodes MOD
]]></action>
</edit>
</open>
<open src="includes/functions_posting.php">
<edit>
<find><![CDATA[ $template->assign_block_vars($mode . '_row', array(]]></find>
<action type="before-add"><![CDATA[
// Adaptive Hide BBcodes MOD
$user->add_lang('mods/adaptive_hide_bbcodes');
$hide_search_ary = array();
$hide_search_ary[] = '!\[hide\](.*?)\[/hide\]!s';
$hide_search_ary[] = '!\[hide\=([0-9]+)\](.*?)\[/hide\]!s';
$hide_search_ary[] = '!\[ghide\=([a-zA-Z0-9-+.,_ ]+)\](.*?)\[/ghide\]!s';
$hide_search_ary[] = '!\[ghide\](.*?)\[/ghide\]!s';
$decoded_message = preg_replace($hide_search_ary, $user->lang('ADAPT_HIDE_QUOTE'), $decoded_message);
// end Adaptive Hide BBcodes MOD
]]></action>
</edit>
</open>
<open src="includes/ucp/ucp_pm_compose.php">
<edit>
<find><![CDATA[ $message_parser->message = ($action == 'reply') ? '' : $message_text;
unset($message_text);]]></find>
<action type="after-add"><![CDATA[
// Adaptive Hide BBcodes MOD
if ($action == 'quotepost')
{
$user->add_lang('mods/adaptive_hide_bbcodes');
$hide_search_ary = array();
$hide_search_ary[] = '!\[hide\](.*?)\[/hide\]!s';
$hide_search_ary[] = '!\[hide\=([0-9]+)\](.*?)\[/hide\]!s';
$hide_search_ary[] = '!\[ghide\=([a-zA-Z0-9-+.,_ ]+)\](.*?)\[/ghide\]!s';
$hide_search_ary[] = '!\[ghide\](.*?)\[/ghide\]!s';
$message_parser->message = preg_replace($hide_search_ary, $user->lang('ADAPT_HIDE_QUOTE'), $message_parser->message);
}
elseif ($action == 'quote' || $action == 'forward')
{
$user->add_lang('mods/adaptive_hide_bbcodes');
$hide_search_ary = array();
$hide_search_ary[] = '!\[hide:' . $post['bbcode_uid'] . '\](.*?)\[/hide:' . $post['bbcode_uid'] . '\]!s';
$hide_search_ary[] = '!\[hide\=([0-9]+):' . $post['bbcode_uid'] . '\](.*?)\[/hide:' . $post['bbcode_uid'] . '\]!s';
$hide_search_ary[] = '!\[ghide\=([a-zA-Z0-9-+.,_ ]+):' . $post['bbcode_uid'] . '\](.*?)\[/ghide:' . $post['bbcode_uid'] . '\]!s';
$hide_search_ary[] = '!\[ghide:' . $post['bbcode_uid'] . '\](.*?)\[/ghide:' . $post['bbcode_uid'] . '\]!s';
$message_parser->message = preg_replace($hide_search_ary, $user->lang('ADAPT_HIDE_QUOTE'), $message_parser->message);
}
// end Adaptive Hide BBcodes MOD
]]></action>
</edit>
</open>
<open src="includes/ucp/ucp_pm_viewmessage.php">
<edit>
<find><![CDATA[function view_message($id, $mode, $folder_id, $msg_id, $folder, $message_row)
{
global $user, $template, $auth, $db, $cache;
global $phpbb_root_path, $phpEx, $config;]]></find>
<action type="after-add"><![CDATA[
global $author_id; // Adaptive Hide BBcodes MOD
]]></action>
</edit>
</open>
<open src="styles/prosilver/theme/content.css">
<edit>
<find><![CDATA[/* Attachments
----------------------------------------*/]]></find>
<action type="before-add"><![CDATA[
/* Hide block */
div.adapthide {
border: 1px dashed #000099;
background-color: #FFFFFF;
margin: 0px 10px 5px 10px;
padding: 5px 5px 5px 5px;
font-size: 12px;
}
]]></action>
</edit>
</open>
Отправлено спустя 1 час 31 минуту 37 секунд:
в каком файле поискать вхождение этого скрипта?