1. Важное и срочное обновление IPB 3.4.5 - https://nulled.cc/threads/243375/

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

Тема в разделе "IPB", создана пользователем Micro, 3 май 2007.

Статус темы:
Закрыта.
Модераторы: Maybe
  1. Micro

    Micro Создатель

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

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

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

    PHP:
    function regex_hide_tag($txt="") {
          
            if (
    $txt == """";
            
            
    $txt preg_replace"#\[hide(=[0-9]+)*\]#i"     "[HIDE\\1]"$txt );
            
    $txt preg_replace"#\[\/hide\]#i"     ""$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 || $limit $this->ipsclass->vars['hide_ex_max']) return "[HIDE=".$limit."]".$txt."";
            
            
    $txt preg_replace"#\[hide(=[0-9]+)*\]#i"     "[HIDE\\1]"$txt );
            
    $txt preg_replace"#\[\/hide\]#i"     ""$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."";
            }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 
    , как перестроить данный скрипт, чтобы вместо проверки на количество сообщений, хайд открывался нажатием на спасибо?:) Чесноговоря я пробовал по всякому, но ума зделать так и не хватило, мож здесь у кого-то хватит )))
     
  2. Micro

    Micro Создатель

    Регистр.:
    15 апр 2007
    Сообщения:
    34
    Симпатии:
    1
    что никто ненает?:(
     
  3. Nafania

    Nafania

    Регистр.:
    24 мар 2007
    Сообщения:
    167
    Симпатии:
    46
    Код:
    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']
    или подобно (я понятия не имею как там у вас все сделано, да и сам ипб серьезно не копал), то тупо меняете.
    иначе, делайте так, чтобы в этой функции было известно сколько спасиб у юзера
     
  4. Micro

    Micro Создатель

    Регистр.:
    15 апр 2007
    Сообщения:
    34
    Симпатии:
    1
    конкретно эта строка
    Код:
    intval($this->ipsclass->member['posts'])>=$limit
    отвечает за посты

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

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

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

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

    Получается типа Posts['Thanks_point']=member['id']=Условие открытия текста
     
  5. Micro

    Micro Создатель

    Регистр.:
    15 апр 2007
    Сообщения:
    34
    Симпатии:
    1
    Ладно, кто первый кинет мне в ПМ рабочую идею, получит 5 ВМЗ, а то мне надоело сидеть и стоить из себя програмёра ))))

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

    penguen

    Регистр.:
    7 янв 2007
    Сообщения:
    821
    Симпатии:
    93

    Еще раз свою просьбу изложите.
    Я так понял вам нужно Хайд открывать, если юзер нажал Спасибо?
    Хм. А если хайд был для меня не так интересен, но глянуть хотелось бы что там под скрытой мессагой, а потом уж делать выводы.
     
  7. tov_Me

    tov_Me Постоялец

    Регистр.:
    7 апр 2007
    Сообщения:
    93
    Симпатии:
    6
    Информации недостаточно. Я так понимаю, есть в таблице post колонка сказавших спасибо. Как там хранятся ID? Просто через запятую или еще как? А так это реализовать несложно, с десяток строчек кода.
     
Статус темы:
Закрыта.