Вопрос к знатокам скриптов :)

Статус
В этой теме нельзя размещать новые ответы.

Micro

Создатель
Регистрация
15 Апр 2007
Сообщения
34
Реакции
1
Вот мне интересно, как можно переделать мод хайда, чтобы сменить условие открытия, скрытого текста, не лимитом постов "$limit", а проверкой, говорил ли автор за этот пост "Спасибо" или нет таблица "post" строка "post_thanks "...

Если я не ошибаюсь, за это отвечает class_bbcode_core,

Судя по-всему

PHP:
function regex_hide_tag($txt="") {
  	
		if ($txt == "") "[HIDE][/HIDE]";
		
		$txt = preg_replace( "#\[hide(=[0-9]+)*\]#i"     , "[HIDE\\1]", $txt );
		$txt = preg_replace( "#\[\/hide\]#i"     , "[/HIDE]", $txt );
		$txt = preg_replace( "#\r|\n#", "<br>", $txt);
    $txt = preg_replace( "#\s{2}#", " &nbsp;", $txt );
    
    $html = $this->wrap_style('HIDE');
    return "<!--HideBegin-->{$html['START']}<!--HideEBegin-->".$txt."<!--HideEnd-->{$html['END']}<!--HideEEnd-->";
  }
  
  function regex_hide_tag_ex($limit="", $txt="", $author="", $type="html", $message="") {
    
		$txt = str_replace( "\'", "'", $txt );
		if ($txt == "" || $limit < 1 || $limit > $this->ipsclass->vars['hide_ex_max']) return "[HIDE=".$limit."]".$txt."[/HIDE]";
		
		$txt = preg_replace( "#\[hide(=[0-9]+)*\]#i"     , "[HIDE\\1]", $txt );
		$txt = preg_replace( "#\[\/hide\]#i"     , "[/HIDE]", $txt );
		$txt = preg_replace( "#\r|\n#", "<br>", $txt);
    $txt = preg_replace( "#\s{2}#", " &nbsp;", $txt );
    
		if ($this->ipsclass->member['g_is_supmod'] || $this->ipsclass->member['is_mod'] || intval($this->ipsclass->member['posts'])>=$limit || ($this->ipsclass->member['id'] && $this->ipsclass->member['id']==$author)){
	    if ($type=="bbcode"){
		    $txt = "[HIDE=".$limit."]".$txt."[/HIDE]";
	    }elseif($type=='plain'){
		    $txt = "<br/>===============<br/>{$this->ipsclass->lang['bbcode_wrap_hide']}:<br/>===============<br/>".$txt."<br/>===============<br/>";
      }else{
				$html = $this->wrap_style('HIDE');
		    $txt = "<!--HideBegin-->{$html['START']}<!--HideEBegin-->".$txt."<!--HideEnd-->{$html['END']}<!--HideEEnd-->";
	    }
		}else{
			if ($type=="bbcode"){
        $txt = (strlen($message)?sprintf($message, $limit):sprintf($this->ipsclass->lang['hidden_block_ex_bbcode'], $limit));
      }elseif($type=="plain"){
        $txt = (strlen($message)?sprintf($message, $limit):sprintf($this->ipsclass->lang['hidden_block_ex_plain'], $limit));
      }else{
	      $html = $this->wrap_style('HIDEERROR');
		    $txt = (strlen($message)?$message:($html['START'].sprintf($this->ipsclass->lang['hidden_block_ex_html'], $limit).$html['END']));
      }
		}
    
    return $txt;
  }


Думаю эта строчка

PHP:
if ($this->ipsclass->member['g_is_supmod'] || $this->ipsclass->member['is_mod'] || intval($this->ipsclass->member['posts'])>=$limit || ($this->ipsclass->member['id'] && $this->ipsclass->member['id']==$author)){
отвечает за проверку на условие открытия текста,
где
PHP:
member['posts']
=
PHP:
$limit
, как перестроить данный скрипт, чтобы вместо проверки на количество сообщений, хайд открывался нажатием на спасибо?:) Чесноговоря я пробовал по всякому, но ума зделать так и не хватило, мож здесь у кого-то хватит )))
 
что никто ненает?:(
 
Код:
if ($this->ipsclass->member['g_is_supmod'] || $this->ipsclass->member['is_mod'] || intval($this->ipsclass->member['posts'])>=$limit || ($this->ipsclass->member['id'] && $this->ipsclass->member['id']==$author))
вот момент где идет проверка, может ли юзер смотреть текст

конкретно эта строка
Код:
intval($this->ipsclass->member['posts'])>=$limit
отвечает за посты

если в этом классе доступны имеющиеся спасибы, типа как
Код:
$this->ipsclass->member['thanks']
или подобно (я понятия не имею как там у вас все сделано, да и сам ипб серьезно не копал), то тупо меняете.
иначе, делайте так, чтобы в этой функции было известно сколько спасиб у юзера
 
конкретно эта строка
Код:
intval($this->ipsclass->member['posts'])>=$limit
отвечает за посты

если в этом классе доступны имеющиеся спасибы, типа как
Код:
$this->ipsclass->member['thanks']
или подобно (я понятия не имею как там у вас все сделано, да и сам ипб серьезно не копал), то тупо меняете.
иначе, делайте так, чтобы в этой функции было известно сколько спасиб у юзера[/QUOTE]

Да, если думать логически, то это именно так, но...

нужно переделать данный скрипт так чтобы шла проверка на значение:

Таблицы "post" со строкой "post_thanks", в котором указывается ID тех кто сказал спасибо, и если при проверке в этой таблице ID юзера который пытается прочитать скрытый текст есть, то только тогда скрытый текст становится не скрытым...

Получается типа Posts['Thanks_point']=member['id']=Условие открытия текста
 
Ладно, кто первый кинет мне в ПМ рабочую идею, получит 5 ВМЗ, а то мне надоело сидеть и стоить из себя програмёра ))))

З.Ы. Номер кашалька когда писать будите, не забудьте указать :)
 

Еще раз свою просьбу изложите.
Я так понял вам нужно Хайд открывать, если юзер нажал Спасибо?
Хм. А если хайд был для меня не так интересен, но глянуть хотелось бы что там под скрытой мессагой, а потом уж делать выводы.
 
Информации недостаточно. Я так понимаю, есть в таблице post колонка сказавших спасибо. Как там хранятся ID? Просто через запятую или еще как? А так это реализовать несложно, с десяток строчек кода.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху