diff --git a/phpBB/admin/admin_forums.php b/phpBB/admin/admin_forums.php
index b4448a7185..76efa5c65c 100644
--- a/phpBB/admin/admin_forums.php
+++ b/phpBB/admin/admin_forums.php
@@ -763,10 +763,9 @@ page_footer();
function get_forum_info($forum_id)
{
global $db;
- $sql = 'SELECT f.*, s.*
- FROM ' . FORUMS_TABLE . ' f
- LEFT JOIN ' . STYLES_TABLE . " s ON f.forum_style = s.style_id
- WHERE f.forum_id = $forum_id";
+ $sql = 'SELECT *
+ FROM ' . FORUMS_TABLE . "
+ WHERE forum_id = $forum_id";
$result = $db->sql_query($sql);
if (!$row = $db->sql_fetchrow($result))
{
diff --git a/phpBB/admin/admin_smilies.php b/phpBB/admin/admin_smilies.php
index c930c3edc8..a76899e965 100644
--- a/phpBB/admin/admin_smilies.php
+++ b/phpBB/admin/admin_smilies.php
@@ -1,6 +1,6 @@
get_acl_admin('general') )
+if (!$acl->get_acl_admin('general'))
{
message_die(MESSAGE, $lang['No_admin']);
}
@@ -51,374 +51,389 @@ if ( !$acl->get_acl_admin('general') )
//
// Check to see what mode we should operate in.
//
-if ( isset($HTTP_POST_VARS['mode']) || isset($HTTP_GET_VARS['mode']) )
+if (isset($HTTP_POST_VARS['mode']) || isset($HTTP_GET_VARS['mode']))
{
- $mode = ( isset($HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode'];
+ $mode = (!empty($HTTP_POST_VARS['mode'])) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode'];
}
else
{
$mode = '';
}
-$delimeter = '=+:';
+$delimiter = '=+:';
+$smilies_images = $smilies_paks = array();
+$click_return = '
' . sprintf($lang['Click_return_smileadmin'], '', '');
+$click_return .= '
' . sprintf($lang['Click_return_admin_index'], '', '');
-//
-// Read a listing of uploaded smilies for use in the add or edit smliey code...
-//
-$dir = @opendir($phpbb_root_path . $board_config['smilies_path']);
-
-while( $file = @readdir($dir) )
+if ($mode == 'edit' || !empty($HTTP_POST_VARS['add']) || !empty($HTTP_POST_VARS['import_pak']))
{
- if ( is_file($phpbb_root_path . $board_config['smilies_path'] . '/' . $file) )
+ $dir = @opendir($phpbb_root_path . $board_config['smilies_path']);
+ while ($file = @readdir($dir))
{
- $img_size = @getimagesize($phpbb_root_path . $board_config['smilies_path'] . '/' . $file);
-
- if ( $img_size[0] && $img_size[1] )
+ if (is_file($phpbb_root_path . $board_config['smilies_path'] . '/' . $file))
{
- $smiley_images[] = $file;
- }
- else if( eregi('.pak$', $file) )
- {
- $smiley_paks[] = $file;
+ $img_size = @getimagesize($phpbb_root_path . $board_config['smilies_path'] . '/' . $file);
+
+ if (preg_match('/\.(gif|png|jpg)$/i', $file) || (!empty($img_size[0]) && !empty($img_size[1])))
+ {
+ $smilies_images[] = $file;
+ }
+ elseif (preg_match('/\.pak$/i', $file))
+ {
+ $smilies_paks[] = $file;
+ }
}
}
+ @closedir($dir);
}
-@closedir($dir);
-
//
// Select main mode
//
-if ( isset($HTTP_GET_VARS['import_pack']) || isset($HTTP_POST_VARS['import_pack']) )
+if (isset($HTTP_POST_VARS['import_pak']))
{
- //
- // Import a list a "Smiley Pack"
- //
- $smile_pak = ( isset($HTTP_POST_VARS['smile_pak']) ) ? $HTTP_POST_VARS['smile_pak'] : $HTTP_GET_VARS['smile_pak'];
- $clear_current = ( isset($HTTP_POST_VARS['clear_current']) ) ? $HTTP_POST_VARS['clear_current'] : $HTTP_GET_VARS['clear_current'];
- $replace_existing = ( isset($HTTP_POST_VARS['replace']) ) ? intval($HTTP_POST_VARS['replace']) : intval($HTTP_GET_VARS['replace']);
-
- if ( !empty($smile_pak) )
+ if (!empty($HTTP_POST_VARS['smilies_pak']))
{
//
- // The user has already selected a smile_pak file.. Import it.
+ // The user has already selected a smilies_pak file.. Import it.
//
- if ( !empty($clear_current) )
+ if (!empty($HTTP_POST_VARS['clear_current']))
{
- $sql = "DELETE
- FROM " . SMILIES_TABLE;
- $db->sql_query($sql);
+ $db->sql_query('DELETE FROM ' . SMILIES_TABLE);
}
else
{
- $sql = "SELECT code
- FROM ". SMILIES_TABLE;
- $result = $db->sql_query($sql);
+ $result = $db->sql_query('SELECT code FROM ' . SMILIES_TABLE);
- $cur_smilies = $db->sql_fetchrowset($result);
-
- for( $i = 0; $i < count($cur_smilies); $i++ )
+ $smilies = array();
+ while ($row = $db->sql_fetchrow($result))
{
- $k = $cur_smilies[$i]['code'];
- $smiles[$k] = 1;
+ $smilies[$row['code']] = 1;
}
}
- $fcontents = @file($phpbb_root_path . $board_config['smilies_path'] . '/'. $smile_pak);
+ $fcontents = @file($phpbb_root_path . $board_config['smilies_path'] . '/'. $smilies_pak);
- if ( empty($fcontents) )
+ if (empty($fcontents))
{
- message_die(ERROR, "Couldn't read smiley pak file", "", __LINE__, __FILE__, $sql);
+ message_die(ERROR, 'Could not read smiley pak file' . $click_return);
}
- for( $i = 0; $i < count($fcontents); $i++ )
+ foreach ($fcontents as $line)
{
- $smile_data = explode($delimeter, trim(addslashes($fcontents[$i])));
+ $smile_data = explode($delimiter, trim($line));
- for( $j = 2; $j < count($smile_data); $j++)
+ $smile_url = $smile_data[0];
+ $emotion = $smile_data[1];
+ $code = htmlentities($smile_data[2]);
+
+ if (!isset($smile_data[4]))
{
//
- // Replace > and < with the proper html_entities for matching.
+ // The size isn't specified, try to get it from the file and if it fails
+ // arbitrary set it to 15 and let the user correct it later.
//
- $smile_data[$j] = htmlentities($smile_data[$j]);
- $k = $smile_data[$j];
-
- if ( $smiles[$k] == 1 )
- {
- if ( !empty($replace_existing) )
- {
- $sql = "UPDATE " . SMILIES_TABLE . "
- SET smile_url = '" . str_replace("\'", "''", $smile_data[0]) . "', emoticon = '" . str_replace("\'", "''", $smile_data[1]) . "'
- WHERE code = '" . str_replace("\'", "''", $smile_data[$j]) . "'";
- }
- else
- {
- $sql = '';
- }
- }
- else
- {
- $sql = "INSERT INTO " . SMILIES_TABLE . " (code, smile_url, emoticon)
- VALUES('" . str_replace("\'", "''", $smile_data[$j]) . "', '" . str_replace("\'", "''", $smile_data[0]) . "', '" . str_replace("\'", "''", $smile_data[1]) . "')";
- }
-
- if ( $sql != '' )
- {
- $db->sql_query($sql);
- }
- }
- }
-
- message_die(MESSAGE, $lang['smiley_import_success']);
-
- }
- else
- {
- //
- // Display the script to get the smile_pak cfg file...
- //
- $smile_paks_select = "";
-
- $hidden_vars = "";
-
- $template->set_filenames(array(
- "body" => "admin/smile_import_body.tpl")
- );
-
- $template->assign_vars(array(
- "L_SMILEY_TITLE" => $lang['smiley_title'],
- "L_SMILEY_EXPLAIN" => $lang['smiley_import_inst'],
- "L_SMILEY_IMPORT" => $lang['smiley_import'],
- "L_SELECT_LBL" => $lang['choose_smile_pak'],
- "L_IMPORT" => $lang['import'],
- "L_CONFLICTS" => $lang['smile_conflicts'],
- "L_DEL_EXISTING" => $lang['del_existing_smileys'],
- "L_REPLACE_EXISTING" => $lang['replace_existing'],
- "L_KEEP_EXISTING" => $lang['keep_existing'],
-
- "S_SMILEY_ACTION" => append_sid("admin_smilies.$phpEx"),
- "S_SMILE_SELECT" => $smile_paks_select,
- "S_HIDDEN_FIELDS" => $hidden_vars)
- );
-
- $template->pparse("body");
- }
-}
-else if ( isset($HTTP_POST_VARS['export_pack']) || isset($HTTP_GET_VARS['export_pack']) )
-{
- //
- // Export our smiley config as a smiley pak...
- //
- if ( $HTTP_GET_VARS['export_pack'] == "send" )
- {
- $sql = "SELECT *
- FROM " . SMILIES_TABLE;
- $result = $db->sql_query($sql);
-
- $resultset = $db->sql_fetchrowset($result);
-
- $smile_pak = '';
- for($i = 0; $i < count($resultset); $i++ )
- {
- $smile_pak .= $resultset[$i]['smile_url'] . $delimeter;
- $smile_pak .= $resultset[$i]['emoticon'] . $delimeter;
- $smile_pak .= $resultset[$i]['code'] . "\n";
- }
-
- header("Content-Type: text/x-delimtext; name=\"smiles.pak\"");
- header("Content-disposition: attachment; filename=smiles.pak");
-
- echo $smile_pak;
-
- exit;
- }
-
- message_die(MESSAGE, sprintf($lang['export_smiles'], '', ''));
-
-}
-else if( isset($HTTP_POST_VARS['add']) )
-{
- //
- // Admin has selected to add a smiley.
- //
-
- $template->set_filenames(array(
- "body" => "admin/smile_edit_body.tpl")
- );
-
- $filename_list = "";
- for( $i = 0; $i < count($smiley_images); $i++ )
- {
- $filename_list .= '';
- }
-
- $s_hidden_fields = '';
-
- $template->assign_vars(array(
- "L_SMILEY_TITLE" => $lang['smiley_title'],
- "L_SMILEY_CONFIG" => $lang['smiley_config'],
- "L_SMILEY_EXPLAIN" => $lang['smiley_instr'],
- "L_SMILEY_CODE" => $lang['smiley_code'],
- "L_SMILEY_URL" => $lang['smiley_url'],
- "L_SMILEY_EMOTION" => $lang['smiley_emot'],
- "L_SUBMIT" => $lang['Submit'],
- "L_RESET" => $lang['Reset'],
-
- "SMILEY_IMG" => $phpbb_root_path . $board_config['smilies_path'] . '/' . $smiley_images[0],
-
- "S_SMILEY_ACTION" => append_sid("admin_smilies.$phpEx"),
- "S_HIDDEN_FIELDS" => $s_hidden_fields,
- "S_FILENAME_OPTIONS" => $filename_list,
- "S_SMILEY_BASEDIR" => $phpbb_root_path . $board_config['smilies_path'])
- );
-
- $template->pparse("body");
-}
-
-//
-//
-//
-switch( $mode )
-{
- case 'delete':
-
- $smiley_id = ( !empty($HTTP_POST_VARS['id']) ) ? intval($HTTP_POST_VARS['id']) : intval($HTTP_GET_VARS['id']);
-
- $sql = "DELETE FROM " . SMILIES_TABLE . "
- WHERE smilies_id = " . $smiley_id;
- $db->sql_query($sql);
-
- message_die(GENERAL_MESSAGE, $lang['smiley_del_success']);
- break;
-
- case 'edit':
-
- $smiley_id = ( !empty($HTTP_POST_VARS['id']) ) ? intval($HTTP_POST_VARS['id']) : intval($HTTP_GET_VARS['id']);
-
- $sql = "SELECT *
- FROM " . SMILIES_TABLE . "
- WHERE smilies_id = " . $smiley_id;
- $result = $db->sql_query($sql);
-
- $smile_data = $db->sql_fetchrow($result);
-
- $filename_list = "";
- for( $i = 0; $i < count($smiley_images); $i++ )
- {
-// $selected =
- if( $smiley_images[$i] == $smile_data['smile_url'] )
- {
- $smiley_selected = "selected=\"selected\"";
- $smiley_edit_img = $smiley_images[$i];
+ $size = @getimagesize($phpbb_root_path . $board_config['smilies_path'] . '/' . $smile_url);
+ $smile_width = (!empty($size[0])) ? $size[0] : 15;
+ $smile_height = (!empty($size[1])) ? $size[1] : 15;
}
else
{
- $smiley_selected = "";
+ $smile_width = $smile_data[3];
+ $smile_height = $smile_data[4];
}
- $filename_list .= '';
+ if (!empty($smilies[$code]))
+ {
+ if (!empty($HTTP_POST_VARS['replace_existing']))
+ {
+ $code_sql = str_replace("'", "''", str_replace('\\', '\\\\', $code));
+ $sql = array(
+ 'smile_url' => $smile_url,
+ 'smile_height' => $smile_height,
+ 'smile_width' => $smile_width,
+ 'emoticon' => $emotion
+ );
+ $db->sql_query_array('UPDATE ' . SMILIES_TABLE . " SET WHERE code = '$code_sql'", $sql);
+ }
+ }
+ else
+ {
+ $sql = array(
+ 'code' => $code,
+ 'smile_url' => $smile_url,
+ 'smile_height' => $smile_height,
+ 'smile_width' => $smile_width,
+ 'emoticon' => $emotion
+ );
+ $db->sql_query_array('INSERT INTO ' . SMILIES_TABLE, $sql);
+ }
}
- $template->set_filenames(array(
- "body" => "admin/smile_edit_body.tpl")
+ message_die(MESSAGE, $lang['Smilies_import_success'] . $click_return);
+ }
+ else
+ {
+ if (!count($smilies_paks))
+ {
+ $smilies_paks_select = $lang['No_smilies_pak'];
+ }
+ else
+ {
+ $smilies_paks_select = '';
+ }
+
+ page_header($lang['Import_smilies']);
+?>
+