aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/functions_posting.php
diff options
context:
space:
mode:
authorMeik Sievertsen <acydburn@phpbb.com>2003-10-10 12:11:18 +0000
committerMeik Sievertsen <acydburn@phpbb.com>2003-10-10 12:11:18 +0000
commit09f0238af2452e7ad7bddc65dfa794668ac16b19 (patch)
tree016b6e26cb7d5c2ce238ce94c5a1a27b66d57b69 /phpBB/includes/functions_posting.php
parentf0e6b45dcfb81ac132553ceccf7f573b490d524c (diff)
downloadforums-09f0238af2452e7ad7bddc65dfa794668ac16b19.tar
forums-09f0238af2452e7ad7bddc65dfa794668ac16b19.tar.gz
forums-09f0238af2452e7ad7bddc65dfa794668ac16b19.tar.bz2
forums-09f0238af2452e7ad7bddc65dfa794668ac16b19.tar.xz
forums-09f0238af2452e7ad7bddc65dfa794668ac16b19.zip
admin decides which smilies to be displayed in posting screen
git-svn-id: file:///svn/phpbb/trunk@4544 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes/functions_posting.php')
-rw-r--r--phpBB/includes/functions_posting.php68
1 files changed, 39 insertions, 29 deletions
diff --git a/phpBB/includes/functions_posting.php b/phpBB/includes/functions_posting.php
index 6f6f685cfa..c0ee0c35c9 100644
--- a/phpBB/includes/functions_posting.php
+++ b/phpBB/includes/functions_posting.php
@@ -12,64 +12,74 @@
// -------------------------------------------------------------
// Fill smiley templates (or just the variables) with smileys, either in a window or inline
-function generate_smilies($mode)
+function generate_smilies($mode, $forum_id)
{
global $SID, $auth, $db, $user, $config, $template;
- global $starttime, $phpEx, $phpbb_root_path;
-
- $max_smilies_inline = 20;
+ global $phpEx, $phpbb_root_path;
if ($mode == 'window')
{
- $user->setup(FALSE);
+ if (!$forum_id && !$topic_id)
+ {
+ trigger_error('NO_TOPIC');
+ }
+
+ $sql = 'SELECT forum_style
+ FROM ' . FORUMS_TABLE . "
+ WHERE forum_id = $forum_id";
+ $result = $db->sql_query_limit($sql, 1);
+ $row = $db->sql_fetchrow($result);
+
+ $user->setup(FALSE, (int) $row['forum_style']);
- page_header($user->lang['SMILIES'] . ' - ' . $topic_title);
+ page_header($user->lang['SMILIES']);
$template->set_filenames(array(
'body' => 'posting_smilies.html')
);
}
+ $num_smilies = 0;
+ if ($mode == 'inline')
+ {
+ $sql = 'SELECT COUNT(*) as num_smilies
+ FROM ' . SMILIES_TABLE;
+ $result = $db->sql_query_limit($sql, 1, 0, 3600);
+ $row = $db->sql_fetchrow($result);
+ $num_smilies = (int) $row['num_smilies'];
+ }
+
$sql = 'SELECT *
FROM ' . SMILIES_TABLE .
(($mode == 'inline') ? ' WHERE display_on_posting = 1 ' : '') . '
ORDER BY smile_order';
- $result = $db->sql_query($sql);
+ $result = $db->sql_query($sql, 3600);
- $num_smilies = 0;
- $smile_array = array();
+ $smilies = 0;
if ($row = $db->sql_fetchrow($result))
{
do
{
- if (!in_array($row['smile_url'], $smile_array))
- {
- if ($mode == 'window' || ($mode == 'inline' && $num_smilies < $max_smilies_inline))
- {
- $template->assign_block_vars('emoticon', array(
- 'SMILEY_CODE' => $row['code'],
- 'SMILEY_IMG' => $config['smilies_path'] . '/' . $row['smile_url'],
- 'SMILEY_WIDTH' => $row['smile_width'],
- 'SMILEY_HEIGHT' => $row['smile_height'],
- 'SMILEY_DESC' => $row['emoticon'])
- );
- }
-
- $smile_array[] = $row['smile_url'];
- $num_smilies++;
- }
- }
+ $template->assign_block_vars('emoticon', array(
+ 'SMILEY_CODE' => $row['code'],
+ 'SMILEY_IMG' => $config['smilies_path'] . '/' . $row['smile_url'],
+ 'SMILEY_WIDTH' => $row['smile_width'],
+ 'SMILEY_HEIGHT' => $row['smile_height'],
+ 'SMILEY_DESC' => $row['emoticon'])
+ );
+ $smilies++;
+ }
while ($row = $db->sql_fetchrow($result));
- $db->sql_freeresult($result);
- if ($mode == 'inline' && $num_smilies >= $max_smilies_inline)
+ if ($mode == 'inline' && $num_smilies > $smilies)
{
$template->assign_vars(array(
'S_SHOW_EMOTICON_LINK' => TRUE,
- 'U_MORE_SMILIES' => $phpbb_root_path . "posting.$phpEx$SID&amp;mode=smilies")
+ 'U_MORE_SMILIES' => $phpbb_root_path . "posting.$phpEx$SID&amp;mode=smilies&amp;f=$forum_id")
);
}
}
+ $db->sql_freeresult($result);
if ($mode == 'window')
{