На некоторых ресурсах требуется скрывать текст от анонимных пользователей и делать его доступным только для пользователей портала с регистрацией. Например скрывать ссылки от личинга, некотрый текст с пассами, серийниками и подобной фигнёй, ну сами понимаете
На эту тему было несколько заросов на форуме, отсюда и родился хак тега антилич.
Идея.
При вводе любой информации в формы ввода контента портала должна быть возможность поместить данный контент в границы тегов для замены(скрытия) этого текста на любой другой при просмотре анонимными пользователями. Пользователям с регистрацией данный текст должен быть видим.
В качестве тега для сокрытия был выбран тег
[hide]текст[/hide].
Для устновки хака не требуется производить больших изменений в портале, потребуется отредактировать только 1 файл.
Установка.
Открываем файл \class\module.textsanitizer.php
Ищем[277-279]:
PHP код:
function sanitizeForDisplay($text, $allow_html=0, $allow_smileys=1, $allow_bbcode=1) {
$text = $this->oopsStripSlashesRT($text);
Заменяем на:
PHP код:
function sanitizeForDisplay($text, $allow_html=0, $allow_smileys=1, $allow_bbcode=1) {
global $xoopsUser;
$text = $this->oopsStripSlashesRT($text);
if ( $xoopsUser ) {
$search[] = "/\[hide](.*)\[\/hide\]/sU";
$replace[] = '\\1';
} else {
$search[] = "/\[hide](.*)\[\/hide\]/sU";
$replace[] = '<u><a href="'.XOOPS_URL.'/register.php">Пройдите регистрацию</a> для просмотра содержания</u>';
}
Ищем[326-329]:
PHP код:
function sanitizeForPreview($text, $allow_html=0, $allow_smileys=1, $allow_bbcode=1) {
global $xoopsConfig, $xoopsUser;
$text = $this->oopsStripSlashesGPC($text);
Заменяем на:
PHP код:
function sanitizeForPreview($text, $allow_html=0, $allow_smileys=1, $allow_bbcode=1) {
global $xoopsConfig, $xoopsUser;
$text = $this->oopsStripSlashesGPC($text);
$search[] = "/\[hide](.*)\[\/hide\]/sU";
$replace[] = '<font color=red><b>--Скрытый текст--</b></font><br>\\1<br><font color=red><b>--Скрытый текст--</b></font>';
Итог.
После применения хака пользователь может использовать тег
[hide] в любой форме ввода портала. Для анонимных пользователей текст будет видим как фраза "Пройдите регистрацию для просмотра содержания" для пользователей же будет выведен текст который был в границах
[hide]. Данный тег должен работает во всех формах ввода портала, включая новости, форум, комментарии и так далее.