[Мод] Hide text

Может у кого есть hide на количество сообщений.
Спасибо за внимание.
 
А как можно сделать в версии от Витчера, чтобы как на этом форуме при нажатии на кнопку hide вылезало окно, в котром надо вписать кол-во сообщений?
 
  • Заблокирован
  • #14
уже несколько раз переустаносил и при импортировании
ipb_hide_settings_ru.xml
выскакивает ошибка
Warning: move_uploaded_file() [function.move-uploaded-file]: open_basedir restriction in effect. File(/home/сайт/public_html/uploads/ipb_hide_settings_ru.xml) is not within the allowed path(s:( (/home/hausre:/usr/lib/php:/usr/local/lib/php:/tmp) in /home/hausre/public_html/сайт/sources/lib/admin_functions.php on line 555
 
Важное исправление мод HIDE by Vicer - фикс для /lofiversion

НАЙТИ
PHP:
        /*------------>Hidden text starts<---->(c)Vic'er<------------*/
        if(!is_object($this->parser))
        {
            require_once( ROOT_PATH."sources/handlers/han_parse_bbcode.php" );
            $this->parser = new parse_bbcode();
            $this->parser->ipsclass =& $ipsclass;
        }            
        $r['post'] = $this->parser->regex_hide_hidden( $r['post'], $r['author_id'], 'plain');
        /*------------>Hidden text ends<------>(c)Vic'er<------------*/

ЗАМЕНИТЬ НА:
PHP:
        /*------------>Hidden text starts<---->(c)Vic'er<------------*/
        if(!is_object($parser))
        {
            require_once( ROOT_PATH."sources/handlers/han_parse_bbcode.php" );
            $parser = new parse_bbcode();
            $parser->ipsclass =& $ipsclass;
        }
        $r['post'] = $parser->regex_hide_hidden( $r['post'], $r['author_id'], 'plain');
        /*------------>Hidden text ends<------>(c)Vic'er<------------*/

Работает теперь хайд также как и в полной версии форума :yahoo::ay:

поставил все по предыдущему посту, (реадми) + этот фикс но у меня текст ставиться в хайд и так остаетса то есть так и пишетса [хайд]текст[/хайд]
 
Смотрите окуратней с ним. На сколько мне известно, на версия 2.3.5 он колечил все ссылки в базе при пасинге, и были глюки когда hide, заключался в теги code.
 
Смотрите окуратней с ним. На сколько мне известно, на версия 2.3.5 он колечил все ссылки в базе при пасинге, и были глюки когда hide, заключался в теги code.
Для меня эти слова "пустозвон" потомучто года два назад ставил мод Hide by Vicer на 2.3.1 (тогда еще в php сам был 0) и как ни странно работало на ура, постепенно ипб обновления выходили и апгрейдил успешно форум. Теперь стоит этот же мод на 2.3.6 и без косяков. Заклучение в
Код:
 или цитаты текст остается под хайдом серавно и всем на форуме указ чтоб закрывали ссылки под хайд! :tcl:
Модераторам просьба закрыть тему, уже пошел флуд...
 
Ну не с головы я же это придумал.
Мод как таковой тут абсолютно не при чем! Если бы потрудились копнуть поглубже, увидели бы сами. И этому подвержен не только этот мод, а и все остальные, которые следуют "старой" стилистике обработки bb-кодов. Поясню ниже, а сначала расскажу как вылечить проблему со смертью ссылок после ребилда.

вот упрощенный дифф изменений (там где минус, это то что ищем и удаляем, где плюс - надо добавить)...
PHP:
/sources/classes/bbcode/class_bbcode_core.php
===================================================================
    function regex_hide_tag($txt="") {
+        $txt = $txt[1];
        if ($txt == "") "[HIDE][/HIDE]";
        
/sources/classes/bbcode/class_bbcode.php
===================================================================
-            $txt = preg_replace( "#\[hide\](.+?)\[/hide\]#ies", "\$this->regex_hide_tag('\\1')", $txt );
+            $txt = preg_replace_callback( "#\[hide\](.+?)\[/hide\]#is", array( &$this, 'regex_hide_tag'), $txt );
            
/sources/classes/bbcode/class_bbcode_legacy.php
===================================================================
-            $txt = preg_replace( "#\[hide\](.+?)\[/hide\]#ies", "\$this->regex_hide_tag('\\1')", $txt );
+            $txt = preg_replace_callback( "#\[hide\](.+?)\[/hide\]#is", array( &$this, 'regex_hide_tag'), $txt );
А теперь поясню... Ссылки убиваются не HIDE'ом и ни одной из его функций... Ссылки проще говоря "видоизменяются" на одном из этих участков, а потом добиваются проверкой при разборе ссылок и их бб-кодов. Обработка бб-кодов preg_replace'ом замечательно пахала раньше, но теперь она приводит к плачевным результатам, насколько я мог видеть под дебаггером.

Т.е. мало того, что Arhar особо не виноват, плюс к этому со ссылками будет происходить такая же ерунда, если они будут помещены в любой другой бб-код, обработчик которого вызывается "старым" спосбом. Поэтому проверьте на предмет preg_replace и адаптируйте под preg_replace_callback.

И последнее... Я тут нигде не видел, чтобы поднималась проблема тэга CODE в HIDE'е... Проблема в следующем: если поместить тэг код в хайд, то переносы строк просто превратятся в BR-ы внутри кода. По крайней мере у меня в инструкции по установке HIDE'а сказано:
PHP:
====================================================
3. Открыть файл ./sources/classes/bbcode/class_bbcode.php
====================================================
a) Найти:
====================================================
        //-----------------------------------------
        // Are we parsing bbcode?
        //-----------------------------------------
        
        if ( $this->parse_bbcode )
        {
====================================================
Ниже добавить:
====================================================
            /*------------>Hidden text starts<---->(c)Vic'er<------------*/
            $txt = preg_replace( "#\[hide\](.+?)\[/hide\]#ies", "\$this->regex_hide_tag('\\1')", $txt );
            /*------------>Hidden text ends<------>(c)Vic'er<------------*/[/

В этом случае HIDE поменяет символы новой строки на <BR>, а следующий за ним ниже в цепочке CODE превратит BR из хтмл-а просто в отображаемый html-entity... Криво объяснил, но в принципе верно. Поэтому обработчик CODE следует поставить в самое начало цепочки и это связано не только с HIDE'ом. Поэтому для HIDE'а я бы поменял инструкцию в этой части следующим образом (т.е. перенести хайд ниже кода, а код поставить вверх цепочки, где он, собственно, изначально и находился:(

PHP:
====================================================
3. Открыть файл ./sources/classes/bbcode/class_bbcode.php
====================================================
a) Найти:
====================================================
            //-----------------------------------------
            // Do [CODE] tag
            //-----------------------------------------

            $txt = preg_replace_callback( "#\[code\](.+?)\[/code\]#is", array( &$this, 'regex_code_tag' ), $txt );
====================================================
Ниже добавить:
====================================================
            /*------------>Hidden text starts<---->(c)Vic'er<------------*/
            //-----------------------------------------
            // Do [HIDE] tag
            //-----------------------------------------
            $txt = preg_replace( "#\[hide\](.+?)\[/hide\]#ies", "\$this->regex_hide_tag('\\1')", $txt );
            /*------------>Hidden text ends<------>(c)Vic'er<------------*/[/
 
Назад
Сверху