Line 47 | Line 47 |
---|
*/ function gen_sort_selects(&$limit_days, &$sort_by_text, &$sort_days, &$sort_key, &$sort_dir, &$s_limit_days, &$s_sort_key, &$s_sort_dir, &$u_sort_param, $def_st = false, $def_sk = false, $def_sd = false) {
|
*/ function gen_sort_selects(&$limit_days, &$sort_by_text, &$sort_days, &$sort_key, &$sort_dir, &$s_limit_days, &$s_sort_key, &$s_sort_dir, &$u_sort_param, $def_st = false, $def_sk = false, $def_sd = false) {
|
global $user;
| global $user, $phpbb_dispatcher;
|
$sort_dir_text = array('a' => $user->lang['ASCENDING'], 'd' => $user->lang['DESCENDING']);
| $sort_dir_text = array('a' => $user->lang['ASCENDING'], 'd' => $user->lang['DESCENDING']);
|
Line 78 | Line 78 |
---|
foreach ($sorts as $name => $sort_ary) { $key = $sort_ary['key'];
|
foreach ($sorts as $name => $sort_ary) { $key = $sort_ary['key'];
|
$selected = $$sort_ary['key'];
| $selected = ${$sort_ary['key']};
|
// Check if the key is selectable. If not, we reset to the default or first key found. // This ensures the values are always valid. We also set $sort_dir/sort_key/etc. to the
| // Check if the key is selectable. If not, we reset to the default or first key found. // This ensures the values are always valid. We also set $sort_dir/sort_key/etc. to the
|
Line 87 | Line 87 |
---|
{ if ($sort_ary['default'] !== false) {
|
{ if ($sort_ary['default'] !== false) {
|
$selected = $$key = $sort_ary['default'];
| $selected = ${$key} = $sort_ary['default'];
|
} else { @reset($sort_ary['options']);
|
} else { @reset($sort_ary['options']);
|
$selected = $$key = key($sort_ary['options']);
| $selected = ${$key} = key($sort_ary['options']);
|
} }
| } }
|
Line 105 | Line 105 |
---|
$u_sort_param .= ($selected !== $sort_ary['default']) ? ((strlen($u_sort_param)) ? '&' : '') . "{$name}={$selected}" : ''; }
|
$u_sort_param .= ($selected !== $sort_ary['default']) ? ((strlen($u_sort_param)) ? '&' : '') . "{$name}={$selected}" : ''; }
|
| /** * Run code before generated sort selects are returned * * @event core.gen_sort_selects_after * @var int limit_days Days limit * @var array sort_by_text Sort by text options * @var int sort_days Sort by days flag * @var string sort_key Sort key * @var string sort_dir Sort dir * @var string s_limit_days String of days limit * @var string s_sort_key String of sort key * @var string s_sort_dir String of sort dir * @var string u_sort_param Sort URL params * @var bool def_st Default sort days * @var bool def_sk Default sort key * @var bool def_sd Default sort dir * @var array sorts Sorts * @since 3.1.9-RC1 */ $vars = array( 'limit_days', 'sort_by_text', 'sort_days', 'sort_key', 'sort_dir', 's_limit_days', 's_sort_key', 's_sort_dir', 'u_sort_param', 'def_st', 'def_sk', 'def_sd', 'sorts', ); extract($phpbb_dispatcher->trigger_event('core.gen_sort_selects_after', compact($vars)));
|
return; }
| return; }
|
Line 114 | Line 150 |
---|
*/ function make_jumpbox($action, $forum_id = false, $select_all = false, $acl_list = false, $force_display = false) {
|
*/ function make_jumpbox($action, $forum_id = false, $select_all = false, $acl_list = false, $force_display = false) {
|
global $config, $auth, $template, $user, $db, $phpbb_path_helper;
| global $config, $auth, $template, $user, $db, $phpbb_path_helper, $phpbb_dispatcher;
|
// We only return if the jumpbox is not forced to be displayed (in case it is needed for functionality) if (!$config['load_jumpbox'] && $force_display === false)
| // We only return if the jumpbox is not forced to be displayed (in case it is needed for functionality) if (!$config['load_jumpbox'] && $force_display === false)
|
Line 126 | Line 162 |
---|
FROM ' . FORUMS_TABLE . ' ORDER BY left_id ASC'; $result = $db->sql_query($sql, 600);
|
FROM ' . FORUMS_TABLE . ' ORDER BY left_id ASC'; $result = $db->sql_query($sql, 600);
|
| $rowset = array(); while ($row = $db->sql_fetchrow($result)) { $rowset[(int) $row['forum_id']] = $row; } $db->sql_freeresult($result);
|
$right = $padding = 0; $padding_store = array('0' => 0); $display_jumpbox = false; $iteration = 0;
|
$right = $padding = 0; $padding_store = array('0' => 0); $display_jumpbox = false; $iteration = 0;
|
| /** * Modify the jumpbox forum list data * * @event core.make_jumpbox_modify_forum_list * @var array rowset Array with the forums list data * @since 3.1.10-RC1 */ $vars = array('rowset'); extract($phpbb_dispatcher->trigger_event('core.make_jumpbox_modify_forum_list', compact($vars)));
|
// Sometimes it could happen that forums will be displayed here not be displayed within the index page // This is the result of forums not displayed at index, having list permissions and a parent of a forum with no permissions. // If this happens, the padding could be "broken"
|
// Sometimes it could happen that forums will be displayed here not be displayed within the index page // This is the result of forums not displayed at index, having list permissions and a parent of a forum with no permissions. // If this happens, the padding could be "broken"
|
while ($row = $db->sql_fetchrow($result))
| foreach ($rowset as $row)
|
{ if ($row['left_id'] < $right) {
| { if ($row['left_id'] < $right) {
|
Line 169 | Line 222 |
---|
continue; }
|
continue; }
|
| $tpl_ary = array();
|
if (!$display_jumpbox) {
|
if (!$display_jumpbox) {
|
$template->assign_block_vars('jumpbox_forums', array(
| $tpl_ary[] = array(
|
'FORUM_ID' => ($select_all) ? 0 : -1, 'FORUM_NAME' => ($select_all) ? $user->lang['ALL_FORUMS'] : $user->lang['SELECT_FORUM'], 'S_FORUM_COUNT' => $iteration, 'LINK' => $phpbb_path_helper->append_url_params($action, array('f' => $forum_id)),
|
'FORUM_ID' => ($select_all) ? 0 : -1, 'FORUM_NAME' => ($select_all) ? $user->lang['ALL_FORUMS'] : $user->lang['SELECT_FORUM'], 'S_FORUM_COUNT' => $iteration, 'LINK' => $phpbb_path_helper->append_url_params($action, array('f' => $forum_id)),
|
));
| );
|
$iteration++; $display_jumpbox = true; }
|
$iteration++; $display_jumpbox = true; }
|
$template->assign_block_vars('jumpbox_forums', array(
| $tpl_ary[] = array(
|
'FORUM_ID' => $row['forum_id'], 'FORUM_NAME' => $row['forum_name'], 'SELECTED' => ($row['forum_id'] == $forum_id) ? ' selected="selected"' : '',
| 'FORUM_ID' => $row['forum_id'], 'FORUM_NAME' => $row['forum_name'], 'SELECTED' => ($row['forum_id'] == $forum_id) ? ' selected="selected"' : '',
|
Line 191 | Line 245 |
---|
'S_IS_LINK' => ($row['forum_type'] == FORUM_LINK) ? true : false, 'S_IS_POST' => ($row['forum_type'] == FORUM_POST) ? true : false, 'LINK' => $phpbb_path_helper->append_url_params($action, array('f' => $row['forum_id'])),
|
'S_IS_LINK' => ($row['forum_type'] == FORUM_LINK) ? true : false, 'S_IS_POST' => ($row['forum_type'] == FORUM_POST) ? true : false, 'LINK' => $phpbb_path_helper->append_url_params($action, array('f' => $row['forum_id'])),
|
));
| );
/** * Modify the jumpbox before it is assigned to the template * * @event core.make_jumpbox_modify_tpl_ary * @var array row The data of the forum * @var array tpl_ary Template data of the forum * @since 3.1.10-RC1 */ $vars = array( 'row', 'tpl_ary', ); extract($phpbb_dispatcher->trigger_event('core.make_jumpbox_modify_tpl_ary', compact($vars)));
$template->assign_block_vars_array('jumpbox_forums', $tpl_ary);
unset($tpl_ary);
|
for ($i = 0; $i < $padding; $i++) {
| for ($i = 0; $i < $padding; $i++) {
|
Line 199 | Line 271 |
---|
} $iteration++; }
|
} $iteration++; }
|
$db->sql_freeresult($result); unset($padding_store);
| unset($padding_store, $rowset);
|
$url_parts = $phpbb_path_helper->get_url_parts($action);
| $url_parts = $phpbb_path_helper->get_url_parts($action);
|
Line 392 | Line 463 |
---|
*/ function decode_message(&$message, $bbcode_uid = '') {
|
*/ function decode_message(&$message, $bbcode_uid = '') {
|
global $config;
| global $config, $phpbb_dispatcher;
|
if ($bbcode_uid) {
| if ($bbcode_uid) {
|
Line 404 | Line 475 |
---|
$match = array('<br />'); $replace = array("\n"); }
|
$match = array('<br />'); $replace = array("\n"); }
|
| /** * Use this event to modify the message before it is decoded * * @event core.decode_message_before * @var string message_text The message content * @var string bbcode_uid The message BBCode UID * @since 3.1.9-RC1 */ $message_text = $message; $vars = array('message_text', 'bbcode_uid'); extract($phpbb_dispatcher->trigger_event('core.decode_message_before', compact($vars))); $message = $message_text;
|
$message = str_replace($match, $replace, $message);
| $message = str_replace($match, $replace, $message);
|
Line 411 | Line 495 |
---|
$replace = array('\1', '\1', '\2', '\1', '', '');
$message = preg_replace($match, $replace, $message);
|
$replace = array('\1', '\1', '\2', '\1', '', '');
$message = preg_replace($match, $replace, $message);
|
| /** * Use this event to modify the message after it is decoded * * @event core.decode_message_after * @var string message_text The message content * @var string bbcode_uid The message BBCode UID * @since 3.1.9-RC1 */ $message_text = $message; $vars = array('message_text', 'bbcode_uid'); extract($phpbb_dispatcher->trigger_event('core.decode_message_after', compact($vars))); $message = $message_text;
|
}
/**
| }
/**
|
Line 582 | Line 679 |
---|
* @var string uid The BBCode UID * @var string bitfield The BBCode Bitfield * @var int flags The BBCode Flags
|
* @var string uid The BBCode UID * @var string bitfield The BBCode Bitfield * @var int flags The BBCode Flags
|
| * @var string message_parser The message_parser object
|
* @since 3.1.0-a1
|
* @since 3.1.0-a1
|
| * @changed 3.1.11-RC1 Added message_parser to vars
|
*/
|
*/
|
$vars = array('text', 'uid', 'bitfield', 'flags');
| $vars = array('text', 'uid', 'bitfield', 'flags', 'message_parser');
|
extract($phpbb_dispatcher->trigger_event('core.modify_text_for_storage_after', compact($vars)));
return $message_parser->warn_msg;
| extract($phpbb_dispatcher->trigger_event('core.modify_text_for_storage_after', compact($vars)));
return $message_parser->warn_msg;
|
Line 712 | Line 811 |
---|
break; }
|
break; }
|
$short_url = (strlen($url) > 55) ? substr($url, 0, 39) . ' ... ' . substr($url, -10) : $url;
| $short_url = (utf8_strlen($url) > 55) ? utf8_substr($url, 0, 39) . ' ... ' . utf8_substr($url, -10) : $url;
|
switch ($type) {
| switch ($type) {
|
Line 788 | Line 887 |
---|
// relative urls for this board $magic_url_match_args[$server_url][] = array(
|
// relative urls for this board $magic_url_match_args[$server_url][] = array(
|
'#(^|[\n\t (>.])(' . preg_quote($server_url, '#') . ')/(' . get_preg_expression('relative_url_inline') . ')#i',
| '#(^|[\n\t (>.])(' . preg_quote($server_url, '#') . ')/(' . get_preg_expression('relative_url_inline') . ')#iu',
|
MAGIC_URL_LOCAL, $local_class, );
// matches a xxxx://aaaaa.bbb.cccc. ... $magic_url_match_args[$server_url][] = array(
|
MAGIC_URL_LOCAL, $local_class, );
// matches a xxxx://aaaaa.bbb.cccc. ... $magic_url_match_args[$server_url][] = array(
|
'#(^|[\n\t (>.])(' . get_preg_expression('url_inline') . ')#i',
| '#(^|[\n\t (>.])(' . get_preg_expression('url_inline') . ')#iu',
|
MAGIC_URL_FULL, $class, );
// matches a "www.xxxx.yyyy[/zzzz]" kinda lazy URL thing $magic_url_match_args[$server_url][] = array(
|
MAGIC_URL_FULL, $class, );
// matches a "www.xxxx.yyyy[/zzzz]" kinda lazy URL thing $magic_url_match_args[$server_url][] = array(
|
'#(^|[\n\t (>])(' . get_preg_expression('www_url_inline') . ')#i',
| '#(^|[\n\t (>])(' . get_preg_expression('www_url_inline') . ')#iu',
|
MAGIC_URL_WWW, $class, );
// matches an email@domain type address at the start of a line, or after a space or after what might be a BBCode. $magic_url_match_args[$server_url][] = array(
|
MAGIC_URL_WWW, $class, );
// matches an email@domain type address at the start of a line, or after a space or after what might be a BBCode. $magic_url_match_args[$server_url][] = array(
|
'/(^|[\n\t (>])(' . get_preg_expression('email') . ')/i',
| '/(^|[\n\t (>])(' . get_preg_expression('email') . ')/iu',
|
MAGIC_URL_EMAIL, '', );
| MAGIC_URL_EMAIL, '', );
|
Line 883 | Line 982 |
---|
*/ function smiley_text($text, $force_option = false) {
|
*/ function smiley_text($text, $force_option = false) {
|
global $config, $user, $phpbb_path_helper;
| global $config, $user, $phpbb_path_helper, $phpbb_dispatcher;
|
if ($force_option || !$config['allow_smilies'] || !$user->optionget('viewsmilies')) {
| if ($force_option || !$config['allow_smilies'] || !$user->optionget('viewsmilies')) {
|
Line 892 | Line 991 |
---|
else { $root_path = (defined('PHPBB_USE_BOARD_URL_PATH') && PHPBB_USE_BOARD_URL_PATH) ? generate_board_url() . '/' : $phpbb_path_helper->get_web_root_path();
|
else { $root_path = (defined('PHPBB_USE_BOARD_URL_PATH') && PHPBB_USE_BOARD_URL_PATH) ? generate_board_url() . '/' : $phpbb_path_helper->get_web_root_path();
|
| /** * Event to override the root_path for smilies * * @event core.smiley_text_root_path * @var string root_path root_path for smilies * @since 3.1.11-RC1 */ $vars = array('root_path'); extract($phpbb_dispatcher->trigger_event('core.smiley_text_root_path', compact($vars)));
|
return preg_replace('#<!\-\- s(.*?) \-\-><img src="\{SMILIES_PATH\}\/(.*?) \/><!\-\- s\1 \-\->#', '<img class="smilies" src="' . $root_path . $config['smilies_path'] . '/\2 />', $text); } }
| return preg_replace('#<!\-\- s(.*?) \-\-><img src="\{SMILIES_PATH\}\/(.*?) \/><!\-\- s\1 \-\->#', '<img class="smilies" src="' . $root_path . $config['smilies_path'] . '/\2 />', $text); } }
|
Line 974 | Line 1083 |
---|
unset($new_attachment_data); }
|
unset($new_attachment_data); }
|
// Sort correctly if ($config['display_order']) { // Ascending sort krsort($attachments); } else { // Descending sort
| // Make sure attachments are properly ordered
|
ksort($attachments);
|
ksort($attachments);
|
}
| |
foreach ($attachments as $attachment) {
| foreach ($attachments as $attachment) {
|
Line 1222 | Line 1322 |
---|
$attachments = $compiled_attachments; unset($compiled_attachments);
|
$attachments = $compiled_attachments; unset($compiled_attachments);
|
$tpl_size = sizeof($attachments);
| |
$unset_tpl = array();
| $unset_tpl = array();
|
Line 1232 | Line 1330 |
---|
$replace = array(); foreach ($matches[0] as $num => $capture) {
|
$replace = array(); foreach ($matches[0] as $num => $capture) {
|
// Flip index if we are displaying the reverse way $index = ($config['display_order']) ? ($tpl_size-($matches[1][$num] + 1)) : $matches[1][$num];
| $index = $matches[1][$num];
|
$replace['from'][] = $matches[0][$num]; $replace['to'][] = (isset($attachments[$index])) ? $attachments[$index] : sprintf($user->lang['MISSING_INLINE_ATTACHMENT'], $matches[2][array_search($index, $matches[1])]);
| $replace['from'][] = $matches[0][$num]; $replace['to'][] = (isset($attachments[$index])) ? $attachments[$index] : sprintf($user->lang['MISSING_INLINE_ATTACHMENT'], $matches[2][array_search($index, $matches[1])]);
|
Line 1247 | Line 1344 |
---|
}
$unset_tpl = array_unique($unset_tpl);
|
}
$unset_tpl = array_unique($unset_tpl);
|
| // Sort correctly if ($config['display_order']) { // Ascending sort krsort($attachments); } else { // Descending sort ksort($attachments); }
|
// Needed to let not display the inlined attachments at the end of the post again foreach ($unset_tpl as $index)
| // Needed to let not display the inlined attachments at the end of the post again foreach ($unset_tpl as $index)
|