Магазин
Правила Ответы на вопросы Конфиденциальность
Магазин
Правила Ответы на вопросы Конфиденциальность
  • Быстрые действия Ярлыки
    Общие действия
    Связаться с администрацией
    • Бот

       

Минимоды и хаки для phpBB3

  • Список форумов
  • Форумы по phpBB 3.0
  • Другие моды для phpBB 3.0
  • Минимоды и хаки для phpBB3

Adaptive Hide BBcodes - доработка

Как скрыть текст сообщения от определённых пользователей

Небольшие моды и хаки для форума phpBB3
Правила форума
При размещении мода/статьи взятой с другого форума/сайта обязательно необходимо указывать первоисточник сообщения.

29 сообщений
  • 1
  • 2
  • 3
  • След.
Просмотры: 4713 • 
  • Аватара пользователя
    PPK Сообщение 11.05.2014
    Существует мод Adaptive Hide BBcodes https://www.phpbb.com/customise/db/mod/ ... e_bbcodes/, который позволяет с помощью бб-кодов скрывать часть сообщения или всё сообщение целиком от гостей/ботов, от пользователей из определённых групп или пользователей с определённым количеством сообщений, точнее мод не скрывает текст от кого-то, а показывает текст только определённым группам, либо пользователям с кол. сообщений больше или равным указанному.

    Для скрытия текста от ботов и гостей используется бб-код

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

    [hide]текст[/hide]
    
    Для скрытия текста от пользователей которые не состоят в группе которая стоит у вас по умолчанию используется бб-код

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

    [ghide]текст[/ghide]
    Для скрытия текста от пользователей которые не состоят в определённой группе(ах) используется бб-код

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

    [ghide=1,2,3]текст[/ghide]
    где 1,2,3 - это номера групп, номер группы можно узнать так: Личный раздел - Группы - наводим курсор мыши на нужную группу, в конце URL будет строка вида

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

    /memberlist.php?mode=group&g=4 
    
    цифра 4 после g= и есть номер группы
    Для скрытия текста от пользователей с определённым количеством сообщений используется бб-код

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

    [hide=NNN]текст[/hide]
    где NNN - это необходимое колиечство сообщений для того, чтобы текст был виден

    Небольшая доработка мода которая позволяет скрывать текст (отображать его) только для определённых пользователей
    1. Переделать файлы:
    includes/bbcode.php перед

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

    							if (substr_count($preg['search'][0], '[hide\=') && !$auth->acl_get('m_edit', $row['forum_id']) && $user->data['user_id'] != $poster_id)
    							{
    добавить

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

    							if (substr_count($preg['search'][0], '[uhide') && !$auth->acl_get('m_edit', $row['forum_id']) && $user->data['user_id'] != $poster_id)
    							{
    								if (substr_count($preg['search'][0], '[uhide\='))
    								{
    									$hide_matches = array();
    									preg_match_all($preg['search'][0], $message, $hide_matches);
    									foreach ($hide_matches[1] as $key => $users)
    									{
    										$users_ary = explode(',', $users);
    										$uhide = true;
    										foreach ($users_ary as $user_id)
    										{
    											if ($user_id==$user->data['user_id'])
    											{
    												$uhide = false;
    												break;
    											}
    										}
    										if ($uhide)
    										{
    											$message = str_replace($hide_matches[0][$key], '[uhide=' . $users . ':' . $this->bbcode_uid . ']' . $user->lang('ADAPT_HIDE_USERS') . '[/uhide:' . $this->bbcode_uid . ']', $message);
    										}
    									}
    								}
    							}
    includes/functions_posting.php после

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

    		$hide_search_ary[] = '!\[ghide\=([a-zA-Z0-9-+.,_ ]+)\](.*?)\[/ghide\]!s';
    
    добавить

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

    		$hide_search_ary[] = '!\[uhide\=([0-9,]+)\](.*?)\[/uhide\]!s';
    includes/ucp/ucp_pm_compose.php после

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

    		$hide_search_ary[] = '!\[ghide\=([a-zA-Z0-9-+.,_ ]+)\](.*?)\[/ghide\]!s';
    
    добавить

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

    		$hide_search_ary[] = '!\[uhide\=([0-9,]+)\](.*?)\[/uhide\]!s';
    после

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

    		$hide_search_ary[] = '!\[ghide\=([a-zA-Z0-9-+.,_ ]+):' . $post['bbcode_uid'] . '\](.*?)\[/ghide:' . $post['bbcode_uid'] . '\]!s';
    
    добавить

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

    		$hide_search_ary[] = '!\[uhide\=([0-9,]+):' . $post['bbcode_uid'] . '\](.*?)\[/uhide:' . $post['bbcode_uid'] . '\]!s';
    language/ru/mods/adaptive_hide_bbcodes.php после

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

    	'ADAPT_HIDE_GROUPS'			=>	'<i>Скрытый текст. Вы не состоите в группах, которым доступен этот текст.</i>',
    
    добавить

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

    	'ADAPT_HIDE_USERS'			=>	'<i>Скрытый текст. Доступен только определённым пользователям.</i>',
    posting.php после

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

    		$hide_search_ary[] = '!\[ghide\=([a-zA-Z0-9-+.,_ ]+):' . $post_data['bbcode_uid'] . '\](.*?)\[/ghide:' . $post_data['bbcode_uid'] . '\]!s';
    
    добавить

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

    		$hide_search_ary[] = '!\[uhide\=([0-9,]+):' . $post_data['bbcode_uid'] . '\](.*?)\[/uhide:' . $post_data['bbcode_uid'] . '\]!s';
    2. Добавить бб-код: адм. раздел - Сообщения - BBCodes - Добавить BBCode
    Использование BBCode -

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

    [uhide={SIMPLETEXT}]{TEXT}[/uhide]
    
    Замена HTML -

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

    <div class="adapthide">{TEXT}</div>
    
    Подсказка -

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

    Скрыть текст от определённых пользователей: [uhide=1,2,3]текст[/uhide] (будет виден только для перечисленных пользователей)
    Показывать на странице ответа - Да (отметить галку)
    Для скрытия текста от определённых пользователей использовать бб-код

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

    [uhide=1,2,3]текст[/uhide]
    где 1,2,3 - это ID пользователей для которых текст будет виден, ID пользователя можно узнать так: Пользователи - наводим курсор мыши на нужного пользователя, в конце URL будет строка вида

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

    /memberlist.php?mode=viewprofile&u=53 
    
    цифра 53 после u= и есть ID пользователя, таким образом текст заключённый в такой бб-код будет виден только пользователям с ID перечисленным в бб-коде, с помощью этого бб-кода можно так-же отображать текст только гостям

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

    [uhide=1]текст[/uhide]
    1 - это ID гостя, можно отображать текст даже определённым ботам, например текст

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

    [uhide=17]текст[/uhide]
    будет виден только боту Google (ID ботов можно узнать в таблице phpbb_users), можно с помощью этой доработки делать что-то вроде личных сообщений прямо на форуме.
    --
    Скриншоты:
    Текст только для гостей:



    Текст только для бота Google:



    Текст только для определённого пользователя:


PPK
  • Аватара пользователя
    stepan83 Сообщение 18.05.2014
    PPK писал(а):где 1,2,3 - это ID пользователей для которых текст будет виден, ID пользователя можно узнать так: Пользователи - наводим курсор мыши на нужного пользователя, в конце URL будет строка вида
    Сложно если например нужно более десятка спрятать под хайд. Можно ли реализовать "логины" вместо "id" ?
stepan83
  • Аватара пользователя
    PPK Сообщение 19.05.2014
    можно, как будет время - сделаю ..
PPK
  • Аватара пользователя
    stepan83 Сообщение 19.05.2014
    PPK писал(а):можно, как будет время - сделаю ..
    Здорово, не горит, подождем!
stepan83
  • Аватара пользователя
    Oleg Сообщение 28.07.2014
    Здравствуйте, сперва нужно установить мод Adaptive Hide BBcodes, и только после этого нужно вашу доработку добавлять? :?
Oleg
  • Аватара пользователя
    PPK Сообщение 28.07.2014
    да, как минимум потому, что в инструкции в первом сообщении для установки используется часть самого мода, т.е. нужно найти его текст, добавить после него что-то и т.д.
PPK
  • Аватара пользователя
    Oleg Сообщение 28.07.2014
    PPK писал(а):да, как минимум потому, что в инструкции в первом сообщении для установки используется часть самого мода, т.е. нужно найти его текст, добавить после него что-то и т.д.
    спасибо, буду пробовать
Oleg
  • kapranov Сообщение 07.08.2014
    PPK » 19 май 2014, 16:20 писал(а):можно, как будет время - сделаю ..
    Доработки по нику не будет? С user_id не очень удобно
kapranov
  • Аватара пользователя
    PPK Сообщение 08.08.2014
    можно сделать, но работать это будет только при опред. условиях, в этой опции

    опция не дложна быть равной Любые символы или ASCII (без международного юникода) + в именах пользователей не должно быть опред. символов: запятой и квадратных скобок

    Добавлено спустя 2 часа 45 минут 7 секунд:
    Вариант с именами пользователей, может работать совместно с вариантом из первого сообщения

    1. Переделать файлы:
    includes/bbcode.php перед

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

    							if (substr_count($preg['search'][0], '[hide\=') && !$auth->acl_get('m_edit', $row['forum_id']) && $user->data['user_id'] != $poster_id)
    							{
    добавить

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

    							if (substr_count($preg['search'][0], '[nhide') && !$auth->acl_get('m_edit', $row['forum_id']) && $user->data['user_id'] != $poster_id)
    							{
    								if (substr_count($preg['search'][0], '[nhide\='))
    								{
    									$hide_matches = array();
    									preg_match_all($preg['search'][0], $message, $hide_matches);
    									foreach ($hide_matches[1] as $key => $users)
    									{
    										$users_ary = explode(',', $users);
    										$nhide = true;
    										foreach ($users_ary as $username)
    										{
    											if (trim($username)==$user->data['username'])
    											{
    												$nhide = false;
    												break;
    											}
    										}
    										if ($nhide)
    										{
    											$message = str_replace($hide_matches[0][$key], '[nhide=' . $users . ':' . $this->bbcode_uid . ']' . $user->lang('ADAPT_HIDE_USERNAMES') . '[/nhide:' . $this->bbcode_uid . ']', $message);
    										}
    									}
    								}
    							}
    includes/functions_posting.php после

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

    		$hide_search_ary[] = '!\[ghide\=([a-zA-Z0-9-+.,_ ]+)\](.*?)\[/ghide\]!s';
    
    добавить

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

    		$hide_search_ary[] = '!\[nhide\=([a-zA-Z0-9-+.,_ ]+)\](.*?)\[/nhide\]!s';
    
    includes/ucp/ucp_pm_compose.php после

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

    		$hide_search_ary[] = '!\[ghide\=([a-zA-Z0-9-+.,_ ]+)\](.*?)\[/ghide\]!s';
    
    добавить

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

    		$hide_search_ary[] = '!\[nhide\=([a-zA-Z0-9-+.,_ ]+)\](.*?)\[/nhide\]!s';
    
    после

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

    		$hide_search_ary[] = '!\[ghide\=([a-zA-Z0-9-+.,_ ]+):' . $post['bbcode_uid'] . '\](.*?)\[/ghide:' . $post['bbcode_uid'] . '\]!s';
    
    добавить

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

    		$hide_search_ary[] = '!\[nhide\=([a-zA-Z0-9-+.,_ ]+):' . $post['bbcode_uid'] . '\](.*?)\[/nhide:' . $post['bbcode_uid'] . '\]!s';
    
    language/ru/mods/adaptive_hide_bbcodes.php после

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

    	'ADAPT_HIDE_GROUPS'			=>	'<i>Скрытый текст. Вы не состоите в группах, которым доступен этот текст.</i>',
    
    добавить

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

    	'ADAPT_HIDE_USERNAMES'			=>	'<i>Скрытый текст. Доступен только определённым пользователям.</i>',
    
    posting.php после

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

    		$hide_search_ary[] = '!\[ghide\=([a-zA-Z0-9-+.,_ ]+):' . $post_data['bbcode_uid'] . '\](.*?)\[/ghide:' . $post_data['bbcode_uid'] . '\]!s';
    
    добавить

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

    		$hide_search_ary[] = '!\[nhide\=([a-zA-Z0-9-+.,_ ]+):' . $post_data['bbcode_uid'] . '\](.*?)\[/nhide:' . $post_data['bbcode_uid'] . '\]!s';
    
    2. Добавить бб-код: адм. раздел - Сообщения - BBCodes - Добавить BBCode
    Использование BBCode -

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

    [nhide={SIMPLETEXT}]{TEXT}[/nhide]
    
    Замена HTML -

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

    <div class="adapthide">{TEXT}</div>
    
    Подсказка -

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

    Скрыть текст от определённых пользователей: [nhide=имя1,имя2,имя3]текст[/nhide] (будет виден только для перечисленных пользователей)
    Показывать на странице ответа - Да (отметить галку)
    Для скрытия текста от определённых пользователей использовать бб-код

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

    [nhide=имя1,имя2,имя3]текст[/nhide]
    где имя1,имя2,имя3 - это имена пользователей для которых текст будет виден
PPK
  • kapranov Сообщение 08.08.2014
    PPK писал(а): можно сделать, но работать это будет только при опред. условиях, в этой опции
    Отлично! Спасибо! Буду изучать ;)
kapranov
29 сообщений
  • 1
  • 2
  • 3
  • След.

Вернуться в «Минимоды и хаки для phpBB3»

Time: 0.000s | Queries: 0 | Peak Memory Usage: 0.00 МБ | GZIP: Unknown | SQL Explain
  • Список форумов
2018, made with by ThemeKita Создано на основе phpBB® Forum Software © phpBB Limited Русская поддержка phpBB (C) 2009-2026 @ PPK
  • Часовой пояс: UTC+04:00
Участники темы
Список форумов Участники темы
Перейти
Сайт ↳   Новости по сайту ↳   Новости обновлений ↳   Вопросы по сайту ↳   Non-russian speakers forum Форумы по phpBB 3.1-3.3 ↳   Расширения для phpBB 3.1-3.3 ↳   Бета-версии и расширения в разработке ↳   База расширений ↳   Поиск и запросы расширений ↳   Расширения для phpBB 3.1-3.3 для донаторов ↳   Условно-бесплатные расширения ↳   Платные расширения ↳   Расширения для подписчиков ↳   Запросы расширений, функционала и переводов для подписчиков ↳   Переводы расширений для phpBB3.1-3.3 ↳   Стили для phpBB 3.1-3.3 ↳   Вопросы по phpBB 3.1-3.3 Форумы по phpBB 3.0 ↳   Мод трекера ppkBB3cker ↳   Новости по трекеру и обновлениям ↳   Ошибки, проблемы, недочёты ↳   Предложения по новым функциям и возможностям ↳   Вопросы, ответы и примеры решений ↳   Моды и стили для трекера ↳   Готовые стили для трекера ↳   Запросы стилей для трекера ↳   Стили в разработке ↳   Готовые моды для трекера ↳   Запросы модов для трекера ↳   Моды в разработке ↳   Остальное ↳   Часто задаваемые вопросы ↳   Ваши трекеры ↳   Мод трекера xbtBB3cker ↳   Новости по трекеру и обновлениям ↳   Вопросы, ответы, ошибки и обсуждение ↳   Другие моды для phpBB 3.0 ↳   Минимоды и хаки для phpBB3 ↳   phpBB 3.0 ppkBB3cker Edition ↳   Платные услуги, моды, стили для phpBB 3.0 ↳   BB2Spoiler/BB3Spoiler ↳   BB3Topics ↳   BB3Sape ↳   BB3UserAgentInfo ↳   Вопросы по phpBB 3.0 ↳   Вне тематики форума