Сайт сообщества | Клуб пользователей | О проекте

Имя
Пароль
ПравилаРегистрацияСправка
Сообщения за деньПоиск

Вернуться   Клуб пользователей портальной системы RUNCMS > Опен Ресурс > Разработчикам > Готовые хаки

Ответ
 
Опции темы Опции просмотра
LaRok вне форума LaRok
攻殻機動隊


| Цитировать Старый #1 02-27-2005, 06:32

На некоторых ресурсах требуется скрывать текст от анонимных пользователей и делать его доступным только для пользователей портала с регистрацией. Например скрывать ссылки от личинга, некотрый текст с пассами, серийниками и подобной фигнёй, ну сами понимаете

На эту тему было несколько заросов на форуме, отсюда и родился хак тега антилич.

Идея.

При вводе любой информации в формы ввода контента портала должна быть возможность поместить данный контент в границы тегов для замены(скрытия) этого текста на любой другой при просмотре анонимными пользователями. Пользователям с регистрацией данный текст должен быть видим.

В качестве тега для сокрытия был выбран тег [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]. Данный тег должен работает во всех формах ввода портала, включая новости, форум, комментарии и так далее.
Изображения
Тип файла: jpg hide_hack.jpg (76.5 Кбайт, 137 просмотров)

Последний раз редактировалось LaRok, 03-21-2005 в 00:21

Посетить домашнюю страницу LaRok
  Сообщения: 2,045 c 13.09.2003 | Репутация: 25
thunder вне форума thunder
Старший участник

Аватар для thunder

| Цитировать Старый #2 02-27-2005, 20:34

Встречный вопрос... как открыть просмотр скрытого текста после... допустим... 30 постов???


Skype: thunder_rus
Icq: 235953090
Mail: thunder{собака}pisem{точка}net
  Сообщения: 580 c 16.04.2004 | Репутация: 20
Kostolom вне форума Kostolom
Участник


| Цитировать Старый #3 02-27-2005, 22:36

Хм, а поисковикам этот текст будет виден?


Будь наготове - всюду рыщет стража,
Линия крови путь тебе укажет.
Посетить домашнюю страницу Kostolom
  Сообщения: 253 c 04.12.2004 | Репутация: 3
Vor2ex вне форума Vor2ex
Старший участник

Аватар для Vor2ex

| Цитировать Старый #4 02-27-2005, 22:42

если стоит if ( $xoopsUser ), значит только зарегистрироанные могут видеть, т е поисковику скорее всего придется регистрироваться )

  Сообщения: 1,131 c 03.08.2004 | Репутация: ??
LaRok вне форума LaRok
攻殻機動隊


| Цитировать Старый #5 02-28-2005, 01:49

Цитата:
thunder:
Встречный вопрос... как открыть просмотр скрытого текста после... допустим... 30 постов???
Проводить проверку на группы. Пока в разработке.

Цитата:
Kostolom:
Хм, а поисковикам этот текст будет виден?
Естественно нет.

Посетить домашнюю страницу LaRok
  Сообщения: 2,045 c 13.09.2003 | Репутация: 25
Jax вне форума Jax
Участник

Аватар для Jax

| Цитировать Старый #6 02-28-2005, 07:44

Спасибо, не плохая вещь.

А может стоит его добавить, как ББ код?

Последний раз редактировалось Jax, 02-28-2005 в 17:15


» http://newage.gcnet.ru/
Посетить домашнюю страницу Jax
  Сообщения: 173 c 08.02.2004 | Репутация: 4
veprj вне форума veprj
Участник

Аватар для veprj

| Цитировать Старый #7 03-04-2005, 23:29

Вот только не мешало бы кнопочку на форум тогда добавить
что бы руками тег не писать

Последний раз редактировалось veprj, 03-04-2005 в 23:41



90-60-90 и это только лицо

  Сообщения: 152 c 28.09.2004 | Репутация: 1
LaRok вне форума LaRok
攻殻機動隊


| Цитировать Старый #8 03-05-2005, 01:43

Ну так добавте.

Посетить домашнюю страницу LaRok
  Сообщения: 2,045 c 13.09.2003 | Репутация: 25
Zormax вне форума Zormax
Старожил

Аватар для Zormax

| Цитировать Старый #9 03-05-2005, 13:39

LaRok* Да добавьте...


Всё для Sony Ericsson
Посетить домашнюю страницу Zormax
  Сообщения: 2,424 c 15.05.2004 | Репутация: 149
Zormax вне форума Zormax
Старожил

Аватар для Zormax

| Цитировать Старый #10 03-05-2005, 22:08

Пришлось самому написать...

Скрываем текст от анонимных юзеров

После применения данного хака, у вас во всех формах ввода текста появится около кнопочки "B" (Жирный) еще одна кнопочка "H" (Скрытый текст)
Т.е. вы можете что-то написать и это написанное увидят только зарегистрированные.
Не забывайте, что таким образом можно скрыть текст не только на форуме но и например в гостевой, в файлах (на лекарство), в ссылках и везде где вводится текст

Итак начнем:

1. Открываем в корневой папке class/ файл module.textsanitizer.php
2. Находим строки:

PHP код:
function xoopsCodeDecode($text$allow_html=0) {
$patterns     = array();
$replacements = array(); 
и заменяем их на:

PHP код:
function xoopsCodeDecode($text$allow_html=0) {
global 
$xoopsUser;
$patterns     = array();
$replacements = array();
if (
$xoopsUser) {
$patterns[]  = "/\[hide](.*)\[\/hide\]/sU";
$replacements[] = '<font color=red>---Скрытый текст---</font><br><br>\\1<br><br><font color=red>---Скрытый текст---</font>';
} else {
$patterns[]  = "/\[hide](.*)\[\/hide\]/sU";
$replacements[] = '<font color=red>---Скрытый текст---</font><br><br><u>Для просмотра содержания</u><a href="'.XOOPS_URL.'/register.php"> пройдите регистрацию</a><br><br><font color=red>---Скрытый текст---</font>';

3. Сохраняем файл
4. Заходим в папку class/xoopsform/
5. Открываем файл formdhtmltextarea.js или formdhtmltextareajs.php (зависит от того, применяли ли вы хак "Уменьшение страниц на 20 кб")
6. Находим в открытом файле строки:

Код HTML:
var clientPC = navigator.userAgent.toLowerCase();
var clientVer = parseInt(navigator.appVersion);
var is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1));
var is_win   = ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1));
и после них вставляем:

Код HTML:
function xoopsCodeHide(id) {
if ((clientVer >= 4) && is_ie && is_win) {
var text = document.selection.createRange().text;
var dom  = xoopsGetElementById(id);
if ( text != null && text != "" ) {
var sel = document.selection.createRange();
sel.text = "[hide]" + text + "[/hide]";
} else {
alert("Выделите нужный текст!");
}
} else {
var text = prompt("Введите текст который добавить!", "");
var dom  = xoopsGetElementById(id);
if ( text != null && text != "" ) {
var result = "[hide]" + text + "[/hide]";
dom.focus();
dom.value += result;
}
}
}
7. Сохраняем файл
8. В этой же папке открываем файл formdhtmltextarea.php
9. Находим строку:

PHP код:
$ret .= "<a href='javascript:justReturn();'><img src='".XOOPS_URL."/images/editor/bold.gif' alt='"._BOLD."' onclick='xoopsCodeBold(\"".$this->getName()."\");' /></a> "
и перед ней вставляем:

PHP код:
if ($xoopsUser) {
$ret .= "<a href='javascript:justReturn();'><img src='".XOOPS_URL."/images/editor/hide.gif' alt='"._HIDE."' onclick='xoopsCodeHide(\"".$this->getName()."\");' /></a> ";

10. Сохраняем файл
11. Переходим в папку language/russian/
12. Открываем файл global.php
13. В данном файле в любое место вставьте код:

PHP код:
define("_HIDE""Скрытый текст. Виден только зарегистрированным!"); 
14. Сохраняем файл
15. Прикрепленный графический файл кладем в папку images/editor/
16. Проверяем все это...
Изображения
Тип файла: gif hide.gif (147 байт, 447 просмотров)

Последний раз редактировалось LaRok, 03-21-2005 в 00:22


Всё для Sony Ericsson
Посетить домашнюю страницу Zormax
  Сообщения: 2,424 c 15.05.2004 | Репутация: 149
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Рейтинг@Mail.ru Хостинг провайдер Majordomo. Powered by: vBulletin Version 3.0
Copyright ©2000-2024, Jelsoft Enterprises Ltd.
Все разделы прочитаны - Руководство форума - Архив - Вверх
Rambler's Top100
Output: 101.57 Kb. compressed to 93.68 Kb. by saving 7.90 Kb. (7.77%)
Page generated in 0.10567 seconds with 11 queries