diff options
author | Paul S. Owen <psotfx@users.sourceforge.net> | 2001-12-17 02:02:55 +0000 |
---|---|---|
committer | Paul S. Owen <psotfx@users.sourceforge.net> | 2001-12-17 02:02:55 +0000 |
commit | 7ad2cf2c9728183bdd43bb31590aa8721aeb1dda (patch) | |
tree | db02f6959551057c1a47e9d586e77e93929974ff /phpBB/posting.php | |
parent | 4201b9af2ae3558782c009fe96e72f7ccc47c8e8 (diff) | |
download | forums-7ad2cf2c9728183bdd43bb31590aa8721aeb1dda.tar forums-7ad2cf2c9728183bdd43bb31590aa8721aeb1dda.tar.gz forums-7ad2cf2c9728183bdd43bb31590aa8721aeb1dda.tar.bz2 forums-7ad2cf2c9728183bdd43bb31590aa8721aeb1dda.tar.xz forums-7ad2cf2c9728183bdd43bb31590aa8721aeb1dda.zip |
Stupid horrible group by clauses
git-svn-id: file:///svn/phpbb/trunk@1618 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/posting.php')
-rw-r--r-- | phpBB/posting.php | 52 |
1 files changed, 38 insertions, 14 deletions
diff --git a/phpBB/posting.php b/phpBB/posting.php index 9f5af2f4d1..bc5b1c0b2b 100644 --- a/phpBB/posting.php +++ b/phpBB/posting.php @@ -593,36 +593,60 @@ function generate_smilies($mode) ); } - $sql = "SELECT * + $sql = "SELECT emoticon, code, smile_url FROM " . SMILIES_TABLE . " - GROUP BY emoticon ORDER BY smilies_id"; if( $result = $db->sql_query($sql) ) { - if( $num_smilies = $db->sql_numrows($result) ) + if( $db->sql_numrows($result) ) { - $rowset = $db->sql_fetchrowset($result); + $rowset = array(); + while( $row = $db->sql_fetchrow($result) ) + { + if( empty($rowset[$row['smile_url']]) ) + { + $rowset[$row['smile_url']]['code'] = $row['code']; + $rowset[$row['smile_url']]['emoticon'] = $row['emoticon']; + } + } - $j = 0; - $s_colspan = 0; - $smilies_count = ( $mode == 'inline' ) ? min(20, $num_smilies) : $num_smilies; + $num_smilies = count($rowset); + + $smilies_count = ( $mode == 'inline' ) ? min(19, $num_smilies) : $num_smilies; $smilies_split_row = ( $mode == 'inline' ) ? 3 : 7; - for($i = 0; $i < $smilies_count; $i++) + + $s_colspan = 0; + $row = 0; + $col = 0; + + while( list($smile_url, $data) = @each($rowset) ) { - if( !$j ) + if( !$col ) { $template->assign_block_vars("smilies_row", array()); } $template->assign_block_vars("smilies_row.smilies_col", array( - "SMILEY_CODE" => $rowset[$i]['code'], - "SMILEY_IMG" => "images/smiles/" . $rowset[$i]['smile_url'], - "SMILEY_DESC" => $rowset[$i]['emoticon']) + "SMILEY_CODE" => $data['code'], + "SMILEY_IMG" => "images/smiles/" . $smile_url, + "SMILEY_DESC" => $data['emoticon']) ); - $s_colspan = max($s_colspan, $j + 1); + $s_colspan = max($s_colspan, $col + 1); - $j = ( $j == $smilies_split_row ) ? 0 : $j + 1; + if( $col == $smilies_split_row ) + { + if( $mode == 'inline' && $row == 4 ) + { + break; + } + $col = 0; + $row++; + } + else + { + $col++; + } } if( $mode == 'inline' && $num_smilies > 20) |