Полезная информация


----

Начать новую тему Ответить на тему
АвторСообщение

 Сообщение BB3Spoiler - спойлер для phpbb3 2012-05-20

Аватар пользователя

Введение

Долгое время я искал хороший спойлер для своего форума phpbb3, очень хотелось найти спойлер, поддерживающий мультивложенность (спойлер в спойлере) и наконец то нашел. Сегодня я хотел бы проанонсировать замечательный мод спойлера для phpbb3 - BB3Spoiler. Данный мод уникальный и не имеет аналогов, так же его можно протестировать у нас на форуме. Среди его особенностей
  • Мультивложенность
    Пример
    ляляля
    ляляляля
    ляляля
  • Возможность задавать имя спойлеру
    Пример
    и все будет работать :-0=)
  • Автоматический резайз картинок, вставленных через ВВ-код [img]
    Пример

    Нажмите на картинку для увеличения
Это основные возможности, которые мне очень понравились, так что советую ставить всем.

Установка

Скачиваем архив и устанавливаем по инструкции BB3Spoiler-install.txt

После установки, данный ВВ-код (его кнопка) появится после кнопки [quote]. А настройки спойлера осуществляются в админке - Общие - Размещение сообщений. Впринципе с установкой не должно возникнуть проблем, нужно лишь внимательно сделать все правки.
Успехов :co_ol:


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!

Теги темы
BB3Spoiler - спойлер для phpbb3, спойлер phpbb3, вложенный спойлер phpbb3, мультивложенность спойлера phpbb3
          Вернуться наверх  
 


Аватар пользователя

С путями до скриптов спойлера все впорядке ? Джиквери в шапке надеюсь только один раз подключен ? Кеши нормально чистились ? Всевозможные форумные + браузерный?


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

DeaDRoMeO, а если у меня установлен мод Auto Image Resizer который тоже уменьшает картинки то между ними могут конфликты быть или один из модов как бы выключить придеться? :ga-ze-ta;


          Вернуться наверх  
 


Аватар пользователя

А вы просто некоторые правки пропустите, которые касаются тега [img]


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Случайный аватар. Пользователю рекомендуется загрузить свой аватар в Настройках профиля

что за бред тут навертел?
в рабочем варианте без танцев с бубном есть вариант? я не программист


          Вернуться наверх  
 


Аватар пользователя

Интересное заявление, у всех работает, а у вас танцы с бубном. С уверенностью могу сказать что на дефолтных стилях все на ура, на сторонних стиля с некоторыми модификациями будут проблемы, но в основном изза невнимательности. Конкретно что за проблемы возникли с модом?


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

Классный мод и как раз искал чтобы спойлер в спойлере сделать, но правок сильно много, не уверен в соих силах, может как-то потом поставлю, пока боюсь...


          Вернуться наверх  
 


Аватар пользователя

Tipocheg, мод достаточно сложен и требует упорства и усидчивости, правок куча - ошибку легко сделать


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

Пятый раз переустанавливаю, с расстановкой не спеша, внимательно (без пива) хотя первые два раза грешил
устанавливаю пока на денвер, когда все ровно тогда уже заливаю на хостинг
в админке все появляется и настраивается, захожу в категорию, затем на форум все ок, но как только вхожу в тему, появляется белый экран с надписью
Parse error: syntax error, unexpected ';', expecting T_FUNCTION in Z:\home\tarau\www\includes\bbcode.php on line 651
Вот сам includes\bbcode.php тыкните пальцем что не так делаю, что за Синтаксическая ошибка
<?php
/**
*
* @package phpBB3
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
* @ignore
*/
if (!defined('IN_PHPBB'))
{
   exit;
}

/**
* BBCode class
* @package phpBB3
*/
class bbcode
{
   var $bbcode_uid = '';
   var $bbcode_bitfield = '';
   var $bbcode_cache = array();
   var $bbcode_template = array();

   var $bbcodes = array();

   var $template_bitfield;
   var $template_filename = '';

   /**
   * Constructor
   * Init bbcode cache entries if bitfield is specified
   */
   function bbcode($bitfield = '')
   {
      if ($bitfield)
      {
         $this->bbcode_bitfield = $bitfield;
         $this->bbcode_cache_init();
      }
   }

   /**
   * Second pass bbcodes
   */
   function bbcode_second_pass(&$message, $bbcode_uid = '', $bbcode_bitfield = false)
   {
      if ($bbcode_uid)
      {
         $this->bbcode_uid = $bbcode_uid;
      }

      if ($bbcode_bitfield !== false)
      {
         $this->bbcode_bitfield = $bbcode_bitfield;

         // Init those added with a new bbcode_bitfield (already stored codes will not get parsed again)
         $this->bbcode_cache_init();
      }

      if (!$this->bbcode_bitfield)
      {
         // Remove the uid from tags that have not been transformed into HTML
         if ($this->bbcode_uid)
         {
            $message = str_replace(':' . $this->bbcode_uid, '', $message);
         }

         return;
      }

      $str = array('search' => array(), 'replace' => array());
      $preg = array('search' => array(), 'replace' => array());

      $bitfield = new bitfield($this->bbcode_bitfield);
      $bbcodes_set = $bitfield->get_all_set();

      $undid_bbcode_specialchars = false;
      foreach ($bbcodes_set as $bbcode_id)
      {
         if (!empty($this->bbcode_cache[$bbcode_id]))
         {
            foreach ($this->bbcode_cache[$bbcode_id] as $type => $array)
            {
               foreach ($array as $search => $replace)
               {
                  ${$type}['search'][] = str_replace('$uid', $this->bbcode_uid, $search);
                  ${$type}['replace'][] = $replace;
               }

               if (sizeof($str['search']))
               {
                  $message = str_replace($str['search'], $str['replace'], $message);
                  $str = array('search' => array(), 'replace' => array());
               }

               if (sizeof($preg['search']))
               {
                  // we need to turn the entities back into their original form to allow the
                  // search patterns to work properly
                  if (!$undid_bbcode_specialchars)
                  {
                     $message = str_replace(array('&#58;', '&#46;'), array(':', '.'), $message);
                     $undid_bbcode_specialchars = true;
                  }

                  $message = preg_replace($preg['search'], $preg['replace'], $message);
                  $preg = array('search' => array(), 'replace' => array());
               }
            }
         }
      }

      // Remove the uid from tags that have not been transformed into HTML
      $message = str_replace(':' . $this->bbcode_uid, '', $message);
   }

   /**
   * Init bbcode cache
   *
   * requires: $this->bbcode_bitfield
   * sets: $this->bbcode_cache with bbcode templates needed for bbcode_bitfield
   */
   function bbcode_cache_init()
   {
      global $phpbb_root_path, $template, $user;

      if (empty($this->template_filename))
      {
         $this->template_bitfield = new bitfield($user->theme['bbcode_bitfield']);
         $this->template_filename = $phpbb_root_path . 'styles/' . $user->theme['template_path'] . '/template/bbcode.html';

         if (!@file_exists($this->template_filename))
         {
            if (isset($user->theme['template_inherits_id']) && $user->theme['template_inherits_id'])
            {
               $this->template_filename = $phpbb_root_path . 'styles/' . $user->theme['template_inherit_path'] . '/template/bbcode.html';
               if (!@file_exists($this->template_filename))
               {
                  trigger_error('The file ' . $this->template_filename . ' is missing.', E_USER_ERROR);
               }
            }
            else
            {
               trigger_error('The file ' . $this->template_filename . ' is missing.', E_USER_ERROR);
            }
         }
      }

      $bbcode_ids = $rowset = $sql = array();

      $bitfield = new bitfield($this->bbcode_bitfield);
      $bbcodes_set = $bitfield->get_all_set();

      foreach ($bbcodes_set as $bbcode_id)
      {
         if (isset($this->bbcode_cache[$bbcode_id]))
         {
            // do not try to re-cache it if it's already in
            continue;
         }
         $bbcode_ids[] = $bbcode_id;

         if ($bbcode_id > NUM_CORE_BBCODES)
         {
            $sql[] = $bbcode_id;
         }
      }

      if (sizeof($sql))
      {
         global $db;

         $sql = 'SELECT *
            FROM ' . BBCODES_TABLE . '
            WHERE ' . $db->sql_in_set('bbcode_id', $sql);
         $result = $db->sql_query($sql, 3600);

         while ($row = $db->sql_fetchrow($result))
         {
            // To circumvent replacing newlines with <br /> for the generated html,
            // we use carriage returns here. They are later changed back to newlines
            $row['bbcode_tpl'] = str_replace("\n", "\r", $row['bbcode_tpl']);
            $row['second_pass_replace'] = str_replace("\n", "\r", $row['second_pass_replace']);

            $rowset[$row['bbcode_id']] = $row;
         }
         $db->sql_freeresult($result);
      }

      foreach ($bbcode_ids as $bbcode_id)
      {
         switch ($bbcode_id)
         {
            case 0:
               $this->bbcode_cache[$bbcode_id] = array(
                  'str' => array(
                     '[/quote:$uid]'   => $this->bbcode_tpl('quote_close', $bbcode_id)
                  ),
                  'preg' => array(
                     '#\[quote(?:=&quot;(.*?)&quot;)?:$uid\]((?!\[quote(?:=&quot;.*?&quot;)?:$uid\]).)?#ise'   => "\$this->bbcode_second_pass_quote('\$1', '\$2')"
                  )
               );
            break;

            case 1:
               $this->bbcode_cache[$bbcode_id] = array(
                  'str' => array(
                     '[b:$uid]'   => $this->bbcode_tpl('b_open', $bbcode_id),
                     '[/b:$uid]'   => $this->bbcode_tpl('b_close', $bbcode_id),
                  )
               );
            break;

            case 2:
               $this->bbcode_cache[$bbcode_id] = array(
                  'str' => array(
                     '[i:$uid]'   => $this->bbcode_tpl('i_open', $bbcode_id),
                     '[/i:$uid]'   => $this->bbcode_tpl('i_close', $bbcode_id),
                  )
               );
            break;

            case 3:
               $this->bbcode_cache[$bbcode_id] = array(
                  'preg' => array(
                     '#\[url:$uid\]((.*?))\[/url:$uid\]#s'         => $this->bbcode_tpl('url', $bbcode_id),
                     '#\[url=([^\[]+?):$uid\](.*?)\[/url:$uid\]#s'   => $this->bbcode_tpl('url', $bbcode_id),
                  )
               );
            break;

            case 4:
               if ($user->optionget('viewimg'))
               {
                  $this->bbcode_cache[$bbcode_id] = array(
                     'preg' => array(
                        '#\[img:$uid\](.*?)\[/img:$uid\]#s'      => $this->bbcode_tpl('img', $bbcode_id),
                     )
                  );
               }
               else
               {
                  $this->bbcode_cache[$bbcode_id] = array(
                     'preg' => array(
                        '#\[img:$uid\](.*?)\[/img:$uid\]#s'      => str_replace('$2', '[ img ]', $this->bbcode_tpl('url', $bbcode_id, true)),
                     )
                  );
               }
            break;

            case 5:
               $this->bbcode_cache[$bbcode_id] = array(
                  'preg' => array(
                     '#\[size=([\-\+]?\d+):$uid\](.*?)\[/size:$uid\]#s'   => $this->bbcode_tpl('size', $bbcode_id),
                  )
               );
            break;

            case 6:
               $this->bbcode_cache[$bbcode_id] = array(
                  'preg' => array(
                     '!\[color=(#[0-9a-f]{3}|#[0-9a-f]{6}|[a-z\-]+):$uid\](.*?)\[/color:$uid\]!is'   => $this->bbcode_tpl('color', $bbcode_id),
                  )
               );
            break;

            case 7:
               $this->bbcode_cache[$bbcode_id] = array(
                  'str' => array(
                     '[u:$uid]'   => $this->bbcode_tpl('u_open', $bbcode_id),
                     '[/u:$uid]'   => $this->bbcode_tpl('u_close', $bbcode_id),
                  )
               );
            break;

            case 8:
               $this->bbcode_cache[$bbcode_id] = array(
                  'preg' => array(
                     '#\[code(?:=([a-z]+))?:$uid\](.*?)\[/code:$uid\]#ise'   => "\$this->bbcode_second_pass_code('\$1', '\$2')",
                  )
               );
            break;

            case 9:
               $this->bbcode_cache[$bbcode_id] = array(
                  'preg' => array(
                     '#(\[\/?(list|\*):[mou]?:?$uid\])[\n]{1}#'   => "\$1",
                     '#(\[list=([^\[]+):$uid\])[\n]{1}#'         => "\$1",
                     '#\[list=([^\[]+):$uid\]#e'               => "\$this->bbcode_list('\$1')",
                  ),
                  'str' => array(
                     '[list:$uid]'      => $this->bbcode_tpl('ulist_open_default', $bbcode_id),
                     '[/list:u:$uid]'   => $this->bbcode_tpl('ulist_close', $bbcode_id),
                     '[/list:o:$uid]'   => $this->bbcode_tpl('olist_close', $bbcode_id),
                     '[*:$uid]'         => $this->bbcode_tpl('listitem', $bbcode_id),
                     '[/*:$uid]'         => $this->bbcode_tpl('listitem_close', $bbcode_id),
                     '[/*:m:$uid]'      => $this->bbcode_tpl('listitem_close', $bbcode_id)
                  ),
               );
            break;

            case 10:
               $this->bbcode_cache[$bbcode_id] = array(
                  'preg' => array(
                     '#\[email:$uid\]((.*?))\[/email:$uid\]#is'         => $this->bbcode_tpl('email', $bbcode_id),
                     '#\[email=([^\[]+):$uid\](.*?)\[/email:$uid\]#is'   => $this->bbcode_tpl('email', $bbcode_id)
                  )
               );
            break;

            case 11:
               if ($user->optionget('viewflash'))
               {
                  $this->bbcode_cache[$bbcode_id] = array(
                     'preg' => array(
                        '#\[flash=([0-9]+),([0-9]+):$uid\](.*?)\[/flash:$uid\]#'   => $this->bbcode_tpl('flash', $bbcode_id),
                     )
                  );
               }
               else
               {
                  $this->bbcode_cache[$bbcode_id] = array(
                     'preg' => array(
                        '#\[flash=([0-9]+),([0-9]+):$uid\](.*?)\[/flash:$uid\]#'   => str_replace('$1', '$3', str_replace('$2', '[ flash ]', $this->bbcode_tpl('url', $bbcode_id, true)))
                     )
                  );
               }
            break;

            case 12:
               $this->bbcode_cache[$bbcode_id] = array(
                  'str'   => array(
                     '[/attachment:$uid]'   => $this->bbcode_tpl('inline_attachment_close', $bbcode_id)
                  ),
                  'preg'   => array(
                     '#\[attachment=([0-9]+):$uid\]#'   => $this->bbcode_tpl('inline_attachment_open', $bbcode_id)
                  )
               );
            break;

            case 13:
               $this->bbcode_cache[$bbcode_id] = array(
                  'str' => array(
                     '[/spoiler:$uid]'   => $this->bbcode_tpl('spoiler_close', $bbcode_id)
                  ),
                  'preg' => array(
                     '#\[spoiler(?:=&quot;(.*?)&quot;)?:$uid\]((?!\[spoiler(?:=&quot;.*?&quot;)?:$uid\]).)?#ise'   => "\$this->bbcode_second_pass_spoiler('\$1', '\$2')"
                  )
               );
            break;
            default:
               if (isset($rowset[$bbcode_id]))
               {
                  if ($this->template_bitfield->get($bbcode_id))
                  {
                     // The bbcode requires a custom template to be loaded
                     if (!$bbcode_tpl = $this->bbcode_tpl($rowset[$bbcode_id]['bbcode_tag'], $bbcode_id))
                     {
                        // For some reason, the required template seems not to be available, use the default template
                        $bbcode_tpl = (!empty($rowset[$bbcode_id]['second_pass_replace'])) ? $rowset[$bbcode_id]['second_pass_replace'] : $rowset[$bbcode_id]['bbcode_tpl'];
                     }
                     else
                     {
                        // In order to use templates with custom bbcodes we need
                        // to replace all {VARS} to corresponding backreferences
                        // Note that backreferences are numbered from bbcode_match
                        if (preg_match_all('/\{(URL|LOCAL_URL|EMAIL|TEXT|SIMPLETEXT|INTTEXT|IDENTIFIER|COLOR|NUMBER)[0-9]*\}/', $rowset[$bbcode_id]['bbcode_match'], $m))
                        {
                           foreach ($m[0] as $i => $tok)
                           {
                              $bbcode_tpl = str_replace($tok, '$' . ($i + 1), $bbcode_tpl);
                           }
                        }
                     }
                  }
                  else
                  {
                     // Default template
                     $bbcode_tpl = (!empty($rowset[$bbcode_id]['second_pass_replace'])) ? $rowset[$bbcode_id]['second_pass_replace'] : $rowset[$bbcode_id]['bbcode_tpl'];
                  }

                  // Replace {L_*} lang strings
                  $bbcode_tpl = preg_replace('/{L_([A-Z_]+)}/e', "(!empty(\$user->lang['\$1'])) ? \$user->lang['\$1'] : ucwords(strtolower(str_replace('_', ' ', '\$1')))", $bbcode_tpl);

                  if (!empty($rowset[$bbcode_id]['second_pass_replace']))
                  {
                     // The custom BBCode requires second-pass pattern replacements
                     $this->bbcode_cache[$bbcode_id] = array(
                        'preg' => array($rowset[$bbcode_id]['second_pass_match'] => $bbcode_tpl)
                     );
                  }
                  else
                  {
                     $this->bbcode_cache[$bbcode_id] = array(
                        'str' => array($rowset[$bbcode_id]['second_pass_match'] => $bbcode_tpl)
                     );
                  }
               }
               else
               {
                  $this->bbcode_cache[$bbcode_id] = false;
               }
            break;
         }
      }
   }

   /**
   * Return bbcode template
   */
   function bbcode_tpl($tpl_name, $bbcode_id = -1, $skip_bitfield_check = false)
   {
      global $config, $user;

      $ppkbb_spoiler_options=my_split_config($config['ppkbb_spoiler_options'], 6, 'my_int_val');
      if($ppkbb_spoiler_options[3]==1)
      {
         $img_wojs=$user->lang['SPOILER_IMAGE_WOJS'];
      }
      else
      {
         $img_wojs='';
      }
      static $bbcode_hardtpl = array();
      if (empty($bbcode_hardtpl))
      {
         global $user;

         $bbcode_hardtpl = array(
            'b_open'   => '<span style="font-weight: bold">',
            'b_close'   => '</span>',
            'img'      => (!$ppkbb_spoiler_options[4] && $ppkbb_spoiler_options[5] ? '<a href="$1" rel="prettyPhotoSpoiler[0]">' : '').'<var title="$1" class="postImg" alt="' . $user->lang['IMAGE'] . '" />'.$img_wojs.'</var>'.(!$ppkbb_spoiler_options[4] && $ppkbb_spoiler_options[5] ? '</a>' : ''),
            'i_open'   => '<span style="font-style: italic">',
            'i_close'   => '</span>',
            'u_open'   => '<span style="text-decoration: underline">',
            'u_close'   => '</span>',
            'img'      => '<img src="$1" alt="' . $user->lang['IMAGE'] . '" />',
            'size'      => '<span style="font-size: $1%; line-height: normal">$2</span>',
            'color'      => '<span style="color: $1">$2</span>',
            'email'      => '<a href="mailto:$1">$2</a>'
         );
      }

      if ($bbcode_id != -1 && !$skip_bitfield_check && !$this->template_bitfield->get($bbcode_id))
      {
         return (isset($bbcode_hardtpl[$tpl_name])) ? $bbcode_hardtpl[$tpl_name] : false;
      }

      if (empty($this->bbcode_template))
      {
         if (($tpl = file_get_contents($this->template_filename)) === false)
         {
            trigger_error('Could not load bbcode template', E_USER_ERROR);
         }

         // replace \ with \\ and then ' with \'.
         $tpl = str_replace('\\', '\\\\', $tpl);
         $tpl = str_replace("'", "\'", $tpl);

         // strip newlines and indent
         $tpl = preg_replace("/\n[\n\r\s\t]*/", '', $tpl);

         // Turn template blocks into PHP assignment statements for the values of $bbcode_tpl..
         $this->bbcode_template = array();

         $matches = preg_match_all('#<!-- BEGIN (.*?) -->(.*?)<!-- END (?:.*?) -->#', $tpl, $match);

         for ($i = 0; $i < $matches; $i++)
         {
            if (empty($match[1][$i]))
            {
               continue;
            }

            $this->bbcode_template[$match[1][$i]] = $this->bbcode_tpl_replace($match[1][$i], $match[2][$i]);
         }
      }

      return (isset($this->bbcode_template[$tpl_name])) ? $this->bbcode_template[$tpl_name] : ((isset($bbcode_hardtpl[$tpl_name])) ? $bbcode_hardtpl[$tpl_name] : false);
   }

   /**
   * Return bbcode template replacement
   */
   function bbcode_tpl_replace($tpl_name, $tpl)
   {
      global $user;

      static $replacements = array(
         'quote_username_open'   => array('{USERNAME}'   => '$1'),
         'spoiler_title_open'   => array('{TITLE}'   => '$1'),
         'color'               => array('{COLOR}'      => '$1', '{TEXT}'         => '$2'),
         'size'               => array('{SIZE}'      => '$1', '{TEXT}'         => '$2'),
         'img'               => array('{URL}'      => '$1'),
         'flash'               => array('{WIDTH}'      => '$1', '{HEIGHT}'         => '$2', '{URL}'   => '$3'),
         'url'               => array('{URL}'      => '$1', '{DESCRIPTION}'   => '$2'),
         'email'               => array('{EMAIL}'      => '$1', '{DESCRIPTION}'   => '$2')
      );

      $tpl = preg_replace('/{L_([A-Z_]+)}/e', "(!empty(\$user->lang['\$1'])) ? \$user->lang['\$1'] : ucwords(strtolower(str_replace('_', ' ', '\$1')))", $tpl);

      if (!empty($replacements[$tpl_name]))
      {
         $tpl = strtr($tpl, $replacements[$tpl_name]);
      }

      return trim($tpl);
   }

   /**
   * Second parse list bbcode
   */
   function bbcode_list($type)
   {
      if ($type == '')
      {
         $tpl = 'ulist_open_default';
         $type = 'default';
      }
      else if ($type == 'i')
      {
         $tpl = 'olist_open';
         $type = 'lower-roman';
      }
      else if ($type == 'I')
      {
         $tpl = 'olist_open';
         $type = 'upper-roman';
      }
      else if (preg_match('#^(disc|circle|square)$#i', $type))
      {
         $tpl = 'ulist_open';
         $type = strtolower($type);
      }
      else if (preg_match('#^[a-z]$#', $type))
      {
         $tpl = 'olist_open';
         $type = 'lower-alpha';
      }
      else if (preg_match('#[A-Z]#', $type))
      {
         $tpl = 'olist_open';
         $type = 'upper-alpha';
      }
      else if (is_numeric($type))
      {
         $tpl = 'olist_open';
         $type = 'decimal';
      }
      else
      {
         $tpl = 'olist_open';
         $type = 'decimal';
      }

      return str_replace('{LIST_TYPE}', $type, $this->bbcode_tpl($tpl));
   }

   /**
   * Second parse quote tag
   */
   function bbcode_second_pass_quote($username, $quote)
   {
      // when using the /e modifier, preg_replace slashes double-quotes but does not
      // seem to slash anything else
      $quote = str_replace('\"', '"', $quote);
      $username = str_replace('\"', '"', $username);

      // remove newline at the beginning
      if ($quote == "\n")
      {
         $quote = '';
      }

      $quote = (($username) ? str_replace('$1', $username, $this->bbcode_tpl('quote_username_open')) : $this->bbcode_tpl('quote_open')) . $quote;

      return $quote;
   }

   /**
   * Second parse spoiler tag
   */
   function bbcode_second_pass_spoiler($username, $spoiler)
   {
      // when using the /e modifier, preg_replace slashes double-spoilers but does not
      // seem to slash anything else
      $spoiler = str_replace('\"', '"', $spoiler);
      $username = str_replace('\"', '"', $username);
      $username=htmlspecialchars($username);
      // remove newline at the beginning
      if ($spoiler == "\n")
      {
         $spoiler = '';
      }

      $spoiler = (($username) ? str_replace('$1', $username, $this->bbcode_tpl('spoiler_title_open')) : $this->bbcode_tpl('spoiler_open')) . $spoiler;

      return $spoiler;
   /**
   * Second parse code tag
   */
   function bbcode_second_pass_code($type, $code)
   {
      // when using the /e modifier, preg_replace slashes double-quotes but does not
      // seem to slash anything else
      $code = str_replace('\"', '"', $code);

      switch ($type)
      {
         case 'php':
            // Not the english way, but valid because of hardcoded syntax highlighting
            if (strpos($code, '<span class="syntaxdefault"><br /></span>') === 0)
            {
               $code = substr($code, 41);
            }

         // no break;

         default:
            $code = str_replace("\t", '&nbsp; &nbsp;', $code);
            $code = str_replace('  ', '&nbsp; ', $code);
            $code = str_replace('  ', ' &nbsp;', $code);
            $code = str_replace("\n ", "\n&nbsp;", $code);

            // keep space at the beginning
            if (!empty($code) && $code[0] == ' ')
            {
               $code = '&nbsp;' . substr($code, 1);
            }

            // remove newline at the beginning
            if (!empty($code) && $code[0] == "\n")
            {
               $code = substr($code, 1);
            }
         break;
      }

      $code = $this->bbcode_tpl('code_open') . $code . $this->bbcode_tpl('code_close');

      return $code;
   }
}

?>
 


          Вернуться наверх  
 


Аватар пользователя

А вы проверьте правки этого файла, ошибка говорит что там есть лишний знак ;


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

DeaDRoMeO писал(а):

А вы проверьте правки этого файла, ошибка говорит что там есть лишний знак ;

правильно ли я понял эту надпись? Parse error: syntax error, unexpected ';', expecting T_FUNCTION in Z:\home\tarau\www\includes\bbcode.php on line 651
Синтаксическая ошибка в файле bbcode.php по адресу Z:\home\tarau\www\includes\ в 651ой строке on line 651 лишний знак ; Но если посмотреть выше где я вложил содержимое файла bbcode.php, в 651ой строке только такой знак ?> Где искать лишний ;????


          Вернуться наверх  
 


Аватар пользователя

Ошибку вы верно поняли, а так как для этого файла проводились правки - нужно проверить их правильность. В данном случае указание строки не имеет никакой ценности


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

Итак, я решился поставить себе этот спойлер. Делал всё по инструкции (заодно обнаружил пару ошибок, когда я пробовал делать установщик этого мода для автомода, попробую подправить)), и в конце - sql-запрос:
INSERT INTO phpbb_config (config_name, config_value) VALUES ('ppkbb_maxspoiler_depth', '3');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('ppkbb_spoiler_options', '200 0 0 0 0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('ppkbb_spoiler_banned_imghosts', '');
 

Их я обычно делаю через СТК...
Но тут - наверху СТК ругается дебагер (как раз насчёт несделанного запроса), и пришлось делать через phpMyAdmin. Вначале чуток ошибся, но потом понял (забыл выбрать БД, но ведь запрос от этого не должен был пройти?)
Потом попробовал нормально - и тут ошибка:
#1062 - Duplicate entry 'ppkbb_maxspoiler_depth' for key 'PRIMARY'
 

Пробовал погуглить решение, но там что-то непонятное((
Что делать?

Сообщение добавлено... спустя 14 минут 43 секунды:
СТК неведомым образом заработал.
Сделал запрос - ответ:
Внимание

SQL ERROR [ mysqli ]

Duplicate entry 'ppkbb_maxspoiler_depth' for key 'PRIMARY' [1062]
Запрос содержит ошибку!
INSERT INTO phpbb_config (config_name, config_value) VALUES ('ppkbb_maxspoiler_depth', '3')


SQL ERROR [ mysqli ]

Duplicate entry 'ppkbb_spoiler_options' for key 'PRIMARY' [1062]
Запрос содержит ошибку!
INSERT INTO phpbb_config (config_name, config_value) VALUES ('ppkbb_spoiler_options', '200 0 0 0 0')


SQL ERROR [ mysqli ]

Duplicate entry 'ppkbb_spoiler_banned_imghosts' for key 'PRIMARY' [1062]
Запрос содержит ошибку!
INSERT INTO phpbb_config (config_name, config_value) VALUES ('ppkbb_spoiler_banned_imghosts', '')
 

Ну, и весь форум лишился шапки и оформления((

Сообщение добавлено... спустя 3 минуты 43 секунды:
Самое поганое то, что я сделал только бекап форума, забыв о бекапе БД((( Хотя, надеюсь БД ещё не изменилось никак...


_________________
Подпись:
Перед тем, как следовать моим советам, сделайте полный бекап форума!=)))
          Вернуться наверх  
 


Аватар пользователя

Atlas писал(а):

Duplicate entry

Это означает то, что уже в БД есть такие данные


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

я не понимаю как, но форум заработал, спойлер протестил - норм работает, дебагер помалкивает...
Но стили стали кривые местами (даже те, для которых не правил), видимо, конфликтует с чем-то...
DeaDRoMeO писал(а):

Это означает то, что уже в БД есть такие данные

А я
Пожалуйста Зарегистрируйтесь чтобы увидеть ссылку
начитался - нефига не понял, и испугался :-0=)


_________________
Подпись:
Перед тем, как следовать моим советам, сделайте полный бекап форума!=)))
          Вернуться наверх  
 


Аватар пользователя

Да я тож чегото не понял))


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

Я в общем понял, чего у меня стиль местами слетел: у меня уже обычный спойлер стоял, а после замены в тех сообщениях, где старый спойлер был - сразу оформление корявилось, сообщение исправил - всё ровно стало)) Например, имя спойлера надо в кавычках писать, иначе криво будет, и нельзя его совсем не писать - иначе тоже глючить будет...


_________________
Подпись:
Перед тем, как следовать моим советам, сделайте полный бекап форума!=)))
          Вернуться наверх  
 


Аватар пользователя

Угу, это впринципе понятное дело


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 


Аватар пользователя

Товарищи, подскажите, пожалуйста, как быть.
Дошёл в инструкции по спойлеру до следующих строк:
Открыть файл

styles/prosilver/template/attachment.html
//-----------------------------------------------------------------------------
заменить
//-----------------------------------------------------------------------------
         <dt><a href="{_file.U_DOWNLOAD_LINK}"><img src="{_file.THUMB_IMAGE}" alt="{_file.DOWNLOAD_NAME}" title="{_file.DOWNLOAD_NAME} ({_file.FILESIZE} {_file.SIZE_LANG}) {_file.L_DOWNLOAD_COUNT}" /></a></dt>
//-----------------------------------------------------------------------------
на
//-----------------------------------------------------------------------------
         <dt><a title="{_file.DOWNLOAD_NAME}" href="{_file.U_DOWNLOAD_LINK}" rel="prettyPhoto"><img src="{_file.THUMB_IMAGE}" alt="{_file.DOWNLOAD_NAME}" title="{_file.DOWNLOAD_NAME} ({_file.FILESIZE} {_file.SIZE_LANG}) {_file.L_DOWNLOAD_COUNT}" /></a></dt>
//-----------------------------------------------------------------------------
 


Тема форума у меня не prosilver, а Art Ultra blue
Я правильно понимаю, что мне нужно делать правки в фале по пути styles/art_ultra_blue/template/attachment.html ???
Проблема в том, что файла attachment.html у меня там просто нет :-(-- ...


          Вернуться наверх  
 


Аватар пользователя

Он наследует с prosilver , тебе надо такие же правки сделать в prosilver и он будет подхватывать от него.


          Вернуться наверх  
 


Аватар пользователя

Спасибо за ответ.
А правильно ли я понял, что вот эти изменения:
Открыть файл

styles/prosilver/template/overall_header.html
//-----------------------------------------------------------------------------
перед
//-----------------------------------------------------------------------------
</head>
//-----------------------------------------------------------------------------
добавить
//-----------------------------------------------------------------------------
<!-- IF SPOILER_OPEN_TYPE eq 0 --><link rel="stylesheet" href="{PPKBB3CKER_ADDONS}css/prettyPhoto.css" type="text/css" /><!-- ENDIF -->
<link rel="stylesheet" href="{PPKBB3CKER_ADDONS}css/spoiler.css" type="text/css" />

<script src="{PPKBB3CKER_ADDONS}js/jquery-min.js" type="text/javascript"></script>
<script type="text/javascript">
// <![CDATA[
   jQuery.noConflict();

   //Spoiler image width
   //var spoilerMaxW = Math.round(screen.width - (screen.width / 1.5));
   var spoilerMaxW = {SPOILER_IMG_WIDTH};
   var hidePostImg = {SPOILER_HIDE_POSTIMG};
   var hideSigImg = {SPOILER_HIDE_SIGIMG};
   var openInNewWindow = '{L_OPEN_IN_NEW_WINDOW}';
   var bannedImageHosts = '{L_BANNED_IMAGE_HOSTS}';
   var hiddenText = '{L_HIDDEN_TEXT}';
   var spoilerClose = '{L_SPOILER_CLOSE}';
   var banned_image_hosts = {SPOILER_BANNED_IMGHOSTS};//banned image hosts
   var open_type = {SPOILER_OPEN_TYPE};
// ]]>
</script>
<!-- IF SPOILER_OPEN_TYPE eq 0 --><script src="{PPKBB3CKER_ADDONS}js/jquery.prettyPhoto.js" type="text/javascript"></script><!-- ENDIF -->
<script src="{PPKBB3CKER_ADDONS}js/spoiler.js" type="text/javascript"></script>
<!-- IF SPOILER_OPEN_TYPE eq 0 -->
<script type="text/javascript">
// <![CDATA[
jQuery(document).ready(
   function($)
   {
      $("a[rel^='prettyPhoto']").prettyPhoto({'modal': false, 'show_title': false, 'social_tools': false});
   }
);
// ]]>
</script>
<!-- ENDIF -->
//-----------------------------------------------------------------------------

Открыть файл

styles/prosilver/template/posting_buttons.html
//-----------------------------------------------------------------------------
после
//-----------------------------------------------------------------------------
,'[size=]','[/size]'
//-----------------------------------------------------------------------------
добавить
//-----------------------------------------------------------------------------
,'[spoiler="{L_HIDDEN_TEXT}"]','[/spoiler]'
//-----------------------------------------------------------------------------
после
//-----------------------------------------------------------------------------
      u: '{LA_BBCODE_U_HELP}',
      q: '{LA_BBCODE_Q_HELP}',
//-----------------------------------------------------------------------------
добавить
//-----------------------------------------------------------------------------
      h: '{LA_BBCODE_H_HELP}',
//-----------------------------------------------------------------------------
после
//-----------------------------------------------------------------------------
   <!-- IF S_BBCODE_QUOTE -->
      <input type="button" class="button2" accesskey="q" name="addbbcode6" value="Quote" style="width: 50px" onclick="bbstyle(6)" title="{L_BBCODE_Q_HELP}" />
   <!-- ENDIF -->
//-----------------------------------------------------------------------------
добавить
//-----------------------------------------------------------------------------
   <input type="button" class="button2" accesskey="h" name="addbbcode22" value="Spoiler" style="width: 50px" onclick="bbstyle(22)" title="{L_BBCODE_H_HELP}" />
//-----------------------------------------------------------------------------
 


В моём случае уже нужно делать не в Просильвере, а в файлах используемой темы?


          Вернуться наверх  
 
 
Начать новую тему Ответить на тему


Дополнительные возможности

  Похожие темы  Автор  Ответов  Просмотров  Последнее сообщение 
Аватар пользователя mChat phpbb3
mChat - модификация для phpbb3, добавляющая на ваш форум удобный чат с расширенным функционалом

DeaDRoMeO

15

771

Аватар пользователя

08 апр 2017, 09:20

белк

Аватар пользователя BB3Topics phpbb3
BB3Topics - модификация для phpbb3, добавляющая блок на главную страницу форума со следущим содержимым - Новые темы, Последние обьявления, Популярные темы, Обсуждаемые темы, Случайные темы, Темы с опросами

DeaDRoMeO

96

10448

Аватар пользователя

05 мар 2017, 18:36

DeaDRoMeO

Аватар пользователя NV who was here phpbb3 ? - Кто был на форуме ?
NV who was here phpbb3 ? - модификация добавляет на форум phpbb3 новый информационный блок, содержащий в себе полный список тех, кто был на форуме за день

DeaDRoMeO

54

7440

Аватар пользователя

04 дек 2017, 20:52

белк

Аватар пользователя BAN redirect URL phpbb3
BAN redirect URL - модификация для phpbb3, позволяющая перенаправлять заблокированных пользователей по любому адресу

DeaDRoMeO

21

4971

Аватар пользователя

16 июн 2014, 05:05

DeaDRoMeO

Аватар пользователя Forum SEO phpbb3
Forum SEO phpbb3 - прекрасный мод в плане СЕО оптимизации для форумов phpbb3, позволит вам задать описание и список ключевых слов для каждого раздела и подфорума.

DeaDRoMeO

253

16959

Аватар пользователя

27 ноя 2017, 20:18

DeaDRoMeO

Оставить свой комментарий

Поделиться темой с помощью

Ссылки на тему

Прямая ссылка:
BB-код для форумов, сайтов, блогов:
HTML ссылка:
 


cron

Самая неформальная поддержка phpBB :P