Тема: Что со спойлерами?

Непонятно, по каким соображениям спойлер убрали. Имхо хорошая фича. Сам хотел прикрутить на форуме, который находится в моем ведении. Думаете, не стОит?

Поделиться

2

Re: Что со спойлерами?

По-моему это какая-то бестолковая фича.

Сайт hcs

Поделиться

3

Re: Что со спойлерами?

[spoiler]а мне нравится[/spoiler]

Сайт Slavik

Поделиться

4

Re: Что со спойлерами?

А я вообще незнаю что это такое. big_smile

Поделиться

5

Re: Что со спойлерами?

А я сегодня у себя на форуме спойлер решил вернуть.
Правда я его переделал и теперь он должен работать как выпадающая/прячущаяся область.
Пример тут _http://forum.alltes.ru/viewtopic.php?pid=7208#p7208
З.Ы. Все еще сижу на 1.2 ветке smile

Моя сборка FluxBB 1.4

Сайт Visman

Поделиться

6 (28.04.2009 03:11 отредактировано Pashok)

Re: Что со спойлерами?

Visman пишет:

А я сегодня у себя на форуме спойлер решил вернуть.
Правда я его переделал и теперь он должен работать как выпадающая/прячущаяся область.

Классно, как раз это мне и нужно. Поделитесь пожалуйста, как это сделать?

Поделиться

7

Re: Что со спойлерами?

Pashok пишет:

Поделитесь пожалуйста, как это сделать?

1. В панель ББ-кодов нужно добавить код

[spoiler][/spoiler]

Свой вариант не предоставляю, т.к. у меня нестандартная мутация панели бб-кодов.

2. В файле parser.php изменена ф-и do_bbcode
В глобальные переменные добавлена $spoiler_counter. Выглядит так

global $lang_common, $pun_user, $spoiler_counter;

После обработки цитат

    if (strpos($text, 'quote') !== false)
    {
        $text = str_replace('[quote]', '</p><blockquote><div class="incqbox"><p>', $text);
        $text = preg_replace('#\[quote=(&quot;|"|\'|)(.*)\\1\]#seU', '"</p><blockquote><div class=\"incqbox\"><h4>".str_replace(array(\'[\', \'\\"\'), array(\'&#91;\', \'"\'), \'$2\')." ".$lang_common[\'wrote\'].":</h4><p>"', $text);
        $text = preg_replace('#\[\/quote\]\s*#', '</p></div></blockquote><p>', $text);
    }

добавил обработку спойлера

  // Обрабатываем спойлер
    if (strpos($text, 'spoiler') !== false)
    {
      if (!isset($spoiler_counter))
      $spoiler_counter = 0;

      $flag = true;
      $pos = 1;
      $kolvo = 0;
      $sum = 0;
      while ($flag && strpos($text, 'spoiler', $pos) !== false)
      {
        $pos = strpos($text, 'spoiler', $pos);
      if (substr($text, $pos - 1, 9) == '[spoiler]') {
        $kolvo++;
        $sum++;
      } elseif (substr($text, $pos - 2, 10) == '[/spoiler]')
        $kolvo--;
      if ($kolvo < 0 )
        $flag = false;
      $pos = $pos + 7;
      }
      if ($flag && $kolvo == 0 )
    {
      for ($i = $sum; $i > 0; $i--)
      {
        $spoiler_counter++;
        $text = preg_replace('#\[spoiler\]#', '</p><blockquote><span class=switch style="cursor:hand;" onClick="if(pSpl'.$spoiler_counter.'.style.display == '."'".'none'."'".') pSpl'.$spoiler_counter.'.style.display = '."'".'block'."'".'; else pSpl'.$spoiler_counter.'.style.display = '."'".'none'."'".';"><h4>'.$lang_easy_bbcode['Spoiler'].':</h4></span><span id=pSpl'.$spoiler_counter.' style="display:none;border-top:1px dotted gray;margin-top:3px">', $text, 1);
      }
      $text = preg_replace('#\[\/spoiler\]#', '</span></blockquote><p>', $text);
    }
    }

Кажется все.

Моя сборка FluxBB 1.4

Сайт Visman

Поделиться

8 (29.04.2009 02:42 отредактировано Pashok)

Re: Что со спойлерами?

Спасибо, правда не получилось почему-то. Сделал изменения в parser.php, пока без изменений в панели ББ-кодов. Не очень понял вот это:

В файле parser.php изменена ф-и do_bbcode
В глобальные переменные добавлена $spoiler_counter.

Строку "global $lang_common, $pun_user, $spoiler_counter;" добавил прямо перед обработкой спойлера.
Вот что получилось:
s54.radikal.ru/i144/0904/d2/89885eaa8fb0.jpg

Ошибку выдаёт вот в этой строке:

$text = preg_replace('#\[quote=(&quot;|"|\'|)(.*)\\1\]#seU', '"</p><blockquote><div class=\"incqbox\"><h4>".str_replace(array(\'[\', \'\\"\'), array(\'&#91;\', \'"\'), \'$2\')." ".$lang_common[\'wrote\'].":</h4><p>"', $text);

Поделиться

9

Re: Что со спойлерами?

Глобальные переменные должны быть объявлены в начале ф-ии.
Т.е.

//
// Convert BBCodes to their HTML equivalent
//
function do_bbcode($text)
{
    global $lang_common, $pun_user, $spoiler_counter;
    

а потом уже идет обработка цитирования, спойлера и остальных бб-кодов.

Моя сборка FluxBB 1.4

Сайт Visman

Поделиться

10

Re: Что со спойлерами?

Всё-равно ошибка:

Notice: Undefined variable: lang_easy_bbcode in /home/users/m/mashkara/domains/tv1080.ru/forum/include/parser.php on line 536

Поделиться

11

Re: Что со спойлерами?

Ну так ты добавь lang_easy_bbcode

Сайт hcs

Поделиться

12

Re: Что со спойлерами?

Вместо этого

$lang_easy_bbcode['Spoiler']

поставь

'Спойлер'
Моя сборка FluxBB 1.4

Сайт Visman

Поделиться

13 (29.04.2009 08:42 отредактировано Pashok)

Re: Что со спойлерами?

Спасибо, работает в IE smile
Но не работает в Mozilla Firefox sad , впрочем как и здесь: forum.alltes.ru/viewtopic.php?pid=7208#p7208

Можно как-нибудь модифицировать, чтобы и в Мозиле работало?

Поделиться

14

Re: Что со спойлерами?

Если найдешь решение, напиши.
Я Оперой пользуюсь, тестироватье на чем wink

Моя сборка FluxBB 1.4

Сайт Visman

Поделиться

15

Re: Что со спойлерами?

Я к сожалению не знаю PHP. Может мастера помогут?

Поделиться

16

Re: Что со спойлерами?

У меня тоже проблема со сполерами. Установила mod_modern_bbcode.php  все работает а вот при нажатии на сполер выставляется

[spoiler][/spoiler]

но в сообщении информация ну укорачивается как должно быть а только пишется вверху Спойлер: и сообщение все в своем огромном .... виде

Сайт Dimitra

Поделиться

17

Re: Что со спойлерами?

Dimitra пишет:

У меня тоже проблема со сполерами.

Как уже выше упоминалось

Pashok пишет:

Спасибо, работает в IE

Visman пишет:

Я Оперой пользуюсь,

Т.е. нужна помощь человека, который разбирается в java (а спойлер с помощью него сделан) и который сделает модификацию для поддержки другими браузерами.

Моя сборка FluxBB 1.4

Сайт Visman

Поделиться

18

Re: Что со спойлерами?

Народ, не ужели никому спойлеры не нужны? Или этим форумом никто не пользуется вообще?
Может всё же кто-нибудь подправит код, чтобы спойлеры корректно работали?

Поделиться