BB3Spoiler - спойлер для phpbb3
Модераторы: Vl@d1m1r, Lorem Ipsum, Atlas
Правила форума
----
----
- DeaDRoMeO
- Старожил Форума
- Сообщения: 16763
- Стаж: 13 лет 2 месяца
- Откуда: Витебск
- Контактная информация:
BB3Spoiler - спойлер для phpbb3
С путями до скриптов спойлера все впорядке ? Джиквери в шапке надеюсь только один раз подключен ? Кеши нормально чистились ? Всевозможные форумные + браузерный?
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
BB3Spoiler - спойлер для phpbb3
DeaDRoMeO, а если у меня установлен мод Auto Image Resizer который тоже уменьшает картинки то между ними могут конфликты быть или один из модов как бы выключить придеться?
- DeaDRoMeO
- Старожил Форума
- Сообщения: 16763
- Стаж: 13 лет 2 месяца
- Откуда: Витебск
- Контактная информация:
BB3Spoiler - спойлер для phpbb3
А вы просто некоторые правки пропустите, которые касаются тега [img]
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
BB3Spoiler - спойлер для phpbb3
что за бред тут навертел?
в рабочем варианте без танцев с бубном есть вариант? я не программист
в рабочем варианте без танцев с бубном есть вариант? я не программист
- DeaDRoMeO
- Старожил Форума
- Сообщения: 16763
- Стаж: 13 лет 2 месяца
- Откуда: Витебск
- Контактная информация:
BB3Spoiler - спойлер для phpbb3
Интересное заявление, у всех работает, а у вас танцы с бубном. С уверенностью могу сказать что на дефолтных стилях все на ура, на сторонних стиля с некоторыми модификациями будут проблемы, но в основном изза невнимательности. Конкретно что за проблемы возникли с модом?
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
-
- Активно осваиваю Форум
- Сообщения: 187
- Стаж: 10 лет 10 месяцев
- Откуда: Харьков
- Контактная информация:
BB3Spoiler - спойлер для phpbb3
Классный мод и как раз искал чтобы спойлер в спойлере сделать, но правок сильно много, не уверен в соих силах, может как-то потом поставлю, пока боюсь...
- DeaDRoMeO
- Старожил Форума
- Сообщения: 16763
- Стаж: 13 лет 2 месяца
- Откуда: Витебск
- Контактная информация:
BB3Spoiler - спойлер для phpbb3
Tipocheg, мод достаточно сложен и требует упорства и усидчивости, правок куча - ошибку легко сделать
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
BB3Spoiler - спойлер для phpbb3
Пятый раз переустанавливаю, с расстановкой не спеша, внимательно (без пива) хотя первые два раза грешил
устанавливаю пока на денвер, когда все ровно тогда уже заливаю на хостинг
в админке все появляется и настраивается, захожу в категорию, затем на форум все ок, но как только вхожу в тему, появляется белый экран с надписью
Parse error: syntax error, unexpected ';', expecting T_FUNCTION in Z:\home\tarau\www\includes\bbcode.php on line 651
Вот сам includes\bbcode.php тыкните пальцем что не так делаю, что за Синтаксическая ошибка
устанавливаю пока на денвер, когда все ровно тогда уже заливаю на хостинг
в админке все появляется и настраивается, захожу в категорию, затем на форум все ок, но как только вхожу в тему, появляется белый экран с надписью
Вот сам 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(':', '.'), 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", ' ', $code);
$code = str_replace(' ', ' ', $code);
$code = str_replace(' ', ' ', $code);
$code = str_replace("\n ", "\n ", $code);
// keep space at the beginning
if (!empty($code) && $code[0] == ' ')
{
$code = ' ' . 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;
}
}
?>
- DeaDRoMeO
- Старожил Форума
- Сообщения: 16763
- Стаж: 13 лет 2 месяца
- Откуда: Витебск
- Контактная информация:
BB3Spoiler - спойлер для phpbb3
А вы проверьте правки этого файла, ошибка говорит что там есть лишний знак ;
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
BB3Spoiler - спойлер для phpbb3
правильно ли я понял эту надпись?DeaDRoMeO писал(а):А вы проверьте правки этого файла, ошибка говорит что там есть лишний знак;
Синтаксическая ошибка в файле
- DeaDRoMeO
- Старожил Форума
- Сообщения: 16763
- Стаж: 13 лет 2 месяца
- Откуда: Витебск
- Контактная информация:
BB3Spoiler - спойлер для phpbb3
Ошибку вы верно поняли, а так как для этого файла проводились правки - нужно проверить их правильность. В данном случае указание строки не имеет никакой ценности
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
BB3Spoiler - спойлер для phpbb3
Итак, я решился поставить себе этот спойлер. Делал всё по инструкции (заодно обнаружил пару ошибок, когда я пробовал делать установщик этого мода для автомода, попробую подправить)), и в конце - sql-запрос:
Их я обычно делаю через СТК...
Но тут - наверху СТК ругается дебагер (как раз насчёт несделанного запроса), и пришлось делать через phpMyAdmin. Вначале чуток ошибся, но потом понял (забыл выбрать БД, но ведь запрос от этого не должен был пройти?)
Потом попробовал нормально - и тут ошибка:
Пробовал погуглить решение, но там что-то непонятное((
Что делать?
Сообщение добавлено... спустя 14 минут 43 секунды:
СТК неведомым образом заработал.
Сделал запрос - ответ:
Ну, и весь форум лишился шапки и оформления((
Сообщение добавлено... спустя 3 минуты 43 секунды:
Самое поганое то, что я сделал только бекап форума, забыв о бекапе БД((( Хотя, надеюсь БД ещё не изменилось никак...
Код: Выделить всё
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 секунды:
Самое поганое то, что я сделал только бекап форума, забыв о бекапе БД((( Хотя, надеюсь БД ещё не изменилось никак...
Перед тем, как следовать моим советам, сделайте полный бекап форума!=)))
- DeaDRoMeO
- Старожил Форума
- Сообщения: 16763
- Стаж: 13 лет 2 месяца
- Откуда: Витебск
- Контактная информация:
BB3Spoiler - спойлер для phpbb3
Это означает то, что уже в БД есть такие данныеAtlas писал(а):Duplicate entry
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
BB3Spoiler - спойлер для phpbb3
я не понимаю как, но форум заработал, спойлер протестил - норм работает, дебагер помалкивает...
Но стили стали кривые местами (даже те, для которых не правил), видимо, конфликтует с чем-то...
Но стили стали кривые местами (даже те, для которых не правил), видимо, конфликтует с чем-то...
А я тут вот начитался - нефига не понял, и испугалсяDeaDRoMeO писал(а):Это означает то, что уже в БД есть такие данные
Перед тем, как следовать моим советам, сделайте полный бекап форума!=)))
- DeaDRoMeO
- Старожил Форума
- Сообщения: 16763
- Стаж: 13 лет 2 месяца
- Откуда: Витебск
- Контактная информация:
BB3Spoiler - спойлер для phpbb3
Да я тож чегото не понял))
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
BB3Spoiler - спойлер для phpbb3
Я в общем понял, чего у меня стиль местами слетел: у меня уже обычный спойлер стоял, а после замены в тех сообщениях, где старый спойлер был - сразу оформление корявилось, сообщение исправил - всё ровно стало)) Например, имя спойлера надо в кавычках писать, иначе криво будет, и нельзя его совсем не писать - иначе тоже глючить будет...
Перед тем, как следовать моим советам, сделайте полный бекап форума!=)))
- DeaDRoMeO
- Старожил Форума
- Сообщения: 16763
- Стаж: 13 лет 2 месяца
- Откуда: Витебск
- Контактная информация:
BB3Spoiler - спойлер для phpbb3
Угу, это впринципе понятное дело
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
- kluchnik31
- Зашел немного посидеть
- Сообщения: 50
- Стаж: 11 лет 1 месяц
- Контактная информация:
BB3Spoiler - спойлер для phpbb3
Товарищи, подскажите, пожалуйста, как быть.
Дошёл в инструкции по спойлеру до следующих строк:
Тема форума у меня не prosilver, а Art Ultra blue
Я правильно понимаю, что мне нужно делать правки в фале по пути styles/art_ultra_blue/template/attachment.html ???
Проблема в том, что файла attachment.html у меня там просто нет ...
Дошёл в инструкции по спойлеру до следующих строк:
Код: Выделить всё
Открыть файл
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>
//-----------------------------------------------------------------------------
Я правильно понимаю, что мне нужно делать правки в фале по пути styles/art_ultra_blue/template/attachment.html ???
Проблема в том, что файла attachment.html у меня там просто нет ...
- Vl@d1m1r
- Активно общаюсь
- Сообщения: 333
- Стаж: 10 лет 8 месяцев
- Откуда: Туркменистан
- Контактная информация:
BB3Spoiler - спойлер для phpbb3
Он наследует с prosilver , тебе надо такие же правки сделать в prosilver и он будет подхватывать от него.
- kluchnik31
- Зашел немного посидеть
- Сообщения: 50
- Стаж: 11 лет 1 месяц
- Контактная информация:
BB3Spoiler - спойлер для phpbb3
Спасибо за ответ.
А правильно ли я понял, что вот эти изменения:
В моём случае уже нужно делать не в Просильвере, а в файлах используемой темы?
А правильно ли я понял, что вот эти изменения:
Код: Выделить всё
Открыть файл
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}" />
//-----------------------------------------------------------------------------