BB3Spoiler - спойлер для phpbb3

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

Модераторы: Vl@d1m1r, Lorem Ipsum, Atlas

Правила форума
----
Ответить
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16763
Стаж: 13 лет
Откуда: Витебск
Контактная информация:

BB3Spoiler - спойлер для phpbb3

Сообщение DeaDRoMeO »

С путями до скриптов спойлера все впорядке ? Джиквери в шапке надеюсь только один раз подключен ? Кеши нормально чистились ? Всевозможные форумные + браузерный?
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#161
Аватара пользователя
godlakz
Заглянул на огонек
Заглянул на огонек
Сообщения: 18
Стаж: 10 лет 11 месяцев

BB3Spoiler - спойлер для phpbb3

Сообщение godlakz »

DeaDRoMeO, а если у меня установлен мод Auto Image Resizer который тоже уменьшает картинки то между ними могут конфликты быть или один из модов как бы выключить придеться? :ga-ze-ta;
#162
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16763
Стаж: 13 лет
Откуда: Витебск
Контактная информация:

BB3Spoiler - спойлер для phpbb3

Сообщение DeaDRoMeO »

А вы просто некоторые правки пропустите, которые касаются тега [img]
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#163
zaznayka
Заглянул на огонек
Заглянул на огонек
Сообщения: 1
Стаж: 10 лет 7 месяцев

BB3Spoiler - спойлер для phpbb3

Сообщение zaznayka »

что за бред тут навертел?
в рабочем варианте без танцев с бубном есть вариант? я не программист
#164
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16763
Стаж: 13 лет
Откуда: Витебск
Контактная информация:

BB3Spoiler - спойлер для phpbb3

Сообщение DeaDRoMeO »

Интересное заявление, у всех работает, а у вас танцы с бубном. С уверенностью могу сказать что на дефолтных стилях все на ура, на сторонних стиля с некоторыми модификациями будут проблемы, но в основном изза невнимательности. Конкретно что за проблемы возникли с модом?
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#165
Tipocheg
Активно осваиваю Форум
Активно осваиваю Форум
Сообщения: 187
Стаж: 10 лет 8 месяцев
Откуда: Харьков
Контактная информация:

BB3Spoiler - спойлер для phpbb3

Сообщение Tipocheg »

Классный мод и как раз искал чтобы спойлер в спойлере сделать, но правок сильно много, не уверен в соих силах, может как-то потом поставлю, пока боюсь...
#166
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16763
Стаж: 13 лет
Откуда: Витебск
Контактная информация:

BB3Spoiler - спойлер для phpbb3

Сообщение DeaDRoMeO »

Tipocheg, мод достаточно сложен и требует упорства и усидчивости, правок куча - ошибку легко сделать
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#167
Аватара пользователя
zagor
Заглянул на огонек
Заглянул на огонек
Сообщения: 7
Стаж: 10 лет 5 месяцев

BB3Spoiler - спойлер для phpbb3

Сообщение zagor »

Пятый раз переустанавливаю, с расстановкой не спеша, внимательно (без пива) хотя первые два раза грешил
устанавливаю пока на денвер, когда все ровно тогда уже заливаю на хостинг
в админке все появляется и настраивается, захожу в категорию, затем на форум все ок, но как только вхожу в тему, появляется белый экран с надписью
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(?:="(.*?)")?:$uid\]((?!\[quote(?:=".*?")?:$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(?:="(.*?)")?:$uid\]((?!\[spoiler(?:=".*?")?:$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;
	}
}

?>
#168
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16763
Стаж: 13 лет
Откуда: Витебск
Контактная информация:

BB3Spoiler - спойлер для phpbb3

Сообщение DeaDRoMeO »

А вы проверьте правки этого файла, ошибка говорит что там есть лишний знак ;
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#169
Аватара пользователя
zagor
Заглянул на огонек
Заглянул на огонек
Сообщения: 7
Стаж: 10 лет 5 месяцев

BB3Spoiler - спойлер для phpbb3

Сообщение zagor »

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ой строке только такой знак ?> Где искать лишний ;????
#170
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16763
Стаж: 13 лет
Откуда: Витебск
Контактная информация:

BB3Spoiler - спойлер для phpbb3

Сообщение DeaDRoMeO »

Ошибку вы верно поняли, а так как для этого файла проводились правки - нужно проверить их правильность. В данном случае указание строки не имеет никакой ценности
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#171
Аватара пользователя
Atlas
Свой на все 100
Свой на все 100
Сообщения: 669
Стаж: 11 лет 7 месяцев
Откуда: Санкт-Петербург

BB3Spoiler - спойлер для phpbb3

Сообщение Atlas »

Итак, я решился поставить себе этот спойлер. Делал всё по инструкции (заодно обнаружил пару ошибок, когда я пробовал делать установщик этого мода для автомода, попробую подправить)), и в конце - 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 секунды:
Самое поганое то, что я сделал только бекап форума, забыв о бекапе БД((( Хотя, надеюсь БД ещё не изменилось никак...
Перед тем, как следовать моим советам, сделайте полный бекап форума!=)))
#172
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16763
Стаж: 13 лет
Откуда: Витебск
Контактная информация:

BB3Spoiler - спойлер для phpbb3

Сообщение DeaDRoMeO »

Atlas писал(а):Duplicate entry
Это означает то, что уже в БД есть такие данные
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#173
Аватара пользователя
Atlas
Свой на все 100
Свой на все 100
Сообщения: 669
Стаж: 11 лет 7 месяцев
Откуда: Санкт-Петербург

BB3Spoiler - спойлер для phpbb3

Сообщение Atlas »

я не понимаю как, но форум заработал, спойлер протестил - норм работает, дебагер помалкивает...
Но стили стали кривые местами (даже те, для которых не правил), видимо, конфликтует с чем-то...
DeaDRoMeO писал(а):Это означает то, что уже в БД есть такие данные
А я тут вот начитался - нефига не понял, и испугался :-0=)
Перед тем, как следовать моим советам, сделайте полный бекап форума!=)))
#174
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16763
Стаж: 13 лет
Откуда: Витебск
Контактная информация:

BB3Spoiler - спойлер для phpbb3

Сообщение DeaDRoMeO »

Да я тож чегото не понял))
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#175
Аватара пользователя
Atlas
Свой на все 100
Свой на все 100
Сообщения: 669
Стаж: 11 лет 7 месяцев
Откуда: Санкт-Петербург

BB3Spoiler - спойлер для phpbb3

Сообщение Atlas »

Я в общем понял, чего у меня стиль местами слетел: у меня уже обычный спойлер стоял, а после замены в тех сообщениях, где старый спойлер был - сразу оформление корявилось, сообщение исправил - всё ровно стало)) Например, имя спойлера надо в кавычках писать, иначе криво будет, и нельзя его совсем не писать - иначе тоже глючить будет...
Перед тем, как следовать моим советам, сделайте полный бекап форума!=)))
#176
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16763
Стаж: 13 лет
Откуда: Витебск
Контактная информация:

BB3Spoiler - спойлер для phpbb3

Сообщение DeaDRoMeO »

Угу, это впринципе понятное дело
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#177
Аватара пользователя
kluchnik31
Зашел немного посидеть
Зашел немного посидеть
Сообщения: 50
Стаж: 10 лет 11 месяцев
Контактная информация:

BB3Spoiler - спойлер для phpbb3

Сообщение kluchnik31 »

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

Код: Выделить всё

Открыть файл

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 у меня там просто нет :-(-- ...
#178
Аватара пользователя
Vl@d1m1r
Активно общаюсь
Активно общаюсь
Сообщения: 333
Стаж: 10 лет 6 месяцев
Откуда: Туркменистан
Контактная информация:

BB3Spoiler - спойлер для phpbb3

Сообщение Vl@d1m1r »

Он наследует с prosilver , тебе надо такие же правки сделать в prosilver и он будет подхватывать от него.
#179
Аватара пользователя
kluchnik31
Зашел немного посидеть
Зашел немного посидеть
Сообщения: 50
Стаж: 10 лет 11 месяцев
Контактная информация:

BB3Spoiler - спойлер для phpbb3

Сообщение kluchnik31 »

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

Код: Выделить всё

Открыть файл

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}" />
//-----------------------------------------------------------------------------
В моём случае уже нужно делать не в Просильвере, а в файлах используемой темы?
#180
Ответить