コード例 #1
0
ファイル: Subs-Mobiquo.php プロジェクト: keweiliu6/test_smf1
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('&amp;', '&lt;', '&gt;'), $str);
        $str = str_replace("\n", '<br />', $str);
        $str = str_replace("&nbsp;", ' ', $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;
}
コード例 #2
0
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);
}
コード例 #3
0
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=&quot;' . $pm['realName'] . "&quot;]\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>');
}