acl_get('a_icons')) { return; } $filename = basename(__FILE__); $module['Posts']['Emoticons'] = $filename . $SID . '&type=emoticons'; $module['Posts']['Topic_icons'] = $filename . $SID . '&type=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']); } // Check to see what mode we should operate in. $type = (!empty($_REQUEST['type'])) ? $_REQUEST['type'] : ''; $mode = (!empty($_REQUEST['mode'])) ? $_REQUEST['mode'] : ''; // What are we doing? switch ($type) { case 'emoticons': $table = SMILIES_TABLE; $lang = 'smilies'; $path = $config['smilies_path']; break; case 'icons': $table = ICONS_TABLE; $lang = 'icons'; $path = $config['icons_path']; break; } $delimiter = '=+:'; $_images = $_paks = array(); if ($mode == 'edit' || !empty($_POST['add']) || !empty($_POST['import_pak'])) { $dir = @opendir($phpbb_root_path . $path); while ($file = @readdir($dir)) { if (is_file($phpbb_root_path . $path . '/' . $file)) { $img_size = @getimagesize($phpbb_root_path . $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); } // // Select main mode // if (isset($_POST['import_pak'])) { if (!empty($_POST['_pak'])) { $smile_order = 0; // // The user has already selected a smilies_pak file.. Import it. // if (!empty($_POST['clear_current'])) { $db->sql_query('DELETE FROM ' . $table); } else { $result = $db->sql_query('SELECT code FROM ' . $table); $smilies = array(); while ($row = $db->sql_fetchrow($result)) { ++$smile_order; $smilies[$row['code']] = 1; } } $fcontents = @file($phpbb_root_path . $path . '/'. $_pak); if (empty($fcontents)) { trigger_error('Could not read smiley pak file', E_USER_ERROR); } foreach ($fcontents as $line) { $_data = explode($delimiter, trim($line)); $_url = $_data[0]; $emotion = $_data[1]; $code = htmlentities($_data[2]); if (!isset($_data[4])) { // // 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. // $size = @getimagesize($phpbb_root_path . $path . '/' . $smile_url); $_width = (!empty($size[0])) ? $size[0] : 15; $_height = (!empty($size[1])) ? $size[1] : 15; } else { $_width = $_data[3]; $_height = $_data[4]; } if (!empty($smilies[$code])) { if (!empty($_POST['replace_existing'])) { $code_sql = str_replace("'", "''", str_replace('\\', '\\\\', $code)); $sql = array( 'smile_url' => $_url, 'smile_height' => $_height, 'smile_width' => $_width, 'emoticon' => $emotion ); $db->sql_query("UPDATE $table SET " . $db->sql_build_array('UPDATE', $sql) . "WHERE code = '$code_sql'"); } } else { ++$smile_order; $sql = array( 'code' => $code, 'smile_url' => $_url, 'smile_height' => $_height, 'smile_width' => $_width, 'smile_order' => $_order, 'emoticon' => $emotion ); $db->sql_query("INSERT INTO $table " . $db->sql_build_array('INSERT', $sql)); } } message_die(MESSAGE, $user->lang[$lang . '_import_success']); } else { if (!count($_paks)) { $_paks_select = $user->lang['No_smilies_pak']; } else { $_paks_select = ''; } page_header($user->lang['Import_smilies']); ?>

lang['Import_smilies'] ?>

lang['Import_smilies_explain'] ?>

lang['Smilies_import'] ?>
lang['Select_package'] ?>
lang['Delete_existing_smilies'] ?>
lang['Smilies_conflicts'] ?>
  lang['Replace_existing_smilies'] ?> 
  lang['Keep_existing_smilies'] ?> 
sql_query('SELECT * FROM ' . $table); while ($row = $db->sql_fetchrow($result)) { $smilies_pak .= $row['smile_url'] . $delimiter; $smilies_pak .= $row['emoticon'] . $delimiter; $smilies_pak .= $row['code'] . $delimiter; $smilies_pak .= $row['smile_height'] . $delimiter; $smilies_pak .= $row['smile_width'] . "\n"; } $db->sql_close(); header('Content-Type: text/x-delimtext; name="smilies.pak"'); header('Content-disposition: attachment; filename=smilies.pak"'); echo $smilies_pak; exit; } elseif (isset($_POST['export_pak'])) { page_header($user->lang['Export_smilies']); message_die(MESSAGE, sprintf($user->lang['Export_smilies_explain'], '', '')); } elseif (isset($_POST['add'])) { $filename_list = ''; foreach ($_images as $smile_url) { if (!isset($default_image)) { $default_image = $smile_url; } $filename_list .= ''; } page_header($user->lang['Add_smile']); ?>

lang['Add_smile'] ?>

>
lang['smile_config'] ?>
lang['Smile_code'] ?>
lang['Smile_url'] ?>    
lang['Smile_width'] ?>
lang['Smile_height'] ?>
lang['Smile_emotion'] ?>
sql_query('DELETE FROM ' . SMILIES_TABLE . ' WHERE smilies_id = ' . intval($_GET['smile_id'])); message_die(MESSAGE, $user->lang['Smile_deleted']); break; case 'edit': $smile_id = intval($_GET['smile_id']); $order_list = ''; $result = $db->sql_query('SELECT * FROM ' . SMILIES_TABLE . ' ORDER BY smile_order DESC'); while ($row = $db->sql_fetchrow($result)) { if ($row['smilies_id'] == $smile_id) { $after = TRUE; $smile_data = $row; } else { $selected = ''; if (!empty($after)) { $selected = ' selected="selected"'; $after = FALSE; } $order_list = '' . $order_list; } } $order_list = '' . $order_list; $filename_list = ''; foreach ($_images as $smile_url) { if ($smile_url == $smile_data['smile_url']) { $smile_selected = ' selected="selected"'; $smile_edit_img = $smile_url; } else { $smile_selected = ''; } $filename_list .= ''; } page_header($user->lang['Edit_smile']); ?>

lang['Edit_smile'] ?>

lang['Smile_config'] ?>
lang['Smile_code'] ?>
lang['Smile_url'] ?>    
lang['Smile_emotion'] ?>
lang['Smile_width'] ?>
lang['Smile_height'] ?>
lang['Display_on_posting'] ?> />
lang['Smile_order'] ?>
htmlspecialchars(stripslashes($_POST['smile_code'])), 'smile_url' => stripslashes($_POST['smile_url']), 'smile_width' => $smile_width, 'smile_height' => $smile_height, 'smile_order' => $smile_order, 'emoticon' => stripslashes($_POST['smile_emotion']), 'display_on_posting' => (!empty($_POST['display_on_posting'])) ? 1 : 0 ); $smile_id = $_POST['smile_id']; $smile_order = $_POST['smile_order']; if ($mode == 'modify') { $result = $db->sql_query('SELECT smile_order FROM ' . SMILIES_TABLE . " WHERE smilies_id = $smile_id"); $order_old = $db->sql_fetchfield('smile_order', 0, $result); if ($order_old == $smile_order) { $no_update = TRUE; } if ($order_old > $smile_order) { $sign = '+'; $where = "smile_order >= $smile_order AND smile_order < $order_old"; } else { $sign = '-'; $where = "smile_order > $order_old AND smile_order < $smile_order"; $sql['smile_order'] = $smile_order - 1; } } else { $sign = '+'; $where = "smile_order > $smile_order"; } if (empty($no_update)) { $qry = 'UPDATE ' . SMILIES_TABLE . " SET smile_order = smile_order $sign 1 WHERE $where"; $db->sql_query($qry); } if ($mode == 'modify') { $db->sql_query('UPDATE ' . SMILIES_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql) . "WHERE smilies_id = $smile_id"); message_die(MESSAGE, $user->lang['Smile_edited']); } else { $db->sql_query('INSERT INTO ' . SMILIES_TABLE . ' ' . $db->sql_build_array('INSERT', $sql)); message_die(MESSAGE, $user->lang['Smile_added']); } break; case 'move_up': case 'move_down': $smile_order = intval($_GET['smile_order']); $order_total = $smile_order * 2 + (($mode == 'move_up') ? -1 : 1); $sql = 'UPDATE ' . SMILIES_TABLE . " SET smile_order = $order_total - smile_order WHERE smile_order IN ($smile_order, " . (($mode == 'move_up') ? $smile_order - 1 : $smile_order + 1) . ')'; $db->sql_query($sql); // // No break; here, display the smilies admin back // default: // // By default, check that smile_order is valid and fix it if necessary // $order = 0; $result = $db->sql_query('SELECT * FROM ' . SMILIES_TABLE . ' ORDER BY smile_order'); while ($row = $db->sql_fetchrow($result)) { ++$order; if ($row['smile_order'] != $order) { $db->sql_query('UPDATE ' . SMILIES_TABLE . " SET smile_order = $order WHERE smilies_id = " . $row['smilies_id']); } } $sql = 'SELECT * FROM ' . SMILIES_TABLE . ' ORDER BY display_on_posting DESC, smile_order ASC'; $result = $db->sql_query($sql); page_header($user->lang['Emoticons']); ?>

lang['Emoticons']; ?>

lang['Emoticons_explain']; ?>

lang['Add_smile']; ?> | lang['Import_smilies']; ?> | lang['Export_smilies']; ?>
sql_fetchrow($result)) { if (!$spacer && !$row['display_on_posting']) { $spacer = TRUE; ?>
lang['Code']; ?> lang['Emotion']; ?> lang['Smile']; ?> lang['Action']; ?> lang['Reorder']; ?>
lang['Smilies_not_displayed'] ?>
<?php echo htmlspecialchars($row['code']); ?> ">lang['Edit']; ?> ">lang['Delete']; ?> ">lang['Up']; ?> ">lang['Down']; ?>