Форум сетевых администраторов
Показаны 18 сообщений на этой странице

Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- Хаки от Netadmin или "Сделай сам" (http://netadmin.ws/forum/forumdisplay.php?forumid=76)
-- Хак скрытия линков от гостей. (http://netadmin.ws/forum/showthread.php?threadid=9019)


Помещено Kadet 24-06-2004 в 03:34:

Хак скрытия линков от гостей.

Я тут на каком-то форуме наткнулся на класную фишку - когда по форуму лазиет незарегистрированный гость, то он может читать свободно, но вместо линков видит надпись открыть линк, и когда нажимает на нее, то попадает на страницу регистрации.
Очень полезная фишка для таких форумов, как у меня, где выкладывается куча софта.
А то весь раздел закрывать от гостей не хочется..

Хак нужен для vb3.

__________________
Перхоть - это опилки от спиленных рогов


Помещено tohaaa 24-06-2004 в 23:11:

Ð_х.... примерчик бы какой....
Нашел, что за эту ботву отвечает, но знаний для реализации хака не хватает
Абыдна, что это не в темплейтах делается (вернее не только в темплейтах).... а вааще хак очень полезный

ЗЫ извините за оффтоп... проковырялся пол вечера и нихрена ... теперь,что называется - вопрос принципиальный

ЗЗЫ еще раз извиняюсь %)

__________________
So much aggression in your head
Try to relax and understand
Babilon`s penetrated to your soul
Don`t loose your mind, hold on control!
Rastaman vibration - Positive!!!


Помещено Leon 25-06-2004 в 08:15:

Вобщем в разделе Ломаем я разместил нечто подобное. Гляньте может быть то.

__________________
Functional Upgraded Construct Kernel for Offensive and Faultless Fighting


Помещено DimonT 26-06-2004 в 14:42:

я так понимаю, надо, чтобы для гостей/неавторизованных вырезался тэг [ url ] [/ url ]?
есть мысль..

файл includes/functions_bbcodeparse.php
функция handle_bbcode_url (примерно 1400 строка)
находим

PHP:


global $wysiwygparse;


меняем на

PHP:

global $wysiwygparse,$bbuserinfo;


чуть ниже

PHP:

if($type == 'url' AND !preg_match('#^[a-z0-9]+://#si', $rightlink))
    {
        
$rightlink = "http://$rightlink";
    }


после этого добавляем

PHP:

if($type == 'url' AND !$bbuserinfo['userid'])
    {
        
$rightlink="register.php?$session[sessionurl]";
        
$text='[открыть линк]';
    }


вместо "[открыть линк]" может быть, разумеется, любой текст =)

__________________
вот так вот...

ICQ 937160


Помещено MCTarakan 26-06-2004 в 19:45:

а можно еще сделать, чтоб надо было набрать например 50 постов, прежде чем линк откроеца?

__________________
yMC.ru - хомяк музыканта


Помещено DimonT 26-06-2004 в 20:34:

хм, можешь туда вместо проверки userid вбить любое условие - хоть наличие непрочитанных приваток.

в данном случае условие будет не

PHP:


if($type == 'url' AND !$bbuserinfo['userid'])

а
PHP:

if($type == 'url' AND $bbuserinfo['posts']<50)

__________________
вот так вот...

ICQ 937160


Помещено MCTarakan 27-06-2004 в 11:27:

ок, попробуем!

__________________
yMC.ru - хомяк музыканта


Помещено DarkShaman 27-06-2004 в 13:03:

А какое должно быть условие, что бы пользователь видел ссылки только в тех разделах, в которых ему разрешено постить?


Помещено DimonT 27-06-2004 в 17:10:

if($type == 'url' AND !($bbuserinfo['permissions']['forumpermissions'] & CANREPLYOTHERS))
вообще, сделайте print_r($bbuserinfo) - там много полезной инфы о юзере.

__________________
вот так вот...

ICQ 937160


Помещено Katie 28-06-2004 в 21:18:

О!... а такую же для vB 2 можно как-то реализовать ?

__________________
ThePalace.ru ->> Уникальный графичесчкий чат
Поймала мыша - ешь неспеша...


Помещено DarkShaman 30-06-2004 в 18:10:

quote:
Первоначальное сообщение от DimonT
if($type == 'url' AND !($bbuserinfo['permissions']['forumpermissions'] & CANREPLYOTHERS))
вообще, сделайте print_r($bbuserinfo) - там много полезной инфы о юзере.



Что-то не работает условие
Точнее работает, но не во всех темах. Даже в одном разделе, в одной теме работает, а в соседней - не.


Помещено DimonT 01-07-2004 в 11:27:

Katie, можно, разумеется.
файл admin/functions.php
после этого

PHP:


function checkurl($url, $hyperlink="") {
  
$righturl = $url;
  if(!
preg_match("![a-z]://!si", $url)) {
    
$righturl = "http://$righturl";
  }


добавить вот это

PHP:

global $bbuserinfo;
if(!
$bbuserinfo['userid'])
{
    
$righturl="register.php?s=$bbuserinfo[sessionhash]&action=signup";
    
$hyperlink="[открыть линк]";
}


опять-таки, условие и текст линка можно задать любые.

DarkShaman, мда, ошибочка вышла.. так проверяются только глобальные настройки юзергруппы.
нашел другой метод - подписываем в globals переменную $session, и условие тогда примет такой вид:
if($type == 'url' AND !($bbuserinfo['forumpermissions']["$session[inforum]"] & CANREPLYOTHERS))

__________________
вот так вот...

ICQ 937160


Помещено DarkShaman 01-07-2004 в 12:34:

Хм, всё равно не работает.
Точнее вот тут http://forum.dinfo.ru/showthread.php?t=5669 работает, а вот тут http://forum.dinfo.ru/showthread.php?t=7049&page=1&pp=15 не работает.


Помещено DimonT 01-07-2004 в 13:11:

а у тебя кэширование постов случайно не включено?
с ним наверняка работать неправильно будет...

DimonT добавил 01-07-2004 в 13:15:10:
собственно, именно на это и похоже, т.к. первый твой линк - старая тема, а второй - новая.
кэширование, разумеется, надо отключить (vB Options >> Cached Posts Lifespan >> 0), т.к. тут надо для каждого юзера по-своему обрабатывать BB-коды.

__________________
вот так вот...

ICQ 937160


Помещено DarkShaman 01-07-2004 в 13:32:

Кажется заработало, спасибо


Помещено Kadet 22-07-2004 в 02:44:

DimonT, огромное спасибо, все работает Теперь мои модераторы будут довольны

Kadet добавил 22-07-2004 в 02:46:11:
Я сейчас это дело как хак оформлю от твоего имени и в обменник закину, не против надеюсь?

__________________
Перхоть - это опилки от спиленных рогов


Помещено DimonT 22-07-2004 в 09:13:

без вопросов

__________________
вот так вот...

ICQ 937160


Помещено onkel.joi 01-12-2004 в 23:39:

DimonT
болъшое спасибо нужная вещъ


Формат времени GMT. Текущее время 23:09.
Показаны 18 сообщений на этой странице

Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.