Перейти к контенту

Скрытый текст пока не наберешь 50 сообщений


Рекомендуемые сообщения

на http://www.soft-best.ws/ сделано скрытие по постам для 1.3 на основе когото хака

пишется [hide=*]text[/hide], где * количество постов необходимое для того чтобы было видно, гостям же просто предлагает зарегистрироваться.

Ссылка на комментарий
Поделиться на других сайтах

Тоже самое бы реализовать invaderx тоже просьбы к тебе доделаешь хак выложи пожалуйста!

 

 

Доделаю с возможностью выбора количества постов - выложу. :D

А то у меня пользователи уже сейчас говорят:

Хотелось бы где то закрыть на один ответ, где то на 50...
Ссылка на комментарий
Поделиться на других сайтах

Люди, говорю сразу всем - У МЕНЯ НЕТ ЭТОГО ХАКА И ПИСАТЬ Я ЕГО НЕ ХОЧУ. Не нужно писать мне в ПМ по этому поводу...

 

Тому, кто будет его писать - могу дать несколько советов:

 

1. Внимательно продумайте все варианты, кто и на какое максимальное кол-во постов может ограничивать текст (а то выйдет так, что пользователь с 1 постом скроет текст не только от себя, но и от всего форума - это не критично, но все же).

 

2. Отталкиваться скорее всего нужно от парсинга на лету - так как парсинг на момент поста сообщения излишен и совершенно не нужен.

 

3. Алгоритм парсинга могу предложить след:

 [HIDE posts=40][/HIDE]

 	 while(preg_match("#\[hide posts=([0-9]+)\](.+?)\[/hide\]#is", $row['post'])){
   preg_match_all("#\[hide posts=([0-9]+)\](.+?)\[/hide\]#is", $row['post'], $hiddenArray, PREG_SET_ORDER);
   foreach ($hiddenArray as $_match){
  	 if ($_usersPosts>=intval($_match[1]) || ($ibforums->member['id'] && $ibforums->member['id']==$row['author_id']))
     $row['post'] = str_replace($_match[0], "Скрытый текст: $_match[2]", $row['post'] );
     else
     $row['post'] = str_replace($_match[0], "Скрытый текст: Для просмотра данного текста вам необходимо набрать не менее $_match[1] постов", $row['post'] );
   }
	 }

Ссылка на комментарий
Поделиться на других сайтах

реалезовывал вот так:

 

[hide=30]text[/hide]

 

if(preg_match("#\[hide=?([0-9]+)?\](.+?)\[/hide\]#is", $row['post']))
{
 if($ibforums->member['name']!='Guest')
 {
   while (preg_match("#\[hide=?([0-9]+)?\](.+?)\[/hide\]#is", $row['post'], $hideout))
   {
     if (empty($hideout[1]) || $hideout[1] == 0)
     {
       $row['post'] = preg_replace( "#\[hide=?([0-9]+)?\](.+?)\[/hide\]#is", "<b><span class='hidden_text'>скрыто (0):</span></b><br /> \\2", $row['post'] , 1 );
     } else
     {
       $row['post'] = ($ibforums->member['posts'] >= $hideout[1]) ? preg_replace( "#\[hide=?([0-9]+)?\](.+?)\[/hide\]#is", "<b><span class='hidden_text'>скрыто (\\1):</span></b><br /> \\2", $row['post'] , 1 ) : preg_replace( "#\[hide=?([0-9]+)?\](.+?)\[/hide\]#is", "<br /><b><span class='hidden_text'>скрыто (\\1)</span></b>.", $row['post'] , 1 );
     }
   }
 } else
 {
   $row['post'] = preg_replace( "#\[hide=?([0-9]+)?\](.+?)\[/hide\]#is", "<br /><b><span class='hidden_text'>скрыто! <a href=\"$ibforums->base_url&act=Reg&CODE=00\"><u>зарегестрируйтесь</u></a>!</span></b>", $row['post'] );
 }
}

Ссылка на комментарий
Поделиться на других сайтах

хм... вообще то нужно отталкиваться не от того что мод считает количество постов, а просто при 50 поставх у юзеров меняется группа, у которой и есть возможность видеть скрытый текст :D
Ссылка на комментарий
Поделиться на других сайтах

  • 3 месяца спустя...
реалезовывал вот так:

 

[hide=30]text[/hide]

 

if(preg_match("#\[hide=?([0-9]+)?\](.+?)\[/hide\]#is", $row['post']))
{
 if($ibforums->member['name']!='Guest')
 {
   while (preg_match("#\[hide=?([0-9]+)?\](.+?)\[/hide\]#is", $row['post'], $hideout))
   {
     if (empty($hideout[1]) || $hideout[1] == 0)
     {
       $row['post'] = preg_replace( "#\[hide=?([0-9]+)?\](.+?)\[/hide\]#is", "<b><span class='hidden_text'>скрыто (0):</span></b><br /> \\2", $row['post'] , 1 );
     } else
     {
       $row['post'] = ($ibforums->member['posts'] >= $hideout[1]) ? preg_replace( "#\[hide=?([0-9]+)?\](.+?)\[/hide\]#is", "<b><span class='hidden_text'>скрыто (\\1):</span></b><br /> \\2", $row['post'] , 1 ) : preg_replace( "#\[hide=?([0-9]+)?\](.+?)\[/hide\]#is", "<br /><b><span class='hidden_text'>скрыто (\\1)</span></b>.", $row['post'] , 1 );
     }
   }
 } else
 {
   $row['post'] = preg_replace( "#\[hide=?([0-9]+)?\](.+?)\[/hide\]#is", "<br /><b><span class='hidden_text'>скрыто! <a href=\"$ibforums->base_url&act=Reg&CODE=00\"><u>зарегестрируйтесь</u></a>!</span></b>", $row['post'] );
 }
}

 

маленький вопросец... куда это пихать?

Ссылка на комментарий
Поделиться на других сайтах

маленький вопросец... куда это пихать?
есть готовая реализацию: -> Скрытый текст

 

ps тема закрыта, мод давно реализован.

Ссылка на комментарий
Поделиться на других сайтах

Гость
Эта тема закрыта для публикации сообщений.
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.