Magic URL updates

git-svn-id: file:///svn/phpbb/trunk@2992 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Paul S. Owen 2002-10-31 00:51:00 +00:00
parent 72f1ad476a
commit 8f0890acd1
2 changed files with 23 additions and 22 deletions

View file

@ -36,7 +36,7 @@ class parse_message
$match = array();
$replace = array();
$match[] = '#sid=[a-z0-9]+&?#';
$match[] = '#sid=[a-z0-9]*?&?#';
$replace[] = '';
$match[] = "#([\r\n][\s]+){3,}#";
$replace[] = "\n\n";
@ -94,7 +94,7 @@ class parse_message
{
global $config, $user;
if ( $html )
if ($html)
{
// If $html is true then "allowed_tags" are converted back from entity
// form, others remain
@ -103,7 +103,7 @@ class parse_message
$match = array();
$replace = array();
foreach ( $allowed_tags as $tag )
foreach ($allowed_tags as $tag)
{
$match[] = '#<(\/?' . str_replace('*', '.*?', $tag) . ')>#i';
$replace[] = '<\1>';
@ -128,7 +128,7 @@ class parse_message
{
global $config;
if ( $url )
if ($url)
{
$server_protocol = ( $config['cookie_secure'] ) ? 'https://' : 'http://';
$server_port = ( $config['server_port'] <> 80 ) ? ':' . trim($config['server_port']) . '/' : '/';
@ -138,19 +138,19 @@ class parse_message
// relative urls for this board
$match[] = '#' . $server_protocol . trim($config['server_name']) . $server_port . preg_replace('/^\/?(.*?)(\/)?$/', '\1', trim($config['script_path'])) . '/([^\t\n\r <"\']+)#i';
$replace[] = '<a href="\1" target="_blank">\1</a>';
$replace[] = '<!-- l --><a href="\1" target="_blank">\1</a><!-- l -->';
// matches a xxxx://aaaaa.bbb.cccc. ...
$match[] = '#([\n ])([\w]+?://.*?)([^\t\n\r <"\'])#ie';
$replace[] = "'\\1<!-- m --><a href=\"\\2\" target=\"_blank\">' . ( ( strlen('\\2') > 55 ) ?substr('\\2', 0, 39) . ' ... ' . substr('\\2', -10) : '\\2' ) . '</a><!-- m -->\\3'";
$match[] = '#(^|[\n ])([\w]+?://[\w\?&\#,\.\+\-!~\/=%]+)#ie';
$replace[] = "'\\1<!-- m --><a href=\"\\2\" target=\"_blank\">' . ( ( strlen('\\2') > 55 ) ?substr('\\2', 0, 39) . ' ... ' . substr('\\2', -10) : '\\2' ) . '</a><!-- m -->'";
// matches a "www.xxxx.yyyy[/zzzz]" kinda lazy URL thing
$match[] = '#(^|[\n ])(www\.[\w\-]+\.[\w\-.\~]+(?:/[^\t\n\r <"\']*)?)#ie';
$replace[] = "'\\1<!-- m --><a href=\"http://\\2\" target=\"_blank\">' . ( ( strlen('\\2') > 55 ) ?substr('\\2', 0, 39) . ' ... ' . substr('\\2', -10) : '\\2' ) . '</a><!-- m -->'";
$replace[] = "'\\1<!-- w --><a href=\"http://\\2\" target=\"_blank\">' . ( ( strlen('\\2') > 55 ) ?substr('\\2', 0, 39) . ' ... ' . substr('\\2', -10) : '\\2' ) . '</a><!-- w -->'";
// matches an email@domain type address at the start of a line, or after a space.
$match[] = '#(^|[\n ])([a-z0-9\-_.]+?@[\w\-]+\.([\w\-\.]+\.)?[\w]+)#ie';
$replace[] = "'\\1<!-- m --><a href=\"mailto:\\2\">' . ( ( strlen('\\2') > 55 ) ?substr('\\2', 0, 39) . ' ... ' . substr('\\2', -10) : '\\2' ) . '</a><!-- m -->'";
$replace[] = "'\\1<!-- e --><a href=\"mailto:\\2\">' . ( ( strlen('\\2') > 55 ) ?substr('\\2', 0, 39) . ' ... ' . substr('\\2', -10) : '\\2' ) . '</a><!-- e -->'";
$message = preg_replace($match, $replace, $message);
}
@ -165,9 +165,7 @@ class parse_message
}
}
// Parses a given message and updates/maintains
// the fulltext word indexes NOTE this is not complete
// nor 'entirely' (!) functional ...
// Parses a given message and updates/maintains the fulltext tables
class fulltext_search
{
function split_words(&$text)
@ -376,7 +374,7 @@ class fulltext_search
$row = $db->sql_fetchrow($result);
if ( $row['total_posts'] >= 100 )
if ($row['total_posts'] >= 100)
{
$sql = "SELECT word_id
FROM " . SEARCH_MATCH_TABLE . "
@ -385,13 +383,13 @@ class fulltext_search
$result = $db->sql_query($sql);
$in_sql = '';
while ( $row = $db->sql_fetchrow($result) )
while ($row = $db->sql_fetchrow($result))
{
$in_sql .= ( ( $in_sql != '' ) ? ', ' : '' ) . $row['word_id'];
}
$db->sql_freeresult($result);
if ( $in_sql )
if ($in_sql)
{
$sql = "UPDATE " . SEARCH_WORD_TABLE . "
SET word_common = " . TRUE . "
@ -412,7 +410,7 @@ class fulltext_search
GROUP BY m.word_id";
$result = $db->sql_query($sql);
if ( $row = $db->sql_fetchrow($result) )
if ($row = $db->sql_fetchrow($result))
{
$in_sql = '';
while ( $row = $db->sql_fetchrow($result) )
@ -421,7 +419,7 @@ class fulltext_search
}
$db->sql_freeresult($result);
if ( $in_sql )
if ($in_sql)
{
$sql = "DELETE FROM " . SEARCH_WORD_TABLE . "
WHERE word_id IN ($in_sql)";
@ -504,8 +502,5 @@ function generate_smilies($mode)
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
}
}
//
// END NEW CODE
// ---------------------------------------------
?>

View file

@ -177,7 +177,7 @@ if (isset($post))
$enable_html = (!intval($config['allow_html'])) ? 0 : ((!empty($disable_html)) ? 0 : 1);
$enable_bbcode = (!intval($config['allow_bbcode'])) ? 0 : ((!empty($disable_bbcode)) ? 0 : 1);
$enable_smilies = (!intval($config['allow_smilies'])) ? 0 : ((!empty($disable_smilies)) ? 0 : 1);
$enable_urls = (!empty($disable_magic_url)) ? 1 : 0;
$enable_urls = (!empty($disable_magic_url)) ? 0 : 1;
$enable_sig = (empty($attach_sig) ) ? 1 : 0;
// Check checksum ... don't re-parse message if the same
@ -461,7 +461,6 @@ if (isset($post))
$template->assign_vars(array(
'ERROR_MESSAGE' => $err_msg)
);
}
//
// PROCESS SUBMIT
@ -476,11 +475,16 @@ if (isset($post))
//
// Remove encoded bbcode, urls, etc.
$server_protocol = ($config['cookie_secure']) ? 'https://' : 'http://';
$server_port = ($config['server_port'] <> 80) ? ':' . trim($config['server_port']) . '/' : '/';
$match = array(
'#<!\-\- b \-\-><b>(.*?)</b><!\-\- b \-\->#s',
'#<!\-\- u \-\-><u>(.*?)</u><!\-\- u \-\->#s',
'#<!\-\- e \-\-><a href="mailto:(.*?)">.*?</a><!\-\- e \-\->#',
'#<!\-\- m \-\-><a href="(.*?)" target="_blank">.*?</a><!\-\- m \-\->#',
'#<!\-\- w \-\-><a href="http:\/\/(.*?)" target="_blank">.*?</a><!\-\- w \-\->#',
'#<!\-\- l \-\-><a href="(.*?)" target="_blank">.*?</a><!\-\- l \-\->#',
);
$replace = array(
@ -488,6 +492,8 @@ $replace = array(
'[u]\1[/u]',
'\1',
'\1',
'\1',
$server_protocol . trim($config['server_name']) . $server_port . preg_replace('/^\/?(.*?)(\/)?$/', '\1', trim($config['script_path'])) . '/\1',
);
$post_text = preg_replace($match, $replace, $post_text);