mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 06:08:52 +00:00
Changed: the loading of bbcodes template is triggered whenever needed - see bbcode_tpl()
Changed: [flash] got templated git-svn-id: file:///svn/phpbb/trunk@3934 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
parent
13f7d92739
commit
44eb035adf
1 changed files with 53 additions and 48 deletions
|
@ -40,10 +40,15 @@ class bbcode
|
||||||
{
|
{
|
||||||
$this->bbcode_uid = $bbcode_uid;
|
$this->bbcode_uid = $bbcode_uid;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($bbcode_bitfield)
|
if ($bbcode_bitfield)
|
||||||
{
|
{
|
||||||
$this->bbcode_bitfield = $bbcode_bitfield;
|
$this->bbcode_bitfield = $bbcode_bitfield;
|
||||||
}
|
}
|
||||||
|
elseif (!$this->bbcode_bitfield)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (empty($this->bbcode_cache))
|
if (empty($this->bbcode_cache))
|
||||||
{
|
{
|
||||||
|
@ -104,59 +109,20 @@ class bbcode
|
||||||
$bbcode_ids[] = $bbcode_id;
|
$bbcode_ids[] = $bbcode_id;
|
||||||
|
|
||||||
// WARNING: hardcoded values. it assumes that bbcodes with bbcode_id > 11 are user-defined bbcodes
|
// WARNING: hardcoded values. it assumes that bbcodes with bbcode_id > 11 are user-defined bbcodes
|
||||||
// and it has to be specified which bbcodes need the template to be loaded
|
|
||||||
if ($bbcode_id > 11)
|
if ($bbcode_id > 11)
|
||||||
{
|
{
|
||||||
$sql .= $bbcode_id . ',';
|
$sql .= $bbcode_id . ',';
|
||||||
}
|
}
|
||||||
// WARNING: even more hardcoded stuff - define which bbcodes need template
|
|
||||||
elseif (in_array($bbcode_id, array(0, 5, 6, 8, 9)))
|
|
||||||
{
|
|
||||||
$load_template = TRUE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (!empty($load_template))
|
/*
|
||||||
{
|
|
||||||
global $template, $user;
|
|
||||||
|
|
||||||
$tpl_filename = $template->make_filename('bbcode.html');
|
|
||||||
|
|
||||||
if (!$fp = @fopen($tpl_filename, 'rb'))
|
|
||||||
{
|
|
||||||
trigger_error('Could not load bbcode template');
|
|
||||||
}
|
|
||||||
$tpl = fread($fp, filesize($tpl_filename));
|
|
||||||
@fclose($fp);
|
|
||||||
|
|
||||||
// replace \ with \\ and then ' with \'.
|
|
||||||
$tpl = str_replace('\\', '\\\\', $tpl);
|
|
||||||
$tpl = str_replace("'", "\'", $tpl);
|
|
||||||
|
|
||||||
// strip newlines.
|
|
||||||
$tpl = str_replace("\n", '', $tpl);
|
|
||||||
|
|
||||||
// Turn template blocks into PHP assignment statements for the values of $bbcode_tpl..
|
|
||||||
$tpl = preg_replace('#<!-- BEGIN (.*?) -->(.*?)<!-- END (.*?) -->#', "\n" . "\$this->bbcode_tpl['\\1'] = trim('\\2');", $tpl);
|
|
||||||
|
|
||||||
$this->bbcode_tpl = array();
|
|
||||||
eval($tpl);
|
|
||||||
|
|
||||||
$this->bbcode_tpl['quote_open'] = str_replace('{L_QUOTE}', $user->lang['QUOTE'], $this->bbcode_tpl['quote_open']);
|
|
||||||
$this->bbcode_tpl['quote_username_open'] = str_replace('{L_QUOTE}', $user->lang['QUOTE'], $this->bbcode_tpl['quote_username_open']);
|
|
||||||
$this->bbcode_tpl['quote_username_open'] = str_replace('{L_WROTE}', $user->lang['WROTE'], $this->bbcode_tpl['quote_username_open']);
|
|
||||||
$this->bbcode_tpl['quote_username_open'] = str_replace('{USERNAME}', '\\1', $this->bbcode_tpl['quote_username_open']);
|
|
||||||
$this->bbcode_tpl['code_open'] = str_replace('{L_CODE}', $user->lang['CODE'], $this->bbcode_tpl['code_open']);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($sql)
|
if ($sql)
|
||||||
{
|
{
|
||||||
global $db;
|
global $db;
|
||||||
$rowset = array();
|
$rowset = array();
|
||||||
|
|
||||||
$sql = 'SELECT bbcode_id, second_pass_regexp, second_pass_replacement
|
$sql = 'SELECT bbcode_id, second_pass_regexp, second_pass_replacement
|
||||||
FROM ' . BBCODES_TABLE . '
|
FROM ' . BBCODES_TABLE . '
|
||||||
WHERE bbcode_id IN (' . substr($sql, 0, -1) . ')
|
WHERE bbcode_id IN (' . substr($sql, 0, -1) . ')';
|
||||||
ORDER BY bbcode_id';
|
|
||||||
|
|
||||||
$result = $db->sql_query($sql);
|
$result = $db->sql_query($sql);
|
||||||
while ($row = $db->sql_fetchrow($result))
|
while ($row = $db->sql_fetchrow($result))
|
||||||
|
@ -165,7 +131,7 @@ class bbcode
|
||||||
}
|
}
|
||||||
$db->sql_freeresult($result);
|
$db->sql_freeresult($result);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
foreach ($bbcode_ids as $bbcode_id)
|
foreach ($bbcode_ids as $bbcode_id)
|
||||||
{
|
{
|
||||||
switch ($bbcode_id)
|
switch ($bbcode_id)
|
||||||
|
@ -173,11 +139,11 @@ class bbcode
|
||||||
case 0:
|
case 0:
|
||||||
$this->bbcode_cache[$bbcode_id] = array(
|
$this->bbcode_cache[$bbcode_id] = array(
|
||||||
'str' => array(
|
'str' => array(
|
||||||
'[quote:$uid]' => $this->bbcode_tpl['quote_open'],
|
'[quote:$uid]' => $this->bbcode_tpl('quote_open'),
|
||||||
'[/quote:$uid]' => $this->bbcode_tpl['quote_close']
|
'[/quote:$uid]' => $this->bbcode_tpl('quote_close')
|
||||||
),
|
),
|
||||||
'preg' => array(
|
'preg' => array(
|
||||||
'#\[quote:$uid="(.*?)"\]#' => $this->bbcode_tpl['quote_username_open']
|
'#\[quote="(.*?)":$uid\]#' => $this->bbcode_tpl('quote_username_open')
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
|
@ -265,7 +231,7 @@ class bbcode
|
||||||
case 11:
|
case 11:
|
||||||
$this->bbcode_cache[$bbcode_id] = array(
|
$this->bbcode_cache[$bbcode_id] = array(
|
||||||
'preg' => array(
|
'preg' => array(
|
||||||
'#\[flash:$uid\](.*?)\[/flash:$uid\]#' => '<object classid="clsid:D27CDB6E-AE6D-11CF-96B8-444553540000" codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=5,0,0,0"><param name="movie" value="\1"><param name="play" value="1"><param name="loop" value="1"><param name="quality" value="high"><embed src="\1" play="1" loop="1" quality="high"></embed></object>'
|
'#\[flash:$uid\](.*?)\[/flash:$uid\]#' => $this->bbcode_tpl('flash')
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
|
@ -284,6 +250,45 @@ class bbcode
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function bbcode_tpl($tpl_name)
|
||||||
|
{
|
||||||
|
if (empty($this->bbcode_tpl))
|
||||||
|
{
|
||||||
|
global $template, $user;
|
||||||
|
|
||||||
|
$tpl_filename = $template->make_filename('bbcode.html');
|
||||||
|
|
||||||
|
if (!$fp = @fopen($tpl_filename, 'rb'))
|
||||||
|
{
|
||||||
|
trigger_error('Could not load bbcode template');
|
||||||
|
}
|
||||||
|
$tpl = fread($fp, filesize($tpl_filename));
|
||||||
|
@fclose($fp);
|
||||||
|
|
||||||
|
// replace \ with \\ and then ' with \'.
|
||||||
|
$tpl = str_replace('\\', '\\\\', $tpl);
|
||||||
|
$tpl = str_replace("'", "\'", $tpl);
|
||||||
|
|
||||||
|
// strip newlines.
|
||||||
|
$tpl = str_replace("\n", '', $tpl);
|
||||||
|
|
||||||
|
// Turn template blocks into PHP assignment statements for the values of $bbcode_tpl..
|
||||||
|
$tpl = preg_replace('#<!-- BEGIN (.*?) -->(.*?)<!-- END (.*?) -->#', "\n" . "\$this->bbcode_tpl['\\1'] = trim('\\2');", $tpl);
|
||||||
|
|
||||||
|
$this->bbcode_tpl = array();
|
||||||
|
eval($tpl);
|
||||||
|
|
||||||
|
$this->bbcode_tpl['quote_open'] = str_replace('{L_QUOTE}', $user->lang['QUOTE'], $this->bbcode_tpl['quote_open']);
|
||||||
|
$this->bbcode_tpl['quote_username_open'] = str_replace('{L_QUOTE}', $user->lang['QUOTE'], $this->bbcode_tpl['quote_username_open']);
|
||||||
|
$this->bbcode_tpl['quote_username_open'] = str_replace('{L_WROTE}', $user->lang['WROTE'], $this->bbcode_tpl['quote_username_open']);
|
||||||
|
$this->bbcode_tpl['quote_username_open'] = str_replace('{USERNAME}', '\\1', $this->bbcode_tpl['quote_username_open']);
|
||||||
|
$this->bbcode_tpl['code_open'] = str_replace('{L_CODE}', $user->lang['CODE'], $this->bbcode_tpl['code_open']);
|
||||||
|
$this->bbcode_tpl['flash'] = str_replace('{URL}', '\1', $this->bbcode_tpl['flash']);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->bbcode_tpl[$tpl_name];
|
||||||
|
}
|
||||||
|
|
||||||
function bbcode_ordered_list($chr)
|
function bbcode_ordered_list($chr)
|
||||||
{
|
{
|
||||||
if (is_numeric($chr))
|
if (is_numeric($chr))
|
||||||
|
@ -316,7 +321,7 @@ class bbcode
|
||||||
$code = str_replace(' ', ' ', $code);
|
$code = str_replace(' ', ' ', $code);
|
||||||
}
|
}
|
||||||
|
|
||||||
$code = $this->bbcode_tpl['code_open'] . $code . $this->bbcode_tpl['code_close'];
|
$code = $this->bbcode_tpl('code_open') . $code . $this->bbcode_tpl('code_close');
|
||||||
|
|
||||||
return $code;
|
return $code;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue