Уважаемые пользователи!
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.
[hide] BB-Code
-
- phpBB 1.2.1
- Сообщения: 29
- Стаж: 17 лет 6 месяцев
-
- phpBB 1.2.0
- Сообщения: 18
- Стаж: 17 лет 6 месяцев
dnk писал(а):Нашел следующее решение:
В posting.php
Найти:
После этого добавить:Код: Выделить всё
// [start] [hide] BB-Code if( !$userdata['session_logged_in']) { $message = hide_in_quote($message); }
Код: Выделить всё
if( $userdata['user_posts'] !== 1000000) //Ну разумеется это число, чем больше, тем лучше! { $message = hide_in_quote($message); }
Можно еще добавить
Код: Выделить всё
if( ($userdata['user_posts'] !== 1000000) and ($userdata['user_level'] != ADMIN))
Почему-то при цитировании [hide] теряет свое действие, хотя остальные bbcode нормально работают. Если бы это починить, то вышеприведенные добавления не понадобились бы.
Также в файле includes/bbcode.php можно изменить фрагмент
Код: Выделить всё
if ( $userdata['user_posts'] >= $i)
{
$patterns[] = "#\[hide=". $i . "\](.*?)\[/hide\]#si";
$replacements[] = $bbcode_tpl['show'];
}
Код: Выделить всё
if ( ($userdata['user_posts'] >= $i) or ($userdata['user_level'] == ADMIN))
{
$patterns[] = "#\[hide=". $i . "\](.*?)\[/hide\]#si";
$replacements[] = $bbcode_tpl['show'];
}
-
- phpBB 1.2.0
- Сообщения: 18
- Стаж: 17 лет 6 месяцев
Ну вообще говоря у меня и когда просто hide и когда hide=x - влюбом случае при правке сообщения виден скрываемый текст либо автором сообщения либо участником, авторизованным модерировать (админом или модером).Andrey_Sv писал(а): При редактировании поста скрытый текст, который был написан в формате [hide=x], становится видимым. Если текст был написан в формате [hide] - все нормально. Как бы это исправить?
Если Вы хотите сделать что-то типа приватного тега (например, как в IPB 1.3 тег [private=Ник участника] - скрывает текст сообщения и отображает его только участнику, ник которого указан + администрации или в вобле - STG - только определенной группе пользователей.
в phpbb такого я не встречал мода.
Если нужно полностью скрыть текст от участника, чтобы он править и вообще видеть не мог, ну тогда, просто отредактируйте и поставьте hide=1000000 и установите мод запрета правки и удаления сообщений через определенное время.Я его лично дорабатывал на возможность запрета еще и удаления сообщений через определенное время.
-
- phpBB 1.2.0
- Сообщения: 18
- Стаж: 17 лет 6 месяцев
Нет, я не совсем это имел ввиду. В процессе правки сообщения естественно текст должен быть видимый. А у меня после любого редактирования сообщения, содержащего скрытый текст [hide=x], этот текст становится видимым для всех.dnk писал(а):Ну вообще говоря у меня и когда просто hide и когда hide=x - влюбом случае при правке сообщения виден скрываемый текст либо автором сообщения либо участником, авторизованным модерировать (админом или модером).
Идея хорошая. Я собственно этого не хотел, но я думаю нетрудно изменить код так, чтобы вместо сравнения числа x с кол-вом сообщений (if ( ($userdata['user_posts'] >= $i ...) x сравнивалось с именем пользователя (if ( ($userdata['username'] >= $i ...) .dnk писал(а): Если Вы хотите сделать что-то типа приватного тега (например, как в IPB 1.3 тег [private=Ник участника] - скрывает текст сообщения и отображает его только участнику, ник которого указан + администрации или в вобле - STG - только определенной группе пользователей.
в phpbb такого я не встречал мода.
Как то так:
Код: Выделить всё
if ( ($userdata['username'] == $i) or ($userdata['user_level'] == ADMIN))
{
$patterns[] = "#\[hide=". $i . "\](.*?)\[/hide\]#si";
$replacements[] = $bbcode_tpl['show'];
}
Тут вот какая вещь:
Если Вы добавите нескрытый текст строго после скрываемого тегом hide=x текста, являющегося самым последним в сообщении и при этом введенное количество сообщений для просмотра последнего скрываемого текста не будет равно количеству сообщений для просмотра предудыщего скрытого тегом hide=x текста в данном сообщении, то этот являющийся последним тег hide=x НЕ скроет текст под собой либо (вот у меня такое - никогда его Вам не раскроет, даже, если Вы админ или как усатник наберете нужное количество постов).
Однако, если в сообщении вы запостите несколько скрытых текстов и после последнего скрытого текста вы не запостите нескрытый текст и количество сообщений для просмотра скрытых текстов у каждого скрытого текста будет разное, то все без исключения скрытые тексты нормально скроют содержимое
Поэтому редактирование тут не влияет - влияет расположение скрытого текста относительно нескрытого текста в сообщении и количество сообщений для просмотра.
Смотри внимательно скриншот и все ясно станет.В том числе обрати внимание, что сообщения редактировалось и все равно в первом случае работает, в чем я тебя Andrey_Sv поправлю.
В обоих случаях ставил hide=100 или 500 - ну вообщем разное число постов.
Как это решить, не в курсе, не спец.
Все нормально будет во всех случаях работать только, если везде, где используете тег hide=x будете ставить число x сообщений одинаковое.
Если Вы добавите нескрытый текст строго после скрываемого тегом hide=x текста, являющегося самым последним в сообщении и при этом введенное количество сообщений для просмотра последнего скрываемого текста не будет равно количеству сообщений для просмотра предудыщего скрытого тегом hide=x текста в данном сообщении, то этот являющийся последним тег hide=x НЕ скроет текст под собой либо (вот у меня такое - никогда его Вам не раскроет, даже, если Вы админ или как усатник наберете нужное количество постов).
Однако, если в сообщении вы запостите несколько скрытых текстов и после последнего скрытого текста вы не запостите нескрытый текст и количество сообщений для просмотра скрытых текстов у каждого скрытого текста будет разное, то все без исключения скрытые тексты нормально скроют содержимое
Поэтому редактирование тут не влияет - влияет расположение скрытого текста относительно нескрытого текста в сообщении и количество сообщений для просмотра.
Смотри внимательно скриншот и все ясно станет.В том числе обрати внимание, что сообщения редактировалось и все равно в первом случае работает, в чем я тебя Andrey_Sv поправлю.
В обоих случаях ставил hide=100 или 500 - ну вообщем разное число постов.
Как это решить, не в курсе, не спец.
Все нормально будет во всех случаях работать только, если везде, где используете тег hide=x будете ставить число x сообщений одинаковое.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- phpBB 1.2.0
- Сообщения: 18
- Стаж: 17 лет 6 месяцев
Спасибо, dnk, прояснил ситуацию.
Действительно все так, как ты сказал.
Однако, если в сообщении есть только один скрытый текст в виде [hide=x], и после него есть хоть 1 символ, этот скрытый текст будет виден.
И еще, если в сообщении есть тег [hide=x], и где-то после этого идет простой [hide], то появляется сообщение об ошибке (по крайней мере у меня так) :
"Warning: preg_replace() [function.preg-replace]: Compilation failed: missing terminating ] for character class at offset 47 in c:\AppServ\www\phpBB2\includes\bbcode.php on line 203"
Действительно все так, как ты сказал.
Однако, если в сообщении есть только один скрытый текст в виде [hide=x], и после него есть хоть 1 символ, этот скрытый текст будет виден.
И еще, если в сообщении есть тег [hide=x], и где-то после этого идет простой [hide], то появляется сообщение об ошибке (по крайней мере у меня так) :
"Warning: preg_replace() [function.preg-replace]: Compilation failed: missing terminating ] for character class at offset 47 in c:\AppServ\www\phpBB2\includes\bbcode.php on line 203"
У меня это было сначала, но я вроде убрал из viewtopic.php все строчки, которые относятся к этому моду и у меня в этом случае отображается скрытый текст только с надписью "Вы должны быть зарегистрированным пользователем" без фразы "И у Вас должно быть...".Приэтом даже, если участник набрал нужное кол-во постов - скрытое содержимое не раскрывается.Andrey_Sv писал(а): Однако, если в сообщении есть только один скрытый текст в виде [hide=x], и после него есть хоть 1 символ, этот скрытый текст будет виден.
Вообщем мод не работает толком.
И еще, если в сообщении есть тег [hide=x], и где-то после этого идет простой [hide], то появляется сообщение об ошибке (по крайней мере у меня так) :
"Warning: preg_replace() [function.preg-replace]: Compilation failed: missing terminating ] for character class at offset 47 in c:\AppServ\www\phpBB2\includes\bbcode.php on line 203"[/quote]
Да, тоже самое, неправильная компилляция.
Ну вот мы только обсуждаем эту тему.Почему поддержка форума молчит, вообще не понятно...
-
- phpBB 1.4.2
- Сообщения: 60
- Стаж: 18 лет 3 месяца
Хелп у меня проблема поставил и вот что пишит когда добовляю тему
Warning: preg_replace in /var/www/html/includes/bbcode.php on line 213
$text = preg_replace вот эта строка
Добавлено спустя 1 минуту 26 секунд:
возможно оно конфликтует с кодом [img=left] , есть какие предложения как исправить?
Warning: preg_replace in /var/www/html/includes/bbcode.php on line 213
Код: Выделить всё
{
$patterns[] = "#\[hide\](.*?)\[/hide\]#si";
$replacements[] = $bbcode_tpl['hide'];
$patterns[] = "#\[hide=([0-9]*?)\](.*?)\[/hide\]#si";
$replacements[] = $bbcode_tpl['hide'];
}
$text = preg_replace($patterns, $replacements, $text);
// Remove our padding from the string..
$text = substr($text, 1);
return $text;
Добавлено спустя 1 минуту 26 секунд:
возможно оно конфликтует с кодом [img=left] , есть какие предложения как исправить?
-
- phpBB 1.2.1
- Сообщения: 20
- Стаж: 17 лет 6 месяцев
-
- phpBB 1.4.3
- Сообщения: 97
- Стаж: 19 лет 4 месяца
-
- phpBB 1.2.1
- Сообщения: 20
- Стаж: 17 лет 6 месяцев
-
- phpBB 2.0.2
- Сообщения: 340
- Стаж: 17 лет 9 месяцев
-
- phpBB 1.0.0
- Сообщения: 2
- Стаж: 17 лет 4 месяца
- Откуда: Волгоград