[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема в работе скрипта
maldini
Есть такой скрипт WP-Hide. Это плагин к wordpress. Работает просто - позволяет от всех незарегистрированных пользователей скрывать любую часть контента. Главное экранировать эту часть в теги [hide][/hide].
Скрипт работает. То есть контент скрывается, на место него появляется надпись мол нужно зарегестрироваться для просмотра содержимого, всё отлично, НО также отображается на сайте закрывающий тег [/hide].
То есть он должен обрабатывать и не показываться на сайте, а он показывается, хотя скрипт работает.

Присоединяю картинку как он неправильно отображается:
http://depositfiles.com/files/wce7ngomi

Искал как исправить и не могу, наверняка дело пустяк, но...
Сам скрипт всего в одном файле:

Цитата
<?php

function Wp_Hide($text) {
   
global $user_ID;

        if ($user_ID == '') {

$posdebut = strpos($text, '[hide]');
$posfin = strpos($text, '[/hide]')-strpos($text, '[hide]');
       
        $texttohide = substr($text,$posdebut,$posfin);
        $text = str_replace($texttohide, '<fieldset><legend align="center">Скрытый текст</legend><p align="center">Вы должны зарегистрироваться</p></fieldset>', $text);       
       
        return $text;

        }else{

        $text = str_replace('[hide]', '<fieldset><legend align="center">Скрытый текст</legend>', $text);
  $text = str_replace('[/hide]', "</fieldset>", $text);

        return $text;

        }
}

add_filter('the_content', 'Wp_Hide');
add_filter('the_excerpt', 'Wp_Hide');
add_filter('comment_text', 'Wp_Hide');

?>


На самом сайте в коде скрипт выводит такую строку:
<fieldset><legend align="center">Скрытый текст</legend><p align="center">Вы должны зарегистрироваться</p></fieldset>[/hide]

вот как бы этот [/hide] убрать чтобы он не отображался на сайте



Спустя 19 минут, 3 секунды (2.01.2009 - 18:16) Семён написал(а):
Попробуй после строк
PHP
$texttohide substr($text,$posdebut,$posfin);
        
$text str_replace($texttohide'<fieldset><legend align="center">Скрытый текст</legend><p align="center">Вы должны зарегистрироваться</p></fieldset>'$text);


дописать строку:
PHP
$text preg_replace("/[/hide]/"""$text);

Спустя 1 час, 47 минут, 30 секунд (2.01.2009 - 20:04) maldini написал(а):
неа - выдаёт ошибку на строке 21.
Ну ладно. Тему можно закрыть, полазил поискал, нашёл похожий скрипт, более функциональный и работает. можно по этому поводу не заморачиваться больше.
Семён спасибо за помощь.

Спустя 2 часа, 21 минута, 42 секунды (2.01.2009 - 22:26) Семён написал(а):
Если точнее можно узнать ту строку на которую выпадал ошибка

Спустя 9 месяцев, 3 дня, 14 часов, 19 минут, 20 секунд (6.10.2009 - 11:45) Guest написал(а):
maldini, что за скрипт нашел? Поделись, плиз, а то замучилась с этим [/hide]

Спустя 16 минут, 25 секунд (6.10.2009 - 12:01) twin написал(а):
А зачем так мудрить... просто заменить одно на другое нельзя разве?

PHP
$bb_tag = array(
                         
'[hide]',
                         
'[/hide]',
                        );

$tag = array(
                         
'<fieldset><legend align="center">Скрытый текст</legend>',
                         
'</fieldset>',
                        );

$text str_replace($bb_tag$tag$text);

или я чего то недопонял?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.