admin decides which smilies to be displayed in posting screen

git-svn-id: file:///svn/phpbb/trunk@4544 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Meik Sievertsen 2003-10-10 12:11:18 +00:00
parent f0e6b45dcf
commit 09f0238af2
2 changed files with 42 additions and 32 deletions

View file

@ -12,64 +12,74 @@
// ------------------------------------------------------------- // -------------------------------------------------------------
// Fill smiley templates (or just the variables) with smileys, either in a window or inline // 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 $SID, $auth, $db, $user, $config, $template;
global $starttime, $phpEx, $phpbb_root_path; global $phpEx, $phpbb_root_path;
$max_smilies_inline = 20;
if ($mode == 'window') 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( $template->set_filenames(array(
'body' => 'posting_smilies.html') '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 * $sql = 'SELECT *
FROM ' . SMILIES_TABLE . FROM ' . SMILIES_TABLE .
(($mode == 'inline') ? ' WHERE display_on_posting = 1 ' : '') . ' (($mode == 'inline') ? ' WHERE display_on_posting = 1 ' : '') . '
ORDER BY smile_order'; ORDER BY smile_order';
$result = $db->sql_query($sql); $result = $db->sql_query($sql, 3600);
$num_smilies = 0; $smilies = 0;
$smile_array = array();
if ($row = $db->sql_fetchrow($result)) if ($row = $db->sql_fetchrow($result))
{ {
do do
{ {
if (!in_array($row['smile_url'], $smile_array)) $template->assign_block_vars('emoticon', array(
{ 'SMILEY_CODE' => $row['code'],
if ($mode == 'window' || ($mode == 'inline' && $num_smilies < $max_smilies_inline)) 'SMILEY_IMG' => $config['smilies_path'] . '/' . $row['smile_url'],
{ 'SMILEY_WIDTH' => $row['smile_width'],
$template->assign_block_vars('emoticon', array( 'SMILEY_HEIGHT' => $row['smile_height'],
'SMILEY_CODE' => $row['code'], 'SMILEY_DESC' => $row['emoticon'])
'SMILEY_IMG' => $config['smilies_path'] . '/' . $row['smile_url'], );
'SMILEY_WIDTH' => $row['smile_width'], $smilies++;
'SMILEY_HEIGHT' => $row['smile_height'], }
'SMILEY_DESC' => $row['emoticon'])
);
}
$smile_array[] = $row['smile_url'];
$num_smilies++;
}
}
while ($row = $db->sql_fetchrow($result)); 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( $template->assign_vars(array(
'S_SHOW_EMOTICON_LINK' => TRUE, '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') if ($mode == 'window')
{ {

View file

@ -102,7 +102,7 @@ switch ($mode)
break; break;
case 'smilies': case 'smilies':
generate_smilies('window'); generate_smilies('window', $forum_id);
break; break;
default: default:
@ -792,8 +792,8 @@ if (($mode == 'reply' || $mode == 'quote') && !$preview && !$refresh)
get_moderators($moderators, $forum_id); get_moderators($moderators, $forum_id);
// Generate smilies and topic icon listings // Generate smilie listing
generate_smilies('inline'); generate_smilies('inline', $forum_id);
// Generate Topic icons // Generate Topic icons