Русское сообщество fluxbb

Быстрый лёгкий надёжный форумный движок

Вы не вошли.

Объявление

Вы можете внести свой вклад в содержание сайта. Жертвователи попадут в почетную группу "Спонсоры". Поддержать сайт.

#1 2007-11-19 11:41:23

Ivan the Knight
Гость

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

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

#2 2007-11-19 12:00:58

hcs
Гость

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

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

#3 2007-11-19 13:39:42

Slavik
Гость

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

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

#4 2007-11-19 17:19:37

maximum
Гость

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

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

#5 2009-02-01 20:26:29

Visman
Гость

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

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

#6 2009-04-28 14:10:27

Pashok
Гость

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

Visman пишет:

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

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

Редактировался Pashok (2009-04-28 14:11:24)

#7 2009-04-29 13:01:40

Visman
Гость

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);
    }
    }

Кажется все.

#8 2009-04-29 13:39:40

Pashok
Гость

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

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

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

Строку "global $lang_common, $pun_user, $spoiler_counter;" добавил прямо перед обработкой спойлера.
Вот что получилось:
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);

Редактировался Pashok (2009-04-29 13:42:11)

#9 2009-04-29 15:40:21

Visman
Гость

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

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

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

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

#10 2009-04-29 15:53:58

Pashok
Гость

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

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

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

#11 2009-04-29 16:27:16

hcs
Гость

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

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

#12 2009-04-29 17:44:32

Visman
Гость

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

Вместо этого

$lang_easy_bbcode['Spoiler']

поставь

'Спойлер'

#13 2009-04-29 18:20:55

Pashok
Гость

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

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

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

Редактировался Pashok (2009-04-29 19:42:30)

#14 2009-04-30 15:47:40

Visman
Гость

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

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

#15 2009-05-07 18:49:05

Pashok
Гость

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

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

Подвал доски

Под управлением FluxBB. Хостинг Hostens