mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-27 21:58:52 +00:00
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:
parent
f0e6b45dcf
commit
09f0238af2
2 changed files with 42 additions and 32 deletions
|
@ -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');
|
||||||
|
}
|
||||||
|
|
||||||
page_header($user->lang['SMILIES'] . ' - ' . $topic_title);
|
$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']);
|
||||||
|
|
||||||
$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&mode=smilies")
|
'U_MORE_SMILIES' => $phpbb_root_path . "posting.$phpEx$SID&mode=smilies&f=$forum_id")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
if ($mode == 'window')
|
if ($mode == 'window')
|
||||||
{
|
{
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Reference in a new issue