Strict Standards: Resource ID#18 used as offset, casting to integer (18) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#24 used as offset, casting to integer (24) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#27 used as offset, casting to integer (27) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Расширение тега HIDE
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


 Страниц (4): [1] 2 3 4 »   

> Описание: Скрытый текст виден всем кто оставил больше 10 сообщений
pyccak
Отправлено: 15 Сентября, 2005 - 13:44:49
Post Id



Full Member


Покинул форум
Сообщений всего: 157
Дата рег-ции: Апр. 2005  

Карма 0




вот можно такое сделать?, на пример поставил ссылку в этот скрипт и для того чтоб эту ссылку увидет, надо пользователю оставить на форуме на пример 10 сообщений и после он сможет увидеть ссылку или то что поставил под этот тяг. Я думаю вы поняли что я имею ввиду. Закатив глазки

только для новичков это для тех у кого еще ноль сообшений для тех такое ставить, пока 10 сообщений не набирет на форуме только такда увидет то что я закрыл
 
 Top
TvoyWeb Администратор
Отправлено: 15 Сентября, 2005 - 15:05:11
Post Id



Главный здесь


Покинул форум
Сообщений всего: 7072
Дата рег-ции: Нояб. 2003  
Откуда: Tashkent Uz

Карма 52




pyccak
Ну сделай проверку:
CODE:
if ($inuser['posts'] <= 10 )
{
// не показываем
}
else
{
//показываем
}
 
 Top
pyccak
Отправлено: 15 Сентября, 2005 - 15:24:41
Post Id



Full Member


Покинул форум
Сообщений всего: 157
Дата рег-ции: Апр. 2005  

Карма 0




TvoyWeb
а куда это поставить надо?. скажи точно
 
 Top
nokia6230
Отправлено: 15 Сентября, 2005 - 15:30:37
Post Id



Super Member


Покинул форум
Сообщений всего: 522
Дата рег-ции: Февр. 2005  
Откуда: Germany

Карма 0




pyccak пишет:
а куда это поставить надо?. скажи точно

lib.php
 
 Top
nokia6230
Отправлено: 15 Сентября, 2005 - 18:39:40
Post Id



Super Member


Покинул форум
Сообщений всего: 522
Дата рег-ции: Февр. 2005  
Откуда: Germany

Карма 0




TvoyWeb
Как это должно выглядеть? Так?
CODE:
if ($exbb['reged'])
{
}
else
if ($inuser['posts'] <= 10 )
{

$post = preg_replace( "#\[hide\](.+?)\[/hide\]#is", "<span class=small>Скрытый текст:</span><table cellpadding=3 cellspacing=0 width=85% class=hide_table><tr><td class=hide_td>$1</td></tr></table>", $post );
}
else
{
$post = preg_replace( "#\[hide\](.+?)\[/hide\]#is", "<span class=small><font color=red>[ Скрытый текст. Для прочтения необходима <a href=\"register.php\">регистрация</a>! ]</font></span>", $post );
}
Растерялся
 
 Top
TvoyWeb Администратор
Отправлено: 16 Сентября, 2005 - 01:33:04
Post Id



Главный здесь


Покинул форум
Сообщений всего: 7072
Дата рег-ции: Нояб. 2003  
Откуда: Tashkent Uz

Карма 52




nokia6230
Скорее всего так тогда:
CODE:
if ($exbb['reged'] && $inuser['posts'] <= 10 )
{

$post = preg_replace( "#\[hide\](.+?)\[/hide\]#is", "<span class=small>Скрытый текст:</span><table cellpadding=3 cellspacing=0 width=85% class=hide_table><tr><td class=hide_td>$1</td></tr></table>", $post );
}
else
{
$post = preg_replace( "#\[hide\](.+?)\[/hide\]#is", "<span class=small><font color=red>[ Скрытый текст. Для прочтения необходима <a href=\"register.php\">регистрация</a>! ]</font></span>", $post );
}
 
 Top
CaptainFlint
Отправлено: 16 Сентября, 2005 - 02:05:09
Post Id


Junior Member


Покинул форум
Сообщений всего: 65
Дата рег-ции: Май 2005  
Откуда: Москва

Карма 0




А можно сделать помощнее: чтобы в самом теге HIDE указывать число постов. Т.е., например, пишешь [hide=15]текст[/hide] - и текст будет скрыт для всех незарегистрированных и тех, кто набрал меньше 15 постов. Я это у себя сделал так:

в lib.php после строчки, парсящей обычный hide, добавил строку:
PHP:
$post = preg_replace_callback("#(\[hide=)([0-9]+)(\])(.+?)(\[\/hide\])#is", 'reg_exp_callback', $post);

а ниже, после функции ikoncode, добавил функцию
PHP:
function reg_exp_callback($arr) {
global $exbb,$lang,$inmembmod;
if (!$exbb['reged']) {
return "<BR><span class=small><font color=red>[$lang[HiddenText]. $lang[ToRead] $lang[RegisterAnd] $lang[CollectPosts1] $arr[2] $lang[CollectPosts2]!]</font></span>";
}

$member = getmember($exbb['mem_id']);
if (($member['posts'] >= $arr[2]) || $inmembmod) {
return "<BR><span class=small>$lang[HiddenText]:</span><table cellpadding=3 cellspacing=0 width=85% class=hide_table><tr><td class=hide_td>$arr[4]</td></tr></table>";
} else {
return "<BR><span class=small><font color=red>[$lang[HiddenText]. $lang[ToRead] $lang[CollectPosts1] $arr[2] $lang[CollectPosts2]!]</font></span>";
}
}

Плюс в lang.php добавил строчки (можно и прямо в код функции их запихнуть, если мультиязычность не нужна):
PHP:
$lang['HiddenText'] = 'Скрытый текст';
$lang['ToRead'] = 'Для прочтения необходимо';
$lang['Register'] = '<a href=\"register.php\">зарегистрироваться</a>';
$lang['RegisterAnd'] = '<a href=\"register.php\">зарегистрироваться</a> и';
$lang['CollectPosts1'] = 'набрать не менее';
$lang['CollectPosts2'] = 'сообщений';
 
 Top
DrNets
Отправлено: 16 Сентября, 2005 - 04:21:08
Post Id



Full Member


Покинул форум
Сообщений всего: 153
Дата рег-ции: Авг. 2004  
Откуда: Казахстан

Карма -1




CaptainFlint пишет:
А можно сделать помощнее: чтобы в самом теге HIDE указывать число постов. Т.е., например, пишешь [hide=15]текст[/hide] - и текст будет скрыт для всех незарегистрированных и тех, кто набрал меньше 15 постов. Я это у себя сделал так:.......
.....

а теперь спросим у TvoyWeb - безопасно ли это? т.к с файлом lib.php лучше не шутить Улыбка
 
 Top
TvoyWeb Администратор
Отправлено: 16 Сентября, 2005 - 04:22:33
Post Id



Главный здесь


Покинул форум
Сообщений всего: 7072
Дата рег-ции: Нояб. 2003  
Откуда: Tashkent Uz

Карма 52




CaptainFlint
А зачем ты открываешь файл юзера? Добавь в глобальные переменные $inuser и проверяй $inuser['posts'] . Улыбка
Если в каждом посте будет скрытый текст, так что постоянно открывать файл юзера? Тем более что массив $inuser это данные in forum curent user Улыбка
DrNets пишет:
а теперь спросим у TvoyWeb - безопасно ли это?

Детально не всматривался в код. Просто сейчас нет времени. Вечерком гляну.
 
 Top
TvoyWeb Администратор
Отправлено: 16 Сентября, 2005 - 05:33:19
Post Id



Главный здесь


Покинул форум
Сообщений всего: 7072
Дата рег-ции: Нояб. 2003  
Откуда: Tashkent Uz

Карма 52




CaptainFlint
Думаю будешь непротив небольшой модификации твоего кода.
lib.php
Добавляем функцию:
CODE:
function reg_exp_callback($arr)
{
global $exbb,$lang,$inmembmod,$inuser;

$maxposts = 50;//если юзер не ввел кол-во постов в теге hide
if (!$exbb['reged'])
{
$hidetext = $lang['HiddenText'].' '.$lang['ToRead'].$lang['Register']. sprintf($lang['CollectPosts'], $arr[1]);
return "<BR><span class=small><font color=red>[$hidetext!]</font></span>";
}
$arr[1] = (empty($arr[1]) || $arr[1] == 0) ? $maxposts:$arr[1];
if ($inuser['posts'] >= $arr[1] || $inmembmod)
{
return "<BR><span class=small>$lang[HiddenText]</span><table cellpadding=3 cellspacing=0 width=85% class=hide_table><tr><td class=hide_td>$arr[2]</td></tr></table>";
}
else
{
$hidetext = $lang['HiddenText'].' '.$lang['ToRead']. sprintf($lang['CollectPosts'], $arr[1]);
return "<BR><span class=small><font color=red>[$hidetext!]</font></span>";
}
}

В функцию ikoncode()
CODE:
$post = preg_replace_callback("#\[hide(?:=([0-9]+))*\](.+?)\[/hide\]#is", 'reg_exp_callback', $post);

lang.php
Добавляем строчки:
CODE:
$lang['HiddenText'] = 'Скрытый текст:';
$lang['ToRead'] = 'Для прочтения необходимо';
$lang['Register'] = ' <a href="register.php">зарегистрироваться</a> и';
$lang['CollectPosts'] = ' набрать не менее %d сообщений';

 
 Top
Страниц (4): [1] 2 3 4 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0, скрытых: 0)
« Моды, хаки, скины и дополнения »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 



Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0458]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33