|
From: FlorinCB <ory...@us...> - 2008-06-15 21:08:21
|
Update of /cvsroot/mxbb/core/includes In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv29426 Modified Files: mx_functions_bbcode.php Log Message: function mx_generate_smilies() upgraded for MXP3 Index: mx_functions_bbcode.php =================================================================== RCS file: /cvsroot/mxbb/core/includes/mx_functions_bbcode.php,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** mx_functions_bbcode.php 15 Jun 2008 21:00:01 -0000 1.3 --- mx_functions_bbcode.php 15 Jun 2008 21:08:18 -0000 1.4 *************** *** 117,141 **** * Generate phpBB smilies. * ! * Hacking generate_smilies from phpbb/includes/functions_post.php * * @param string $mode * @param integer $page_id ! */ ! function mx_generate_smilies($mode, $page_id) { global $mx_page, $board_config, $template, $mx_root_path, $phpbb_root_path, $phpEx; ! if( !function_exists('generate_smilies') ) { ! mx_page::load_file('functions_post', 'phpbb2'); } ! $smilies_path = $board_config['smilies_path']; ! $board_config['smilies_path'] = PHPBB_URL . $board_config['smilies_path']; ! generate_smilies($mode, $page_id); ! $board_config['smilies_path'] = $smilies_path; ! $template->assign_vars(array( ! 'U_MORE_SMILIES' => mx3_append_sid(PHPBB_URL . "posting.$phpEx", "mode=smilies")) ! ); } --- 117,423 ---- * Generate phpBB smilies. * ! * Hacking generate_smilies from phpbb/includes/functions_post(ing).php * * @param string $mode * @param integer $page_id ! * ! * Fill smiley templates (or just the variables) with smilies, either in a window or inline ! */ ! function mx_generate_smilies($mode, $forum_id) { + global $mx_page, $board_config, $template, $mx_root_path, $phpbb_root_path, $phpEx; + global $db, $lang, $images, $theme; + global $user_ip, $session_length, $starttime; + global $userdata, $phpbb_auth, $mx_user; ! $inline_columns = 4; ! $inline_rows = 5; ! $window_columns = 8; ! ! switch (PORTAL_BACKEND) { ! case 'internal': ! $smiley_path_url = PHPBB_URL; //change this to PORTAL_URL when shared folder will be removed ! $smiley_root_path = $phpbb_root_path; //same here ! $smiley_url = 'smile_url'; ! break; ! case 'phpbb2': ! $smiley_path_url = PHPBB_URL; ! $smiley_root_path = $phpbb_root_path; ! $smiley_url = 'smile_url'; ! break; ! case 'phpbb3': ! $smiley_path_url = PHPBB_URL; ! $smiley_root_path = $phpbb_root_path; ! $smiley_url = 'smiley_url'; ! $board_config['smilies_path'] = str_replace("smiles", "smilies", $board_config['smilies_path']); ! break; ! } ! ! if ($mode == 'window') ! { ! $mx_user->init($user_ip, PAGE_INDEX); ! ! $gen_simple_header = TRUE; ! $page_title = $lang['Emoticons']; ! ! switch (PORTAL_BACKEND) ! { ! case 'internal': ! case 'phpbb2': ! include($mx_root_path . 'includes/page_header.'.$phpEx); ! ! $template->set_filenames(array( ! 'smiliesbody' => 'posting_smilies.tpl') ! ); ! break; ! ! case 'phpbb3': ! if ($forum_id) ! { ! $sql = 'SELECT forum_style ! FROM ' . FORUMS_TABLE . " ! WHERE forum_id = $forum_id"; ! $result = $db->sql_query_limit($sql, 1); ! $row = $db->sql_fetchrow($result); ! $db->sql_freeresult($result); ! ! $mx_user->setup('posting', (int) $row['forum_style']); ! } ! else ! { ! $mx_user->setup('posting'); ! } ! ! include($mx_root_path . 'includes/page_header.'.$phpEx); ! ! $template->set_filenames(array( ! 'smiliesbody' => 'posting_smilies.html') ! ); ! break; ! } } + + switch (PORTAL_BACKEND) + { + case 'internal': + case 'phpbb2': + $sql = "SELECT emoticon, code, smile_url + FROM " . SMILIES_TABLE . " + ORDER BY smilies_id"; + if ($result = $db->sql_query($sql)) + { + $num_smilies = 0; + $rowset = array(); + while ($row = $db->sql_fetchrow($result)) + { + if (empty($rowset[$row['smile_url']])) + { + $rowset[$row['smile_url']]['code'] = str_replace("'", "\\'", str_replace('\\', '\\\\', $row['code'])); + $rowset[$row['smile_url']]['emoticon'] = $row['emoticon']; + $num_smilies++; + } + } ! if ($num_smilies) ! { ! $smilies_count = ($mode == 'inline') ? min(19, $num_smilies) : $num_smilies; ! $smilies_split_row = ($mode == 'inline') ? $inline_columns - 1 : $window_columns - 1; ! ! $s_colspan = 0; ! $row = 0; ! $col = 0; ! ! while (list($smile_url, $data) = @each($rowset)) ! { ! if (!$col) ! { ! $template->assign_block_vars('smilies_row', array()); ! } ! ! $template->assign_block_vars('smilies_row.smilies_col', array( ! 'SMILEY_CODE' => $data['code'], ! 'SMILEY_IMG' => $smiley_path_url . $board_config['smilies_path'] . '/' . $smile_url, ! 'SMILEY_DESC' => $data['emoticon']) ! ); ! ! $s_colspan = max($s_colspan, $col + 1); ! ! if ($col == $smilies_split_row) ! { ! if ($mode == 'inline' && $row == $inline_rows - 1) ! { ! break; ! } ! $col = 0; ! $row++; ! } ! else ! { ! $col++; ! } ! } ! ! if ($mode == 'inline' && $num_smilies > $inline_rows * $inline_columns) ! { ! $template->assign_block_vars('switch_smilies_extra', array()); ! ! $template->assign_vars(array( ! 'L_MORE_SMILIES' => $lang['More_emoticons'], ! 'U_MORE_SMILIES' => mx3_append_sid(PHPBB_URL . "posting.$phpEx", "mode=smilies")) ! ); ! } ! ! $template->assign_vars(array( ! 'L_EMOTICONS' => $lang['Emoticons'], ! 'L_CLOSE_WINDOW' => $lang['Close_window'], ! 'S_SMILIES_COLSPAN' => $s_colspan) ! ); ! } ! } ! break; ! ! case 'phpbb3': ! $display_link = false; ! if ($mode == 'inline') ! { ! $sql = 'SELECT smiley_id ! FROM ' . SMILIES_TABLE . ' ! WHERE display_on_posting = 0'; ! $result = $db->sql_query_limit($sql, 1, 0, 3600); ! ! if ($row = $db->sql_fetchrow($result)) ! { ! $display_link = true; ! } ! $db->sql_freeresult($result); ! } ! ! $last_url = ''; ! ! $sql = 'SELECT * ! FROM ' . SMILIES_TABLE . ! (($mode == 'inline') ? ' WHERE display_on_posting = 1 ' : '') . ' ! ORDER BY smiley_order'; ! ! //phpBB2 code start ! if ($result = $db->sql_query($sql)) ! { ! $num_smilies = 0; ! $rowset = array(); ! while ($row = $db->sql_fetchrow($result)) ! { ! if (empty($rowset[$row['smiley_url']])) ! { ! $rowset[$row['smiley_url']]['code'] = str_replace("'", "\\'", str_replace('\\', '\\\\', $row['code'])); ! $rowset[$row['smiley_url']]['emoticon'] = $row['emoticon']; ! $num_smilies++; ! } ! } ! ! if ($num_smilies) ! { ! $smilies_count = ($mode == 'inline') ? min(19, $num_smilies) : $num_smilies; ! $smilies_split_row = ($mode == 'inline') ? $inline_columns - 1 : $window_columns - 1; ! ! $s_colspan = 0; ! $row = 0; ! $col = 0; ! ! while (list($smile_url, $data) = @each($rowset)) ! { ! if (!$col) ! { ! $template->assign_block_vars('smilies_row', array()); ! } ! ! $template->assign_block_vars('smilies_row.smilies_col', array( ! 'SMILEY_CODE' => $data['code'], ! 'SMILEY_IMG' => $smiley_path_url . $board_config['smilies_path'] . '/' . $smile_url, ! 'SMILEY_DESC' => $data['emoticon']) ! ); ! ! $s_colspan = max($s_colspan, $col + 1); ! ! if ($col == $smilies_split_row) ! { ! if ($mode == 'inline' && $row == $inline_rows - 1) ! { ! break; ! } ! $col = 0; ! $row++; ! } ! else ! { ! $col++; ! } ! } ! ! if ($mode == 'inline' && $num_smilies > $inline_rows * $inline_columns) ! { ! $template->assign_block_vars('switch_smilies_extra', array()); ! ! $template->assign_vars(array( ! 'L_MORE_SMILIES' => $lang['More_emoticons'], ! 'U_MORE_SMILIES' => mx3_append_sid(PHPBB_URL . "posting.$phpEx", "mode=smilies")) ! ); ! } ! ! $template->assign_vars(array( ! 'L_EMOTICONS' => $lang['Emoticons'], ! 'L_CLOSE_WINDOW' => $lang['Close_window'], ! 'S_SMILIES_COLSPAN' => $s_colspan) ! ); ! } ! } ! //phpBB2 code end ! ! /* ! $result = $db->sql_query($sql, 3600); ! ! $smilies = array(); ! while ($row = $db->sql_fetchrow($result)) ! { ! if (empty($smilies[$row['smiley_url']])) ! { ! $smilies[$row['smiley_url']] = $row; ! } ! } ! $db->sql_freeresult($result); ! ! if (sizeof($smilies)) ! { ! foreach ($smilies as $row) ! { ! $template->assign_block_vars('smiley', array( ! 'SMILEY_CODE' => $row['code'], ! 'A_SMILEY_CODE' => addslashes($row['code']), ! 'SMILEY_IMG' => $smiley_root_path . $board_config['smilies_path'] . '/' . $row['smiley_url'], ! 'SMILEY_WIDTH' => $row['smiley_width'], ! 'SMILEY_HEIGHT' => $row['smiley_height'], ! 'SMILEY_DESC' => $row['emotion']) ! ); ! } ! } ! ! //What we do here with forum_id versus page_id ? ! if ($mode == 'inline' && $display_link) ! { ! $template->assign_vars(array( ! 'S_SHOW_SMILEY_LINK' => true, ! 'U_MORE_SMILIES' => mx3_append_sid(PHPBB_URL . "posting.$phpEx", 'mode=smilies&f=' . $forum_id)) ! ); ! } ! */ ! break; ! } ! ! if ($mode == 'window') ! { ! $template->pparse('smiliesbody'); ! include($mx_root_path . 'includes/page_tail.'.$phpEx); ! } } |