Example #1
0
function get_single_article($content, $url, $args = array())
{
    global $_G;
    extract($args);
    if (strlen(trim($content)) < 1) {
        return;
    }
    d_s('evo');
    $get_type = $_GET['get_type'] ? intval($_GET['get_type']) : $get_type;
    $get_type = $get_type ? $get_type : 1;
    $milu_set = pick_common_get();
    $rules_info = match_rules($url, $content, $get_type, 0);
    if (is_array($rules_info)) {
        pload('F:fastpick');
        $data = rules_get_article($content, $rules_info);
        write_evo_errlog($data, $url, $rules_info);
    } else {
        $data = (array) cloud_match_rules($get_type, $url, $content);
        //从云端下载规则 这里应该做点优化,暂时没想到方法。
        if (!$data['content'] && $milu_set['fp_open_auto'] == 1) {
            //开启智能获取
            pload('C:HtmlExtractor');
            pload('F:article');
            $he = new HtmlExtractor($content, $url);
            $data = (array) $he->get_text();
            $data['content'] = dz_attach_format($url, $data['content']);
            $arr = format_article_imgurl($url, $data['content']);
            $data['content'] = $arr['message'];
            $del_dom_rules = array('div[id*=share]', 'div[class*=page]');
            foreach ($del_dom_rules as $k => $v) {
                $data['content'] = dom_filter_something($data['content'], $v, 2);
            }
            unset($data['evo_title_info']);
        }
    }
    if ($_GET['type'] == 'bbs') {
        $data['content'] = media_htmlbbcode($data['content'], $url);
        $data['content'] = img_htmlbbcode($data['content'], $url);
    }
    $data['evo_time'] = d_e(0, 'evo');
    return $data;
}
Example #2
0
    function _public_add_info($type = 'bbs')
    {
        $info = $this->_article_info();
        if (!$info) {
            return;
        }
        if ($type == 'bbs') {
            require_once libfile('function/editor');
            $info['content'] = dstripslashes($info['content']);
            $info['content'] = img_htmlbbcode($info['content'], $info['page_url']);
            $info['content'] = media_htmlbbcode($info['content'], $info['page_url']);
            $info['content'] = audio_htmlbbcode($info['content'], $info['page_url']);
            $info['content'] = htmlspecialchars_decode(html2bbcode($info['content']));
            $info['content'] = dstripslashes(format_html($info['content']));
            $script .= '<div id="show_title" style="display:none">' . $info['title'] . '</div><div id="show_content" style="display:none">' . $info['content'] . '</div><script language="javascript" type="text/javascript" >';
            $script .= '
					var subject = $("show_title").innerHTML;
					var message = $("show_content").innerHTML;
					$("subject").value= subject;
					message = message.replace(/<p>([\\s\\S]*?)<\\/p>/ig, "$1<br />");
					message = message.replace(/<center>([\\s\\S]*?)<\\/center>/ig, "[align=center]$1[/align]");
					$(\'e_textarea\').value = message;
					$("subject").focus();';
            $script .= '</script>';
        } else {
            if ($type == 'portal') {
                $script .= '<div id="show_title" style="display:none">' . $info['title'] . '</div><div id="show_content" style="display:none">' . $info['content'] . '</div><script language="javascript" type="text/javascript" >';
                $script .= '
					var subject = $("show_title").innerHTML;
					var message = $("show_content").innerHTML;
					$("title").value= subject;
					$("from").value= \'' . $this->_public_data($info['from']) . '\';
					document.getElementsByName(\'fromurl\')[0].value = \'' . $this->_public_data($info['url']) . '\';
					document.getElementsByName(\'author\')[0].value = \'' . $this->_public_data($info['author']) . '\';
					$(\'uchome-ttHtmlEditor\').value  = message;
					var p = window.frames[\'uchome-ifrHtmlEditor\'];
					var obj = p.window.frames[\'HtmlEditor\'];
					obj.document.body.innerHTML = message;
					edit_save();
					$("title").focus()';
                $script .= '</script>';
            } else {
                if ($type == 'blog') {
                    $script .= '<div id="show_title" style="display:none">' . $info['title'] . '</div><div id="show_content" style="display:none">' . $info['content'] . '</div><script language="javascript" type="text/javascript" >';
                    $script .= '
					var subject = $("show_title").innerHTML;
					var message = $("show_content").innerHTML;
					$("subject").value= subject;
					document.getElementsByName(\'tag\')[0].value = \'' . $this->_public_data($info['article_tag']) . '\';
					$(\'uchome-ttHtmlEditor\').value  = message;
					var p = window.frames[\'uchome-ifrHtmlEditor\'];
					var obj = p.window.frames[\'HtmlEditor\'];
					obj.document.body.innerHTML = message;
					edit_save();
					$("subject").focus()';
                    $script .= '</script>';
                }
            }
        }
        return $script;
    }
Example #3
0
function article_reply($arr)
{
    global $_G;
    require_once libfile('function/editor');
    require_once libfile('function/post');
    $time_arr = create_public_time($arr, count($arr['reply']), 1);
    //需传入已经发布的帖子的public_start_time
    $uid_arr = get_rand_uid($arr, 'reply');
    $subject = addslashes($arr['title']);
    $view_num = $arr['view_num'];
    $tid = $arr['tid'];
    $reply_arr = $arr['reply'];
    if ($arr['public_reply_seq'] == 1) {
        shuffle($reply_arr);
    }
    //打乱回帖
    //print_r($reply_arr);exit();
    $replys = count($reply_arr);
    foreach ((array) $reply_arr as $k => $v) {
        $message = dstripslashes($v);
        $message = media_htmlbbcode($message, $arr['page_url']);
        $message = img_htmlbbcode($message, $arr['page_url']);
        $message = htmlspecialchars_decode(html2bbcode($message));
        $bbcodeoff = checkbbcodes($message, !empty($_GET['bbcodeoff']));
        $smileyoff = checksmilies($message, !empty($_GET['smileyoff']));
        $parseurloff = !empty($_GET['parseurloff']);
        $htmlon = $_G['group']['allowhtml'] && !empty($_GET['htmlon']) ? 1 : 0;
        $usesig = !empty($_GET['usesig']) ? 1 : ($_G['uid'] && $_G['group']['maxsigsize'] ? 1 : 0);
        $isanonymous = $_G['group']['allowanonymous'] && !empty($_GET['isanonymous']) ? 1 : 0;
        if (!$message || strlen($message) < 2) {
            continue;
        }
        $post_setarr = array('fid' => $arr['fid'], 'tid' => $tid, 'first' => '0', 'author' => $uid_arr[$k]['username'] ? $uid_arr[$k]['username'] : $_G['username'], 'authorid' => $uid_arr[$k]['uid'] ? $uid_arr[$k]['uid'] : $_G['uid'], 'subject' => '', 'dateline' => $time_arr[$k], 'message' => $message, 'useip' => $_G['clientip'], 'invisible' => 0, 'anonymous' => $isanonymous, 'usesig' => $usesig, 'htmlon' => $htmlon, 'bbcodeoff' => $bbcodeoff, 'smileyoff' => $smileyoff, 'parseurloff' => $parseurloff, 'attachment' => '0', 'tags' => 0, 'replycredit' => 0, 'status' => defined('IN_MOBILE') ? 8 : 0);
        //$new[$k] = $post_setarr;
        if (DISCUZ_VERSION != 'X2') {
            //2.5版本
            $post_setarr = dstripslashes($post_setarr);
        } else {
            $post_setarr = daddslashes($post_setarr);
        }
        $lastpost = $post_setarr['dateline'];
        $lastposter = $post_setarr['author'];
        $reply_pid = insertpost($post_setarr);
        $forum_arr['tid'] = $tid;
        $forum_arr['pid'] = $reply_pid;
        $forum_arr['is_post'] = 1;
        //标识是回复
        $forum_arr['cookie'] = $arr['cookie'];
        $forum_arr['is_water_img'] = $arr['is_water_img'];
        $forum_arr['is_download_img'] = $arr['is_download_img'];
        $forum_arr['is_download_file'] = $arr['is_download_file'];
        $forum_arr['content'] = $v;
        $re_arr = forum_downremotefile($forum_arr);
        DB::query("UPDATE " . DB::table('common_member_count') . " SET posts=posts+1 WHERE uid='{$post_setarr['authorid']}'");
        //更新数
    }
    //今日发帖
    $todayposts = 0;
    foreach ((array) $time_arr as $k => $v) {
        if (date("Yjn", $_G['timestamp']) == date("Yjn", $v)) {
            $todayposts++;
        }
    }
    DB::update('forum_thread', array('replies' => count($reply_arr), 'lastpost' => $lastpost, 'lastposter' => $lastposter), array('tid' => $tid));
    $subject = str_replace("\t", ' ', $subject);
    $replys = $replys ? $replys : 1;
    $forum_lastpost = "{$tid}\t{$subject}\t{$lastpost}\t{$lastposter}";
    DB::query("UPDATE " . DB::table('forum_forum') . " SET lastpost='{$forum_lastpost}', posts=posts+{$replys}, todayposts=todayposts+{$todayposts} WHERE fid='{$arr['fid']}'", 'UNBUFFERED');
    //更新今日发帖这些数据
    return TRUE;
}