aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/admin
diff options
context:
space:
mode:
authorPaul S. Owen <psotfx@users.sourceforge.net>2003-01-28 18:15:18 +0000
committerPaul S. Owen <psotfx@users.sourceforge.net>2003-01-28 18:15:18 +0000
commitaa1045dea2682473fd03198f633374da4518fbc1 (patch)
tree3e74e53341bdd90785624babd7a0048d08631b3e /phpBB/admin
parent811b6d10d1126a0b8933874eea1bd7d8e5ea773e (diff)
downloadforums-aa1045dea2682473fd03198f633374da4518fbc1.tar
forums-aa1045dea2682473fd03198f633374da4518fbc1.tar.gz
forums-aa1045dea2682473fd03198f633374da4518fbc1.tar.bz2
forums-aa1045dea2682473fd03198f633374da4518fbc1.tar.xz
forums-aa1045dea2682473fd03198f633374da4518fbc1.zip
phew, lucky I remembered I just changed the name and enabled icon admin functions ...
git-svn-id: file:///svn/phpbb/trunk@3380 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/admin')
-rw-r--r--phpBB/admin/admin_icons.php670
1 files changed, 670 insertions, 0 deletions
diff --git a/phpBB/admin/admin_icons.php b/phpBB/admin/admin_icons.php
new file mode 100644
index 0000000000..f365d03ce7
--- /dev/null
+++ b/phpBB/admin/admin_icons.php
@@ -0,0 +1,670 @@
+<?php
+/***************************************************************************
+* admin_smilies.php
+* -------------------
+* begin : Thu May 31, 2001
+* copyright : (C) 2001 The phpBB Group
+* email : support@phpbb.com
+*
+* $Id$
+*
+****************************************************************************/
+
+/***************************************************************************
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ ***************************************************************************/
+
+if (!empty($setmodules))
+{
+ if (!$auth->acl_get('a_icons'))
+ {
+ return;
+ }
+
+ $filename = basename(__FILE__);
+ $module['POST']['SMILE'] = $filename . $SID . '&amp;mode=emoticons';
+ $module['POST']['ICONS'] = $filename . $SID . '&amp;mode=icons';
+
+ return;
+}
+
+define('IN_PHPBB', 1);
+// Include files
+$phpbb_root_path = '../';
+require($phpbb_root_path . 'extension.inc');
+require('pagestart.' . $phpEx);
+
+// Do we have general permissions?
+if (!$auth->acl_get('a_icons'))
+{
+ message_die(MESSAGE, $user->lang['No_admin']);
+}
+
+// Grab some basic parameters
+$mode = (!empty($_REQUEST['mode'])) ? $_REQUEST['mode'] : '';
+$action = (!empty($_REQUEST['action'])) ? $_REQUEST['action'] : ((isset($_POST['add'])) ? 'add' : '');
+$id = (isset($_GET['id'])) ? intval($_GET['id']) : false;
+
+// What are we working on?
+switch ($mode)
+{
+ case 'emoticons':
+ $table = SMILIES_TABLE;
+ $lang = 'SMILE';
+ $fields = 'smile';
+ $img_path = $config['smilies_path'];
+ break;
+
+ case 'icons':
+ $table = ICONS_TABLE;
+ $lang = 'ICONS';
+ $fields = 'icons';
+ $img_path = $config['icons_path'];
+ break;
+}
+
+// Clear some arrays
+$_images = $_paks = array();
+
+// Grab file list of paks and images
+if ($action == 'edit' || $action == 'add' || $action == 'import')
+{
+ $dir = @opendir($phpbb_root_path . $img_path);
+ while ($file = @readdir($dir))
+ {
+ if (is_file($phpbb_root_path . $img_path . '/' . $file))
+ {
+ $img_size = @getimagesize($phpbb_root_path . $img_path . '/' . $file);
+
+ if (preg_match('#\.(gif|png|jpg)$#i', $file) || (!empty($img_size[0]) && !empty($img_size[1])))
+ {
+ $_images[] = $file;
+ }
+ elseif (preg_match('#\.pak$#i', $file))
+ {
+ $_paks[] = $file;
+ }
+ }
+ }
+ @closedir($dir);
+}
+
+
+// What shall we do today? Oops, I believe that's trademarked ...
+switch ($action)
+{
+ case 'delete':
+ $db->sql_query('DELETE FROM ' . $table . '
+ WHERE ' . $fields . '_id = ' . intval($_GET['id']));
+ trigger_error($user->lang[$lang . '_DELETED']);
+ break;
+
+ case 'edit':
+ case 'add':
+ $order_list = '';
+ $result = $db->sql_query('SELECT *
+ FROM ' . $table . '
+ ORDER BY ' . $fields . '_order DESC');
+ if ($row = $db->sql_fetchrow($result))
+ {
+ do
+ {
+ if ($row[$fields . '_id'] == $id)
+ {
+ $after = TRUE;
+ $data = $row;
+ }
+ else
+ {
+ $selected = '';
+ if (!empty($after))
+ {
+ $selected = ' selected="selected"';
+ $after = FALSE;
+ }
+
+ $after_txt = ($mode == 'emoticons') ? $row['code'] : $row['icons_url'];
+ $order_list = '<option value="' . ($row[$fields . '_order'] + 1) . '"' . $selected . '>' . sprintf($user->lang['AFTER_' . $lang], htmlspecialchars($after_txt)) . '</option>' . $order_list;
+ }
+ }
+ while ($row = $db->sql_fetchrow($result));
+ }
+ $db->sql_freeresult($result);
+
+ $order_list = '<option value="1"' . ((!isset($after)) ? ' selected="selected"' : '') . '>' . $user->lang['FIRST'] . '</option>' . $order_list;
+
+ $filename_list = '';
+ foreach ($_images as $img)
+ {
+ if ((isset($data) && $img == $data[$fields . '_url']) ||
+ (!isset($data) && !isset($edit_img)))
+ {
+ $selected = ' selected="selected"';
+ $edit_img = $img;
+ }
+ else
+ {
+ $selected = '';
+ }
+
+ $filename_list .= '<option value="' . $img . '"' . htmlspecialchars($img) . $selected . '>' . $img . '</option>';
+ }
+
+ page_header($user->lang[$lang]);
+
+?>
+
+<h1><?php echo $user->lang[$lang]; ?></h1>
+
+<p><?php echo $user->lang[$lang .'_EXPLAIN']; ?></p>
+
+<script language="javascript" type="text/javascript" defer="defer">
+<!--
+
+function update_image(newimage)
+{
+ document.image.src = "<?php echo $phpbb_root_path . $img_path ?>/" + newimage;
+}
+
+function update_image_dimensions()
+{
+ if (document.image.height)
+ {
+ document.forms[0].height.value = document.image.height;
+ document.forms[0].width.value = document.image.width;
+ }
+}
+
+//-->
+</script>
+
+<form method="post" action="admin_smilies.<?php echo $phpEx . $SID . "&amp;mode=$mode&amp;action=" . (($action == 'add') ? 'create' : 'modify'); ?>"><table class="bg" cellspacing="1" cellpadding="4" border="0" align="center">
+ <tr>
+ <th class="th" colspan="2"><?php echo $user->lang[$lang . '_CONFIG'] ?></th>
+ </tr>
+ <tr>
+ <td class="row1"><?php echo $user->lang[$lang . '_URL'] ?></td>
+ <td class="row1"><select name="img" onChange="update_image(this.options[selectedIndex].value);"><?php echo $filename_list ?></select> &nbsp; <img src="<?php echo $phpbb_root_path . $img_path . '/' . $edit_img ?>" name="image" border="0" alt="" title="" onload="update_image_dimensions()" /> &nbsp;</td>
+ </tr>
+<?php
+
+ if ($mode == 'emoticons')
+ {
+
+?>
+ <tr>
+ <td class="row2"><?php echo $user->lang[$lang . '_CODE'] ?></td>
+ <td class="row2"><input type="text" name="code" value="<?php echo (!empty($data['code'])) ? $data['code'] : '' ?>" /></td>
+ </tr>
+ <tr>
+ <td class="row2"><?php echo $user->lang[$lang . '_EMOTION'] ?></td>
+ <td class="row2"><input type="text" name="emotion" value="<?php echo (!empty($data['emoticon'])) ? $data['emoticon'] : '' ?>" /></td>
+ </tr>
+<?php
+
+ }
+
+?>
+ <tr>
+ <td class="row1"><?php echo $user->lang[$lang . '_WIDTH'] ?></td>
+ <td class="row1"><input type="text" size="3" name="width" value="<?php echo (!empty($data[$fields .'_width'])) ? $data[$fields .'_width'] : '' ?>" /></td>
+ </tr>
+ <tr>
+ <td class="row2"><?php echo $user->lang[$lang . '_HEIGHT'] ?></td>
+ <td class="row2"><input type="text" size="3" name="height" value="<?php echo (!empty($data[$fields .'_height'])) ? $data[$fields .'_height'] : '' ?>" /></td>
+ </tr>
+ <tr>
+ <td class="row1"><?php echo $user->lang['DISPLAY_ON_POSTING'] ?></td>
+ <td class="row1"><input type="checkbox" name="display_on_posting" <?php echo (!empty($data['display_on_posting']) || !isset($data)) ? ' checked="checked"' : '' ?>/></td>
+ </tr>
+ <tr>
+ <td class="row2"><?php echo $user->lang[$lang . '_ORDER'] ?></td>
+ <td class="row2"><select name="order"><?php echo $order_list ?></select></td>
+ </tr>
+ <tr>
+ <td class="cat" colspan="2" align="center"><?php
+
+ if (!empty($data))
+ {
+
+?><input type="hidden" name="id" value="<?php echo $data[$fields . '_id'] ?>" /><?php
+
+ }
+
+?><input class="mainoption" type="submit" value="<?php echo $user->lang['SUBMIT'] ?>" /></td>
+ </tr>
+</table></form>
+<?php
+
+ page_footer();
+ break;
+
+ case 'create':
+ case 'modify':
+
+ $image_id = intval($_POST['id']);
+ $img = stripslashes($_POST['img']);
+ $image_order = intval($_POST['order']);
+ $image_width = intval($_POST['width']);
+ $image_height = intval($_POST['height']);
+
+ if ($image_width == 0 || $image_height == 0)
+ {
+ $img_size = @getimagesize($phpbb_root_path . $img_path . '/' . $img);
+ $smile_width = $img_size[0];
+ $smile_height = $img_size[1];
+ }
+
+ $img_sql = array(
+ $fields . '_url' => $img,
+ $fields . '_width' => $image_width,
+ $fields . '_height' => $image_height,
+ $fields . '_order' => $image_order,
+ 'display_on_posting'=> (!empty($_POST['display_on_posting'])) ? 1 : 0
+ );
+ if ($mode == 'emoticons')
+ {
+ $img_sql = array_merge($sql, array(
+ 'emoticon' => stripslashes($_POST['emotion']),
+ 'code' => htmlspecialchars(stripslashes($_POST['code']))
+ ));
+ }
+
+ if ($action == 'modify')
+ {
+ $result = $db->sql_query('SELECT ' . $fields . '_order
+ FROM ' . $table . '
+ WHERE ' . $fields . "_id = $image_id");
+ $order_old = $db->sql_fetchfield($fields . '_order', 0, $result);
+
+ if ($order_old == $smile_order)
+ {
+ $no_update = TRUE;
+ }
+
+ if ($order_old > $smile_order)
+ {
+ $sign = '+';
+ $where = $fields . "_order >= $image_order AND " . $fields . "_order < $order_old";
+ }
+ else
+ {
+ $sign = '-';
+ $where = $fields . "_order > $order_old AND " . $fields . "_order < $image_order";
+ $sql[$fields . '_order'] = $smile_order - 1;
+ }
+ }
+ else
+ {
+ $sign = '+';
+ $where = $fields . "_order > $image_order";
+ }
+
+ if (empty($no_update))
+ {
+ $sql = 'UPDATE ' . $table . '
+ SET ' . $fields . '_order = ' . $fields . "_order $sign 1
+ WHERE $where";
+ $db->sql_query($sql);
+ }
+
+ if ($action == 'modify')
+ {
+ $db->sql_query('UPDATE ' . $table . '
+ SET ' . $db->sql_build_array('UPDATE', $img_sql) . "
+ WHERE " . $fields . "_id = $image_id");
+ $cache->destroy('icons');
+ $cache->put('icons');
+
+ trigger_error($user->lang[$lang . '_EDITED']);
+ }
+ else
+ {
+ $db->sql_query('INSERT INTO ' . $table . ' ' . $db->sql_build_array('INSERT', $img_sql));
+ $cache->destroy('icons');
+ $cache->put('icons');
+
+ trigger_error($user->lang[$lang . '_ADDED']);
+ }
+ break;
+
+ case 'import':
+
+ if (!empty($_POST['pak']))
+ {
+ $order = 0;
+
+ // The user has already selected a smilies_pak file
+ if ($_POST['current'] == 'delete')
+ {
+ $db->sql_query('TRUNCATE ' . $table);
+ }
+ else
+ {
+ $cur_img = array();
+
+ $field_sql = ($mode == 'emoticons') ? 'code' : 'icons_url';
+ $result = $db->sql_query('SELECT ' . $field_sql . '
+ FROM ' . $table);
+ if ($row = $db->sql_fetchrow($result))
+ {
+ do
+ {
+ ++$order;
+ $cur_img[$row[$field_sql]] = 1;
+ }
+ while ($row = $db->sql_fetchrow($result));
+ }
+ $db->sql_freeresult($result);
+ }
+
+ if (!($pak_ary = @file($phpbb_root_path . $img_path . '/'. stripslashes($_POST['pak']))))
+ {
+ trigger_error('Could not read smiley pak file', E_USER_ERROR);
+ }
+
+ foreach ($pak_ary as $pak_entry)
+ {
+ $data = array();
+ if (preg_match_all("#'(.*?)', #", $pak_entry, $data))
+ {
+ if ((sizeof($data[1]) == 5 && $mode == 'icons') ||
+ (sizeof($data[1]) != 5 && $mode == 'emoticons'))
+ {
+ trigger_error($user->lang['WRONG_PAK_TYPE']);
+ }
+
+ $img = stripslashes($data[1][0]);
+ $width = stripslashes($data[1][1]);
+ $height = stripslashes($data[1][2]);
+ if (isset($data[1][3]) && isset($data[1][4]))
+ {
+ $emotion = stripslashes($data[1][3]);
+ $code = htmlentities(stripslashes($data[1][4]));
+ }
+
+ if ($_POST['current'] == 'replace' &&
+ (($mode == 'emoticons' && !empty($cur_img[$code])) ||
+ ($mode == 'icons' && !empty($cur_img[$img]))))
+ {
+ $replace_sql = ($mode == 'emoticons') ? $code : $img;
+ $sql = array(
+ $fields . '_url' => $img,
+ $fields . '_height' => intval($height),
+ $fields . '_width' => intval($width),
+ );
+ if ($mode == 'emoticons')
+ {
+ $sql = array_merge($sql, array(
+ 'emoticon' => $emotion
+ ));
+ }
+
+ $db->sql_query("UPDATE $table SET " . $db->sql_build_array('UPDATE', $sql) . "
+ WHERE $field_sql = '" . $db->sql_escape($replace_sql) . "'");
+ }
+ else
+ {
+ ++$order;
+
+ $sql = array(
+ $fields . '_url' => $img,
+ $fields . '_height' => intval($height),
+ $fields . '_width' => intval($width),
+ $fields . '_order' => intval($order),
+ );
+ if ($mode == 'emoticons')
+ {
+ $sql = array_merge($sql, array(
+ 'code' => $code,
+ 'emoticon' => $emotion
+ ));
+ }
+ $db->sql_query("INSERT INTO $table " . $db->sql_build_array('INSERT', $sql));
+ }
+
+ }
+ }
+ trigger_error($user->lang[$lang . '_IMPORT_SUCCESS']);
+ }
+ else
+ {
+ $pak_options = '';
+ if (count($_paks))
+ {
+ foreach ($_paks as $pak)
+ {
+ $pak_options .= '<option>' . htmlspecialchars($pak) . '</option>';
+ }
+ }
+
+ page_header($user->lang[$lang]);
+
+?>
+<h1><?php echo $user->lang[$lang] ?></h1>
+
+<p><?php echo $user->lang[$lang .'_EXPLAIN'] ?></p>
+
+<form method="post" action="admin_smilies.<?php echo $phpEx . $SID . '&amp;mode=' . $mode . '&amp;action=import'; ?>"><table class="bg" cellspacing="1" cellpadding="4" border="0" align="center">
+ <tr>
+ <th colspan="2"><?php echo $user->lang[$lang . '_IMPORT'] ?></th>
+ </tr>
+<?php
+
+ if ($pak_options == '')
+ {
+
+?>
+ <tr>
+ <td class="row1" colspan="2"><?php echo $user->lang['NO_' . $lang . '_PAK']; ?></td>
+ </tr>
+<?php
+
+ }
+ else
+ {
+
+?>
+ <tr>
+ <td class="row2"><?php echo $user->lang['SELECT_PACKAGE'] ?></td>
+ <td class="row1"><select name="pak"><?php echo $pak_options ?></select></td>
+ </tr>
+ <tr>
+ <td class="row2"><?php echo $user->lang['CURRENT_' . $lang] ?><br /><span class="gensmall"><?php echo $user->lang['CURRENT_' . $lang . '_EXPLAIN'] ?></span></td>
+ <td class="row1"><input type="radio" name="current" value="keep" checked="checked" /> <?php echo $user->lang['KEEP_ALL'] ?>&nbsp; &nbsp;<input type="radio" name="current" value="replace" /> <?php echo $user->lang['REPLACE_MATCHES'] ?>&nbsp; &nbsp;<input type="radio" name="current" value="delete" /> <?php echo $user->lang['DELETE_ALL'] ?>&nbsp;</td>
+ </tr>
+ <tr>
+ <td class="cat" colspan="2" align="center"><input class="mainoption" name="import" type="submit" value="<?php echo $user->lang['IMPORT_' . $lang] ?>" /></td>
+ </tr>
+<?php
+
+ }
+
+?>
+</table></form>
+<?php
+ page_footer();
+
+ }
+ break;
+
+ case 'export':
+
+ page_header($user->lang['EXPORT_' . $lang]);
+ trigger_error(sprintf($user->lang['EXPORT_' . $lang . '_EXPLAIN'], '<a href="admin_smilies.' . $phpEx . $SID . '&amp;mode=' . $mode . '&amp;action=send">', '</a>'));
+ break;
+
+ case 'send':
+
+ $result = $db->sql_query('SELECT *
+ FROM ' . $table);
+ if ($row = $db->sql_fetchrow($result))
+ {
+ do
+ {
+ $pak .= "'" . addslashes($row[$fields . '_url']) . "', ";
+ $pak .= "'" . addslashes($row[$fields . '_height']) . "', ";
+ $pak .= "'" . addslashes($row[$fields . '_width']) . "', ";
+ if ($mode == 'emoticons')
+ {
+ $pak .= "'" . addslashes($row['emoticon']) . "', ";
+ $pak .= "'" . addslashes($row['code']) . "', ";
+ }
+ $pak .= "\n";
+ }
+ while ($row = $db->sql_fetchrow($result));
+ }
+ $db->sql_freeresult($result);
+
+ if ($pak != '')
+ {
+ $db->sql_close();
+
+ header('Content-Type: text/x-delimtext; name="' . $fields . '.pak"');
+ header('Content-disposition: attachment; filename=' . $fields . '.pak"');
+ echo $pak;
+ exit;
+ }
+ else
+ {
+ trigger_error($user->lang['NO_' . $fields . '_EXPORT']);
+ }
+ break;
+
+ case 'move_up':
+ case 'move_down':
+ $image_order = intval($_GET['order']);
+ $order_total = $image_order * 2 + (($action == 'move_up') ? -1 : 1);
+
+ $sql = 'UPDATE ' . $table . '
+ SET ' . $fields . "_order = $order_total - " . $fields . '_order
+ WHERE ' . $fields . "_order IN ($image_order, " . (($action == 'move_up') ? $image_order - 1 : $image_order + 1) . ')';
+ $db->sql_query($sql);
+
+ $cache->destroy('icons');
+
+ // No break; here, display the smilies admin back
+
+ default:
+
+ // By default, check that smile_order is valid and fix it if necessary
+ $result = $db->sql_query('SELECT * FROM ' . $table . ' ORDER BY ' . $fields . '_order');
+ if ($row = $db->sql_fetchrow($result))
+ {
+ $order = 0;
+ do
+ {
+ ++$order;
+ if ($row[$fields . '_order'] != $order)
+ {
+ $db->sql_query('UPDATE ' . $table . '
+ SET ' . $fields . '_order = ' . $order . '
+ WHERE ' . $fields . '_id = ' . $row[$fields . '_id']);
+ }
+ }
+ while ($row = $db->sql_fetchrow($result));
+ }
+ $db->sql_freeresult($result);
+
+ // Output the page
+ page_header($user->lang[$lang]);
+
+?>
+
+<h1><?php echo $user->lang[$lang]; ?></h1>
+
+<p><?php echo $user->lang[$lang .'_EXPLAIN']; ?></p>
+
+<form method="post" action="admin_smilies.<?php echo $phpEx . $SID . '&amp;mode=' . $mode ?>"><table cellspacing="1" cellpadding="0" border="0" align="center">
+ <tr>
+ <td align="right"> &nbsp;&nbsp; <a href="admin_smilies.<?php echo $phpEx . $SID . '&amp;mode=' . $mode . '&amp;action=import'; ?>"><?php echo $user->lang['IMPORT_' . $lang]; ?></a> | <a href="admin_smilies.<?php echo $phpEx . $SID . '&amp;mode=' . $mode . '&amp;action=export'; ?>"><?php echo $user->lang['EXPORT_' . $lang]; ?></a></td>
+ </tr>
+ <tr>
+ <td><table class="bg" width="100%" cellspacing="1" cellpadding="4" border="0" align="center">
+ <tr>
+ <th><?php echo $user->lang[$lang]; ?></th>
+<?php
+
+ if ($mode == 'emoticons')
+ {
+
+?>
+ <th><?php echo $user->lang['CODE']; ?></th>
+ <th><?php echo $user->lang['EMOTION']; ?></th>
+<?php
+
+ }
+
+?>
+ <th><?php echo $user->lang['ACTION']; ?></th>
+ <th><?php echo $user->lang['REORDER']; ?></th>
+ </tr>
+<?php
+
+ $spacer = FALSE;
+
+ $sql = 'SELECT *
+ FROM ' . $table . '
+ ORDER BY display_on_posting DESC, ' . $fields . '_order ASC';
+ $result = $db->sql_query($sql);
+
+ while ($row = $db->sql_fetchrow($result))
+ {
+ if (!$spacer && !$row['display_on_posting'])
+ {
+ $spacer = TRUE;
+?>
+ <tr>
+ <td class="row3" colspan="<?php echo ($mode == 'emoticons') ? 5 : 3; ?>" align="center"><?php echo $user->lang[$lang . '_not_displayed'] ?></td>
+ </tr>
+<?php
+ }
+
+ $row_class = ($row_class != 'row1') ? 'row1' : 'row2';
+
+ $alt_text = ($mode == 'emoticon') ? htmlspecialchars($row['code']) : '';
+
+?>
+ <tr>
+ <td class="<?php echo $row_class; ?>" align="center"><img src="<?php echo './../' . $img_path . '/' . $row[$fields . '_url']; ?>" width="<?php echo $row[$fields . '_width']; ?>" height="<?php echo $row[$fields . '_height']; ?>" alt="<?php echo $alt_text; ?>" title="<?php echo $alt_text; ?>" /></td>
+<?php
+
+ if ($mode == 'emoticons')
+ {
+
+?>
+ <td class="<?php echo $row_class; ?>" align="center"><?php echo htmlspecialchars($row['code']); ?></td>
+ <td class="<?php echo $row_class; ?>" align="center"><?php echo $row['emoticon']; ?></td>
+<?php
+
+ }
+
+?>
+ <td class="<?php echo $row_class; ?>" align="center"><a href="<?php echo "admin_smilies.$phpEx$SID&amp;mode=$mode&amp;action=edit&amp;id=" . $row[$fields . '_id']; ?>"><?php echo $user->lang['EDIT']; ?></a> | <a href="<?php echo "admin_smilies.$phpEx$SID&amp;mode=$mode&amp;action=delete&amp;id=" . $row[$fields . '_id']; ?>"><?php echo $user->lang['DELETE']; ?></a></td>
+ <td class="<?php echo $row_class; ?>" align="center"><a href="<?php echo "admin_smilies.$phpEx$SID&amp;mode=$mode&amp;action=move_up&amp;order=" . $row[$fields . '_order']; ?>"><?php echo $user->lang['MOVE_UP']; ?></a> <br /> <a href="<?php echo "admin_smilies.$phpEx$SID&amp;mode=$mode&amp;action=move_down&amp;order=" . $row[$fields . '_order']; ?>"><?php echo $user->lang['MOVE_DOWN']; ?></a></td>
+ </tr>
+<?php
+
+ }
+ $db->sql_freeresult($result);
+
+?>
+ <tr>
+ <td class="cat" colspan="<?php echo ($mode == 'emoticons') ? 5 : 3; ?>" align="center"><input type="submit" name="add" value="<?php echo $user->lang['ADD_' . $lang]; ?>" class="mainoption" /></td>
+ </tr>
+ </table></td>
+ </tr>
+</table></form>
+
+<?php
+
+ page_footer();
+
+ break;
+}
+?> \ No newline at end of file