|
From: James A. <th...@us...> - 2002-07-11 18:33:33
|
Update of /cvsroot/phpbb/phpBB2/includes
In directory usw-pr-cvs1:/tmp/cvs-serv3914
Modified Files:
Tag: phpBB-2_0_0
bbcode.php
Log Message:
Added a fix for smillies_pass function by Ashe
See this topic for details:
http://www.phpbb.com/phpBB/viewtopic.php?p=166905
Yeilds a very large performance increase on long topics
Index: bbcode.php
===================================================================
RCS file: /cvsroot/phpbb/phpBB2/includes/bbcode.php,v
retrieving revision 1.36.2.9
retrieving revision 1.36.2.10
diff -C2 -r1.36.2.9 -r1.36.2.10
*** bbcode.php 23 Jun 2002 02:47:55 -0000 1.36.2.9
--- bbcode.php 11 Jul 2002 18:33:29 -0000 1.36.2.10
***************
*** 737,776 ****
// Probably so and I'll move it before B2
//
! function smilies_pass($message)
! {
! global $db, $board_config;
! static $smilies;
!
! if( empty($smilies) )
! {
! $sql = "SELECT code, smile_url
! FROM " . SMILIES_TABLE;
! if( !$result = $db->sql_query($sql) )
! {
! message_die(GENERAL_ERROR, "Couldn't obtain smilies data", "", __LINE__, __FILE__, $sql);
! }
!
! if( !$db->sql_numrows($result) )
! {
! return $message;
! }
!
! $smilies = $db->sql_fetchrowset($result);
! }
!
! usort($smilies, 'smiley_sort');
! for($i = 0; $i < count($smilies); $i++)
! {
! $orig[] = "/(?<=.\\W|\\W.|^\\W)" . phpbb_preg_quote($smilies[$i]['code'], "/") . "(?=.\\W|\\W.|\\W$)/";
! $repl[] = '<img src="'. $board_config['smilies_path'] . '/' . $smilies[$i]['smile_url'] . '" alt="' . $smilies[$i]['smile_url'] . '" border="0" />';
! }
!
! if( $i > 0 )
! {
! $message = preg_replace($orig, $repl, ' ' . $message . ' ');
! $message = substr($message, 1, -1);
! }
!
! return $message;
}
--- 737,770 ----
// Probably so and I'll move it before B2
//
! function smilies_pass($message)
! {
! static $orig, $repl;
!
! if (!isset($orig))
! {
! global $db, $board_config;
! $orig = $repl = array();
!
! $sql = 'SELECT code, smile_url FROM ' . SMILIES_TABLE;
! if( !$result = $db->sql_query($sql) )
! {
! message_die(GENERAL_ERROR, "Couldn't obtain smilies data", "", __LINE__, __FILE__, $sql);
! }
! $smilies = $db->sql_fetchrowset($result);
!
! usort($smilies, 'smiley_sort');
! for($i = 0; $i < count($smilies); $i++)
! {
! $orig[] = "/(?<=.\W|\W.|^\W)" . phpbb_preg_quote($smilies[$i]['code'], "/") . "(?=.\W|\W.|\W$)/";
! $repl[] = '<img src="'. $board_config['smilies_path'] . '/' . $smilies[$i]['smile_url'] . '" alt="' . $smilies[$i]['smile_url'] . '" border="0" />';
! }
! }
!
! if (count($orig))
! {
! $message = preg_replace($orig, $repl, ' ' . $message . ' ');
! $message = substr($message, 1, -1);
! }
! return $message;
}
|