Esempio n. 1
0
 public function after_newthread()
 {
     $tid = $this->tid;
     $pid = $this->pid;
     $uid = $this->member['uid'];
     if ($this->param['displayorder'] >= 0 && helper_access::check_module('follow') && !$this->param['isanonymous']) {
         $values = array();
         require_once libfile('function/discuzcode');
         require_once libfile('function/followcode');
         $feedcontent = array('tid' => $tid, 'content' => followcode(messagesafeclear($this->param['message']), $tid, $pid, 1000));
         C::t('forum_threadpreview')->insert($feedcontent);
         C::t('forum_thread')->update_status_by_tid($tid, '512');
         $followfeed = array('uid' => $uid, 'username' => $this->member['username'], 'tid' => $tid, 'note' => '', 'dateline' => TIMESTAMP);
         $values['feedid'] = C::t('home_follow_feed')->insert($followfeed, true);
         C::t('common_member_count')->increase($uid, array('feeds' => 1));
         $this->param['values'] = array_merge((array) $this->param['values'], $values);
     }
 }
 public function feed()
 {
     if ($this->forum('allowfeed') && !$this->param['isanonymous']) {
         if (empty($this->feed)) {
             $this->feed = array('icon' => '', 'title_template' => '', 'title_data' => array(), 'body_template' => '', 'body_data' => array(), 'title_data' => array(), 'images' => array());
             $message = !$this->param['price'] && !$this->param['readperm'] ? $this->param['message'] : '';
             $message = messagesafeclear($message);
             $this->feed['icon'] = 'thread';
             $this->feed['title_template'] = 'feed_thread_title';
             $this->feed['body_template'] = 'feed_thread_message';
             $this->feed['body_data'] = array('subject' => "<a href=\"forum.php?mod=viewthread&tid={$this->tid}\">{$this->param['subject']}</a>", 'message' => messagecutstr($message, 150));
             if (getglobal('forum_attachexist')) {
                 //					$firstaid = DB::result_first("SELECT aid FROM ".DB::table(getattachtablebytid($tid))." WHERE pid='$pid' AND dateline>'0' AND isimage='1' ORDER BY dateline LIMIT 1");
                 $imgattach = C::t('forum_attachment_n')->fetch_max_image('tid:' . $this->tid, 'pid', $this->pid);
                 $firstaid = $imgattach['aid'];
                 unset($imgattach);
                 if ($firstaid) {
                     $this->feed['images'] = array(getforumimg($firstaid));
                     $this->feed['image_links'] = array("forum.php?mod=viewthread&do=tradeinfo&tid={$this->tid}&pid={$this->pid}");
                 }
             }
         }
         $this->feed['title_data']['hash_data'] = 'tid' . $this->tid;
         $this->feed['id'] = $this->tid;
         $this->feed['idtype'] = 'tid';
         if ($this->feed['icon']) {
             postfeed($this->feed);
         }
     }
 }
Esempio n. 3
0
function messagecutstr($str, $length = 0, $dot = ' ...')
{
    global $_G;
    $str = messagesafeclear($str);
    $sppos = strpos($str, chr(0) . chr(0) . chr(0));
    if ($sppos !== false) {
        $str = substr($str, 0, $sppos);
    }
    $language = lang('forum/misc');
    loadcache(array('bbcodes_display', 'bbcodes', 'smileycodes', 'smilies', 'smileytypes', 'domainwhitelist'));
    $bbcodes = 'b|i|u|p|color|size|font|align|list|indent|float';
    $bbcodesclear = 'email|code|free|table|tr|td|img|swf|flash|attach|media|audio|groupid|payto' . ($_G['cache']['bbcodes_display'][$_G['groupid']] ? '|' . implode('|', array_keys($_G['cache']['bbcodes_display'][$_G['groupid']])) : '');
    $str = strip_tags(preg_replace(array("/\\[hide=?\\d*\\](.*?)\\[\\/hide\\]/is", "/\\[quote](.*?)\\[\\/quote]/si", $language['post_edit_regexp'], "/\\[url=?.*?\\](.+?)\\[\\/url\\]/si", "/\\[({$bbcodesclear})=?.*?\\].+?\\[\\/\\1\\]/si", "/\\[({$bbcodes})=?.*?\\]/i", "/\\[\\/({$bbcodes})\\]/i", "/\\\\u/i"), array("[b]{$language['post_hidden']}[/b]", '', '', '\\1', '', '', '', '%u'), $str));
    if ($length) {
        $str = cutstr($str, $length, $dot);
    }
    $str = preg_replace($_G['cache']['smilies']['searcharray'], '', $str);
    if ($_G['setting']['plugins']['func'][HOOKTYPE]['discuzcode']) {
        $_G['discuzcodemessage'] =& $str;
        $param = func_get_args();
        hookscript('discuzcode', 'global', 'funcs', array('param' => $param, 'caller' => 'messagecutstr'), 'discuzcode');
    }
    return trim($str);
}
Esempio n. 4
0
function followcode($message, $tid = 0, $pid = 0, $length = 0, $allowimg = true)
{
    global $_G;
    include_once libfile('function/post');
    $message = strip_tags($message);
    $message = messagesafeclear($message);
    if ((strpos($message, '[/code]') || strpos($message, '[/CODE]')) !== FALSE) {
        $message = preg_replace("/\\s?\\[code\\](.+?)\\[\\/code\\]\\s?/ies", "", $message);
    }
    $msglower = strtolower($message);
    $htmlon = 0;
    $message = dhtmlspecialchars($message);
    if ($_G['setting']['plugins']['func'][HOOKTYPE]['discuzcode']) {
        $_G['discuzcodemessage'] =& $message;
        $param = func_get_args();
        hookscript('discuzcode', 'global', 'funcs', array('param' => $param, 'caller' => 'discuzcode'), 'discuzcode');
    }
    $_G['delattach'] = array();
    $message = fparsesmiles($message);
    if (strpos($msglower, 'attach://') !== FALSE) {
        $message = preg_replace("/attach:\\/\\/(\\d+)\\.?(\\w*)/ie", '', $message);
    }
    if (strpos($msglower, 'ed2k://') !== FALSE) {
        $message = preg_replace("/ed2k:\\/\\/(.+?)\\//e", '', $message);
    }
    if (strpos($msglower, '[/i]') !== FALSE) {
        $message = preg_replace("/\\s*\\[i=s\\][\n\r]*(.+?)[\n\r]*\\[\\/i\\]\\s*/is", '', $message);
    }
    $message = str_replace('[/p]', "\n", $message);
    $message = str_replace(array('[/color]', '[/backcolor]', '[/size]', '[/font]', '[/align]', '[b]', '[/b]', '[s]', '[/s]', '[hr]', '[i=s]', '[i]', '[/i]', '[u]', '[/u]', '[list]', '[list=1]', '[list=a]', '[list=A]', "\r\n[*]", '[*]', '[/list]', '[indent]', '[/indent]', '[/float]'), '', preg_replace(array("/\\[color=([#\\w]+?)\\]/i", "/\\[color=((rgb|rgba)\\([\\d\\s,]+?\\))\\]/i", "/\\[backcolor=([#\\w]+?)\\]/i", "/\\[backcolor=((rgb|rgba)\\([\\d\\s,]+?\\))\\]/i", "/\\[size=(\\d{1,2}?)\\]/i", "/\\[size=(\\d{1,2}(\\.\\d{1,2}+)?(px|pt)+?)\\]/i", "/\\[font=([^\\[\\<]+?)\\]/i", "/\\[align=(left|center|right)\\]/i", "/\\[float=left\\]/i", "/\\[float=right\\]/i"), '', $message));
    if (strpos($msglower, '[/p]') !== FALSE) {
        $message = preg_replace("/\\[p=(\\d{1,2}|null), (\\d{1,2}|null), (left|center|right)\\]/i", "<p style=\"line-height:\\1px;text-indent:\\2em;text-align:left;\">", $message);
        $message = str_replace('[/p]', '</p>', $message);
    }
    if (strpos($msglower, '[/quote]') !== FALSE) {
        $message = preg_replace("/\\s?\\[quote\\][\n\r]*(.+?)[\n\r]*\\[\\/quote\\]\\s?/is", '', $message);
    }
    if (strpos($msglower, '[/free]') !== FALSE) {
        $message = preg_replace("/\\s*\\[free\\][\n\r]*(.+?)[\n\r]*\\[\\/free\\]\\s*/is", '', $message);
    }
    if (isset($_G['cache']['bbcodes'][-$allowbbcode])) {
        $message = preg_replace($_G['cache']['bbcodes'][-$allowbbcode]['searcharray'], '', $message);
    }
    if (strpos($msglower, '[/hide]') !== FALSE) {
        preg_replace("/\\[hide.*?\\]\\s*(.*?)\\s*\\[\\/hide\\]/ies", "hideattach('\\1')", $message);
        if (strpos($msglower, '[hide]') !== FALSE) {
            $message = preg_replace("/\\[hide\\]\\s*(.*?)\\s*\\[\\/hide\\]/is", '', $message);
        }
        if (strpos($msglower, '[hide=') !== FALSE) {
            $message = preg_replace("/\\[hide=(d\\d+)?[,]?(\\d+)?\\]\\s*(.*?)\\s*\\[\\/hide\\]/ies", '', $message);
        }
    }
    if (strpos($msglower, '[/url]') !== FALSE) {
        $message = preg_replace("/\\[url(=((https?|ftp|gopher|news|telnet|rtsp|mms|callto|bctp|thunder|qqdl|synacast){1}:\\/\\/|www\\.|mailto:)?([^\r\n\\[\"']+?))?\\](.+?)\\[\\/url\\]/ies", "fparseurl('\\1', '\\5', '\\2')", $message);
    }
    if (strpos($msglower, '[/email]') !== FALSE) {
        $message = preg_replace("/\\[email(=([a-z0-9\\-_.+]+)@([a-z0-9\\-_]+[.][a-z0-9\\-_.]+))?\\](.+?)\\[\\/email\\]/ies", "fparseemail('\\1', '\\4')", $message);
    }
    $nest = 0;
    while (strpos($msglower, '[table') !== FALSE && strpos($msglower, '[/table]') !== FALSE) {
        $message = preg_replace("/\\[table(?:=(\\d{1,4}%?)(?:,([\\(\\)%,#\\w ]+))?)?\\]\\s*(.+?)\\s*\\[\\/table\\]/ies", "fparsetable('\\1', '\\2', '\\3')", $message);
        if (++$nest > 4) {
            break;
        }
    }
    if (strpos($msglower, '[/media]') !== FALSE) {
        $message = preg_replace("/\\[media=([\\w,]+)\\]\\s*([^\\[\\<\r\n]+?)\\s*\\[\\/media\\]/ies", "fparsemedia('\\1', '\\2')", $message);
    }
    if (strpos($msglower, '[/audio]') !== FALSE) {
        $message = preg_replace("/\\[audio(=1)*\\]\\s*([^\\[\\<\r\n]+?)\\s*\\[\\/audio\\]/ies", "fparseaudio('\\2')", $message);
    }
    if (strpos($msglower, '[/flash]') !== FALSE) {
        $message = preg_replace("/\\[flash(=(\\d+),(\\d+))?\\]\\s*([^\\[\\<\r\n]+?)\\s*\\[\\/flash\\]/ies", "fparseflash('\\4');", $message);
    }
    if ($parsetype != 1 && strpos($msglower, '[swf]') !== FALSE) {
        $message = preg_replace("/\\[swf\\]\\s*([^\\[\\<\r\n]+?)\\s*\\[\\/swf\\]/ies", "bbcodeurl('\\1', ' <img src=\"'.STATICURL.'image/filetype/flash.gif\" align=\"absmiddle\" alt=\"\" /> <a href=\"{url}\" target=\"_blank\">Flash: {url}</a> ')", $message);
    }
    $flag = $length ? 1 : 0;
    if ($tid) {
        $extra = "onclick=\"changefeed({$tid}, {$pid}, {$flag}, this)\"";
    }
    if (strpos($msglower, '[/img]') !== FALSE) {
        $message = preg_replace(array("/\\[img\\]\\s*([^\\[\\<\r\n]+?)\\s*\\[\\/img\\]/ies", "/\\[img=(\\d{1,4})[x|\\,](\\d{1,4})\\]\\s*([^\\[\\<\r\n]+?)\\s*\\[\\/img\\]/ies"), $allowimg ? array("fparseimg('\\1', '{$extra}')", "fparseimg('\\3', '{$extra}')") : '', $message);
    }
    if ($tid && $pid) {
        $_G['post_attach'] = C::t('forum_attachment_n')->fetch_all_by_id(getattachtableid($tid), 'pid', $pid);
        foreach ($_G['post_attach'] as $aid => $attach) {
            if (!empty($_G['delattach']) && in_array($aid, $_G['delattach'])) {
                continue;
            }
            $message .= "[attach]{$attach['aid']}[/attach]";
            $message = preg_replace("/\\[attach\\]{$attach['aid']}\\[\\/attach\\]/i", fparseattach($attach['aid'], $length, $extra), $message, 1);
        }
    }
    if (strpos($msglower, '[/attach]') !== FALSE) {
        $message = preg_replace("/\\[attach\\]\\s*([^\\[\\<\r\n]+?)\\s*\\[\\/attach\\]/ies", '', $message);
    }
    $message = clearnl($message);
    if ($length) {
        $sppos = strpos($message, chr(0) . chr(0) . chr(0));
        if ($sppos !== false) {
            $message = substr($message, 0, $sppos);
        }
        $checkstr = cutstr($message, $length, '');
        if (strpos($checkstr, '[') && strpos(strrchr($checkstr, "["), ']') === FALSE) {
            $length = strpos($message, ']', strrpos($checkstr, strrchr($checkstr, "[")));
        }
        $message = cutstr($message, $length + 1, ' <a href="javascript:;" class="flw_readfull xi2 xs1"' . $extra . '>' . lang('space', 'follow_view_fulltext') . '</a>');
    } elseif ($allowimg && !empty($extra)) {
        $message .= '<div class="ptm cl"><a href="javascript:;" class="flw_readfull y xi2 xs1"' . $extra . '>' . lang('space', 'follow_retract') . '</a></div>';
    }
    for ($i = 0; $i <= $_G['forum_discuzcode']['pcodecount']; $i++) {
        $code = '';
        if (isset($_G['forum_discuzcode']['codehtml'][$i]) && !empty($_G['forum_discuzcode']['codehtml'][$i])) {
            $code = $_G['forum_discuzcode']['codehtml'][$i];
        } elseif (!$length) {
            if (isset($_G['forum_discuzcode']['audio'][$i]) && !empty($_G['forum_discuzcode']['audio'][$i])) {
                $code = $_G['forum_discuzcode']['audio'][$i];
            } elseif (isset($_G['forum_discuzcode']['video'][$i]) && !empty($_G['forum_discuzcode']['video'][$i])) {
                $code = $_G['forum_discuzcode']['video'][$i];
            } elseif (isset($_G['forum_discuzcode']['media'][$i]) && !empty($_G['forum_discuzcode']['media'][$i])) {
                $code = $_G['forum_discuzcode']['media'][$i];
            } elseif (isset($_G['forum_discuzcode']['image'][$i]) && !empty($_G['forum_discuzcode']['image'][$i])) {
                $code = $_G['forum_discuzcode']['image'][$i];
            } elseif (isset($_G['forum_discuzcode']['attach'][$i]) && !empty($_G['forum_discuzcode']['attach'][$i])) {
                $code = $_G['forum_discuzcode']['attach'][$i];
            }
        }
        $message = str_replace("[\tD_{$i}\t]", $code, $message);
    }
    $message = clearnl($message);
    if (!empty($_GET['highlight'])) {
        $highlightarray = explode('+', $_GET['highlight']);
        $sppos = strrpos($message, chr(0) . chr(0) . chr(0));
        if ($sppos !== FALSE) {
            $specialextra = substr($message, $sppos + 3);
            $message = substr($message, 0, $sppos);
        }
        $message = preg_replace(array("/(^|>)([^<]+)(?=<|\$)/sUe", "/<highlight>(.*)<\\/highlight>/siU"), array("highlightword('\\2', \$highlightarray, '\\1')", "<strong><font color=\"#FF0000\">\\1</font></strong>"), $message);
        if ($sppos !== FALSE) {
            $message = $message . chr(0) . chr(0) . chr(0) . $specialextra;
        }
    }
    unset($msglower);
    if ($length) {
        $count = 0;
        $imagecode = $mediacode = $videocode = $audiocode = $mediahtml = '';
        for ($i = 0; $i <= $_G['forum_discuzcode']['pcodecount']; $i++) {
            if (isset($_G['forum_discuzcode']['audio'][$i]) && !empty($_G['forum_discuzcode']['audio'][$i])) {
                $audiocode .= '<li>' . $_G['forum_discuzcode']['audio'][$attachcodei] . '</li>';
            } elseif (isset($_G['forum_discuzcode']['video'][$i]) && !empty($_G['forum_discuzcode']['video'][$i])) {
                $videocode .= '<li>' . $_G['forum_discuzcode']['video'][$i] . '</li>';
            } elseif (isset($_G['forum_discuzcode']['media'][$i]) && !empty($_G['forum_discuzcode']['media'][$i])) {
                $mediacode .= '<li>' . $_G['forum_discuzcode']['media'][$i] . '</li>';
            } elseif (isset($_G['forum_discuzcode']['image'][$i]) && !empty($_G['forum_discuzcode']['image'][$i]) && $count < 4) {
                $imagecode .= '<li>' . $_G['forum_discuzcode']['image'][$i] . '</li>';
                $count++;
            } elseif (isset($_G['forum_discuzcode']['attach'][$i]) && !empty($_G['forum_discuzcode']['attach'][$i])) {
                $attachcode .= '<li>' . $_G['forum_discuzcode']['attach'][$i] . '</li>';
            }
        }
        if (!empty($audiocode)) {
            $message .= '<div class="flw_music"><ul>' . $audiocode . '</ul></div>';
        }
        if (!empty($videocode)) {
            $message .= '<div class="flw_video"><ul>' . $videocode . '</ul></div>';
        }
        if (!empty($mediacode)) {
            $message .= '<div class="flw_video"><ul>' . $mediacode . '</ul></div>';
        }
        if (!empty($imagecode)) {
            $message = '<div class="flw_image' . ($count < 2 ? ' flw_image_1' : '') . '"><ul>' . $imagecode . '</ul></div>' . $message;
        }
        if (!empty($attachcode)) {
            $message .= '<div class="flw_attach"><ul>' . $attachcode . '</ul></div>';
        }
    }
    return $htmlon ? $message : nl2br(str_replace(array("\t", '   ', '  '), ' ', $message));
}
Esempio n. 5
0
 }
 $sh_type = intval(trim($_POST['sh_type']));
 $tid = intval(trim($_POST['thread_id']));
 $dialog_id = $_POST['dialog_id'];
 $connectService->connectMergeMember();
 if ($_G['setting']['rewritestatus'] && in_array('forum_viewthread', $_G['setting']['rewritestatus'])) {
     $url = rewriteoutput('forum_viewthread', 1, $_G['siteurl'], $tid);
 } else {
     $url = $_G['siteurl'] . 'forum.php?mod=viewthread&tid=' . $tid;
 }
 $connectOAuthClient = Cloud::loadClass('Service_Client_ConnectOAuth');
 $connectService = Cloud::loadClass('Service_Connect');
 if ($sh_type == 3) {
     $firstpost = C::t('forum_post')->fetch_threadpost_by_tid_invisible($tid, 0);
     require_once libfile('function/post');
     $firstpost['message'] = messagesafeclear($firstpost['message']);
     $summary = $connectService->connectParseBbcode($firstpost['message'], $firstpost['fid'], $firstpost['pid'], $firstpost['htmlon'], $attach_images);
     $qzone_params = array('title' => $_POST['share_subject'], 'url' => $url, 'comment' => $_POST['reason'], 'summary' => strip_tags($summary), 'images' => $_POST['attach_image'], 'nswb' => '1');
     if (!$_G['setting']['connect']['oauth2'] || !$_G['member']['conuintoken']) {
         try {
             $response = $connectOAuthClient->connectAddShare($_G['member']['conopenid'], $_G['member']['conuin'], $_G['member']['conuinsecret'], $qzone_params);
         } catch (Exception $e) {
             $errorCode = $e->getCode();
         }
     } else {
         try {
             $response = $connectOAuthClient->connectAddShare_V2($_G['member']['conopenid'], $_G['member']['conuintoken'], $qzone_params);
         } catch (Exception $e) {
             $errorCode = $e->getCode();
         }
     }
Esempio n. 6
0
function messagecutstr($str, $length = 0, $dot = ' ...')
{
    $str = messagesafeclear($str);
    $sppos = strpos($str, chr(0) . chr(0) . chr(0));
    if ($sppos !== false) {
        $str = substr($str, 0, $sppos);
    }
    #loadcache(array('bbcodes_display', 'bbcodes', 'smileycodes', 'smilies', 'smileytypes', 'domainwhitelist'));
    $bbcodes = 'b|i|u|p|color|size|font|align|list|indent|float';
    $bbcodesclear = 'email|code|free|table|tr|td|img|swf|flash|attach|media|audio|groupid|payto';
    $str = preg_replace("/\\[i=?.*?\\](.*?)\\[\\/i\\]/is", '', $str);
    $str = strip_tags(preg_replace(array("/\\[hide=?\\d*\\](.*?)\\[\\/hide\\]/is", "/\\[quote](.*?)\\[\\/quote]/si", "/\\[url=?.*?\\](.+?)\\[\\/url\\]/si", "/\\[({$bbcodesclear})=?.*?\\](.*?)\\[\\/\\1\\]/si", "/\\[({$bbcodes})=?.*?\\]/i", "/\\[\\/({$bbcodes})\\]/i"), array('', '', '\\1', '', '', ''), $str));
    if ($length) {
        //        $str = cutstr($str, $length, $dot);
        $str = substr_utf8($str, 0, $length);
    }
    #$str = preg_replace($_G['cache']['smilies']['searcharray'], '', $str);
    return trim($str);
}