function mobi_unescape_body_html($str) { $str = strip_tags($str); // add for bbcode $search = array('#\\[(tpt-b)\\](.*?)\\[/tpt-b\\]#si', '#\\[(tpt-u)\\](.*?)\\[/tpt-u\\]#si', '#\\[(tpt-i)\\](.*?)\\[/tpt-i\\]#si', '#\\[tpt-color=(.*?)\\](.*?)\\[/tpt-color\\]#si'); if (!empty($GLOBALS['return_html'])) { $replace = array('<b>$2</b>', '<u>$2</u>', '<i>$2</i>', '<font color="$1">$2</font>'); $str = str_replace(array('[tpt-quote]', '[/tpt-quote]'), array('[quote]', '[/quote]'), $str); $str = mobiquo_encode($str); $str = str_replace(array('&', '<', '>'), array('&', '<', '>'), $str); $str = str_replace("\n", '<br />', $str); $str = str_replace(" ", ' ', $str); } else { $str = preg_replace('#\\[tpt-quote\\].*?\\[/tpt-quote\\]#si', '', $str); $str = mobi_unescape_html($str); $replace = '$2'; } $str = preg_replace($search, $replace, $str); return $str; }
function outputRPCSubscribedBoards($boards) { $response = ' <params> <param> <value> <struct> <member> <name>total_forums_num</name> <value><int>' . count($boards) . '</int></value> </member> <member> <name>forums</name> <value> <array><data>'; foreach ($boards as $board) { $response .= ' <value><struct> <member> <name>forum_id</name> <value><string>' . $board['id'] . '</string></value> </member> <member> <name>forum_name</name> <value><base64>' . base64_encode(mobi_unescape_html($board['name'])) . '</base64></value> </member> <member> <name>icon_url</name> <value><string>' . process_url($board['icon']) . '</string></value> </member> <member> <name>is_protected</name> <value><boolean>0</boolean></value> </member> <member> <name>sub_only</name> <value><boolean>0</boolean></value> </member> <member> <name>new_post</name> <value><boolean>' . (empty($board['new']) ? '0' : '1') . '</boolean></value> </member> </struct></value>'; } $response .= ' </data></array> </value> </member> </struct> </value> </param> </params>'; outputRPCResponse($response); }
function method_get_quote_pm() { global $context, $mobdb, $user_info, $sourcedir, $txt, $modSettings, $func, $language; if ($user_info['is_guest']) { outputRPCResult(false, $txt[1]); } if (!allowedTo('pm_read')) { outputRPCResult(false, $txt['cannot_pm_read']); } if (!allowedTo('pm_send')) { outputRPCResult(false, $txt['cannot_pm_send']); } require_once $sourcedir . '/PersonalMessage.php'; // Get the message ID if (!isset($context['mob_request']['params'][0])) { outputRPCResult(false, $txt['smf272']); } $id_pm = $context['mob_request']['params'][0][0]; // Load this message... $mobdb->query(' SELECT pm.ID_PM AS id_pm, pm.subject, pm.body, pm.msgtime, pm.ID_MEMBER_FROM AS id_member_from, mem_from.realName FROM {db_prefix}personal_messages AS pm LEFT JOIN {db_prefix}pm_recipients AS pr ON (pm.ID_PM = pr.ID_PM) LEFT JOIN {db_prefix}members AS mem_from ON (mem_from.ID_MEMBER = pm.ID_MEMBER_FROM) WHERE pm.ID_PM = {int:pm} AND (pm.ID_MEMBER_FROM = {int:member} OR pr.ID_MEMBER = {int:member})', array('pm' => $id_pm, 'member' => $user_info['id'])); if ($mobdb->num_rows() == 0) { outputRPCResult(false, $txt['pm_not_yours']); } $pm = $mobdb->fetch_assoc(); $mobdb->free_result(); censorText($pm['subject']); censorText($pm['body']); // Add 'Re: ' to it.... if (!isset($context['response_prefix']) && !($context['response_prefix'] = cache_get_data('response_prefix'))) { if ($language === $user_info['language']) { $context['response_prefix'] = $txt['response_prefix']; } else { loadLanguage('index', $language, false); $context['response_prefix'] = $txt['response_prefix']; loadLanguage('index'); } cache_put_data('response_prefix', $context['response_prefix'], 600); } $form_subject = $pm['subject']; if (trim($context['response_prefix']) != '' && $func['strpos']($form_subject, trim($context['response_prefix'])) !== 0) { $form_subject = $context['response_prefix'] . $form_subject; } // Remove any nested quotes and <br />... $form_message = preg_replace('~<br( /)?' . '>~i', "\n", $pm['body']); if (!empty($modSettings['removeNestedQuotes'])) { $form_message = preg_replace(array('~\\n?\\[quote.*?\\].+?\\[/quote\\]\\n?~is', '~^\\n~', '~\\[/quote\\]~'), '', $form_message); } $form_message = processBody($form_message); if (empty($pm['id_member_from'])) { $form_message = '[quote author="' . $pm['realName'] . ""]\n" . $form_message . "\n[/quote]"; } else { $form_message = '[quote author=' . $pm['realName'] . ' link=action=profile;u=' . $pm['id_member_from'] . ' date=' . $pm['msgtime'] . "]\n" . $form_message . "\n[/quote]"; } outputRPCResponse(' <params> <param> <value> <struct> <member> <name>msg_id</name> <value><string>' . $id_pm . '</string></value> </member> <member> <name>msg_subject</name> <value><base64>' . base64_encode(mobi_unescape_html(processSubject($form_subject))) . '</base64></value> </member> <member> <name>text_body</name> <value><base64>' . base64_encode(mobi_unescape_html($form_message)) . '</base64></value> </member> </struct> </value> </param> </params>'); }