function fastpick_edit() { global $head_url, $header_config; $id = intval($_GET['id']); $copy = $_GET['copy']; if (!submitcheck('addsubmit')) { num_limit('strayer_fastpick', 3000, 'f_num_limit'); $trun_info = get_trun_data(); $info = $trun_info ? $trun_info : fastpick_info($id); $info['theme_url_test'] = $info['theme_url_test'] ? $info['theme_url_test'] : $info['detail_ID_test']; $info = pstripslashes($info); $info['title_filter_rules'] = dunserialize($info['title_filter_rules']); $info['content_filter_rules'] = dunserialize($info['content_filter_rules']); $info['content_filter_html'] = dunserialize($info['content_filter_html']); $info['header'] = pick_header_output($header_config, $head_url); $info['id'] = $id; return $info; } else { $setarr = $_GET['set']; $setarr['detail_ID'] = trim($setarr['detail_ID']); $setarr = dstripslashes($setarr); $setarr['title_filter_rules'] = serialize(dstripslashes($_GET['title_filter_rules'])); $setarr['content_filter_rules'] = serialize(dstripslashes($_GET['content_filter_rules'])); $setarr['content_filter_html'] = serialize(dstripslashes($_GET['content_filter_html'])); if (empty($setarr['rules_name'])) { cpmsg_error(milu_lang('rules_no_empty')); } $setarr = paddslashes($setarr); if ($id && !$copy) { $msg = milu_lang('modify'); DB::update('strayer_fastpick', $setarr, array('id' => $id)); } else { $setarr['rules_hash'] = create_hash(); $id = DB::insert('strayer_fastpick', $setarr, TRUE); $msg = milu_lang('add'); } $url = PICK_GO . 'fast_pick&myac=fastpick_edit&id=' . $id; if (!$id) { cpmsg_error($msg . milu_lang('fail')); } del_search_index(1); cpmsg(milu_lang('rules_notice', array('msg' => $msg)), $url, 'succeed'); } }
function rules_get_article($content, $rules_info) { $url = $_GET['url']; $rules_info = pstripslashes($rules_info); $rules_info['title_filter_rules'] = dstripslashes(unserialize($rules_info['title_filter_rules'])); $rules_info['content_filter_rules'] = dstripslashes(unserialize($rules_info['content_filter_rules'])); require_once libfile('function/home'); //先取标题 if ($rules_info['theme_get_type'] == 3) { //智能识别 $data = get_single_article($content); } else { if ($rules_info['theme_get_type'] == 1) { //dom获取 $data = dom_single_article($content, array('title' => $rules_info['theme_rules'])); } else { if ($rules_info['theme_get_type'] == 2) { //字符串 $re = pregmessage($content, '<title>[title]</title>', 'title', -1); $data['other']['old_title'] = $re[0]; $re = pregmessage($content, $rules_info['theme_rules'], 'title', -1); $data['title'] = $re[0]; } } } if (!trim($data['title'])) { return $data; } //如果标题都取不到,不必浪费时间获取内容 $data['content'] = rules_get_contents($content, $rules_info); if ($rules_info['content_page_rules'] && $data['content']) { //分页文章 $content_page_arr = get_content_page($url, $content, $rules_info); if ($content_page_arr) { $args = array('oldurl' => array(), 'content_arr' => array(), 'content_page_arr' => $content_page_arr, 'page_hash' => array(), 'rules' => $rules_info, 'url' => $url); $data['content_arr'] = page_get_content($content, $args); foreach ((array) $data['content_arr'] as $k => $v) { $content_arr[] = $v['content']; } $data['content'] = implode('', $content_arr); } } $data['title'] = unhtmlentities(strip_tags($data['title'], ' ')); $data['content'] = unhtmlentities($data['content']); $data['title'] = getstr(trim($data['title']), 80, 1, 1, 0, 1); $data['content'] = getstr($data['content'], 0, 1, 1, 0, 1); //print_r($data); //处理文章标题和内容,包括替换和过滤 $format_args_title = array('is_fiter' => $rules_info['is_fiter_title'], 'show_type' => 'title', 'test' => 2, 'result_data' => $data['title'], 'replace_rules' => $rules_info['title_replace_rules'], 'filter_data' => $rules_info['title_filter_rules']); $data['title'] = filter_article($format_args_title); $data['content'] = dstripslashes($data['content']); $format_args_content = array('is_fiter' => $rules_info['is_fiter_content'], 'show_type' => 'title', 'test' => 2, 'filter_html' => dunserialize($rules_info['content_filter_html']), 'result_data' => $data['content'], 'replace_rules' => $rules_info['content_replace_rules'], 'filter_data' => $rules_info['content_filter_rules']); $data['content'] = filter_article($format_args_content); //$data['content'] = dz_attach_format($url, $data['content']); $format_arr = format_article_imgurl($url, $data['content']); $data['content'] = $format_arr['message']; //$data['content'] = media_htmlbbcode($data['content'], $url); unset($data['other']); return $data; }
function member_edit() { global $head_url, $header_config; if (!submitcheck('editsubmit')) { $uid = intval($_GET['uid']); $info = member_info($uid); $info = pstripslashes($info); $info = dhtmlspecialchars($info); $yearselect = $monthselect = $dayselect = "<option value=\"\">" . cplang('nolimit') . "</option>\n"; $yy = dgmdate(TIMESTAMP, 'Y'); for ($y = $yy; $y >= $yy - 100; $y--) { $y = sprintf("%04d", $y); $yearselect .= "<option value=\"{$y}\" " . ($info['birthyear'] == $y ? 'selected' : '') . ">{$y}</option>\n"; } $info['yearselect'] = $yearselect; for ($m = 1; $m <= 12; $m++) { $m = sprintf("%02d", $m); $monthselect .= "<option value=\"{$m}\" " . ($info['birthmonth'] == $m ? 'selected' : '') . ">{$m}</option>\n"; } $info['monthselect'] = $monthselect; for ($d = 1; $d <= 31; $d++) { $d = sprintf("%02d", $d); $dayselect .= "<option value=\"{$d}\" " . ($info['birthday'] == $d ? 'selected' : '') . ">{$d}</option>\n"; } $info['dayselect'] = $dayselect; $info['bloodtype_select'] = select_output(array('A', 'B', 'AB', milu_lang('other')), milu_lang('other'), 'set[bloodtype]', $info['bloodtype']); $info['education_select'] = select_output(array(milu_lang('boshi'), milu_lang('shuoshi'), milu_lang('benke'), milu_lang('zuanke'), milu_lang('zhongxue'), milu_lang('xiaoxue'), milu_lang('other')), milu_lang('other'), 'set[education]', $info['education']); $info['regdate'] = $info['regdate'] ? dgmdate($info['regdate'], 'Y-m-d H:i') : ''; $info['lastvisit'] = $info['lastactivity'] ? dgmdate($info['lastvisit'], 'Y-m-d H:i') : ''; $info['lastactivity'] = $info['lastactivity'] ? dgmdate($info['lastactivity'], 'Y-m-d H:i') : ''; $info['lastpost'] = $info['lastpost'] ? dgmdate($info['lastpost'], 'Y-m-d H:i') : ''; $info['header'] = pick_header_output($header_config, $head_url, array('current' => 'member_list')); return $info; } else { $uid = intval($_GET['uid']); if (!$uid) { cpmsg_error(milu_lang('err')); } $setarr = paddslashes($_GET['set']); DB::update('strayer_member', $setarr, array('uid' => $uid)); cpmsg(milu_lang('op_success'), PICK_GO . "member&myac=member_edit&uid=" . $uid, 'succeed'); } }
function evo_set($info) { global $_G; if (!$info) { return; } if (strlen($info['text']['html']) < 200 || strlen($info['title']['html']) < 10) { return; } //标题和内容太短都不行 $link_count = own_link_count($info['text']['html'], $this->url); if ($link_count > 10) { return FALSE; } //有10个指向自己的链接,就不行 $milu_set = pick_common_get(); if ($milu_set['fp_open_evo'] != 1) { return FALSE; } $text_info = $this->dom_info_arr[$info['text']['key']]; $title_info = $this->dom_info_arr[$info['title']['key']]; $text_info['html'] = $info['text']['html']; $title_info['html'] = $info['title']['html']; $info['title_split_arr'] = $this->get_split_arr($title_info); $info['text_split_arr'] = $split_arr = $this->get_split_arr($text_info); unset($text_info['outertext'], $text_info['parent']['outertext'], $title_info['outertext'], $title_info['parent']['outertext'], $text_info['html'], $title_info['html']); if (strlen($split_arr[0]) < 14) { return FALSE; } pload('F:copyright'); $host_info = GetHostInfo($this->url); $domain = $host_info['host']; $domain_hash = md5($domain); if (preg_match('/\\d+/', $split_arr[0])) { $s_arr = preg_split("/[\\d]+/", $split_arr[0]); $split_arr[0] = $s_arr[0]; foreach ((array) $s_arr as $k => $v) { if (strlen($v) > strlen($split_arr[0])) { $split_arr[0] = $v; } } } if (!$title_info) { return FALSE; } $result_info['evo_title_info'] = $title_info; $setarr = array('content_get_type' => 0, 'detail_ID' => $split_arr[0], 'detail_ID_hash' => md5($split_arr[0]), 'detail_ID_test' => $this->url, 'content_rules' => '', 'evo_text_info' => serialize($text_info), 'evo_title_info' => serialize($title_info), 'domain_hash' => $domain_hash, 'domain' => $domain, 'status' => 0, 'dateline' => $_G['timestamp']); $setarr = paddslashes($setarr); $base_sql = "SELECT * FROM " . DB::table('strayer_evo') . " WHERE domain_hash='{$domain_hash}' AND detail_ID_hash='" . $setarr['detail_ID_hash'] . "' AND status=0"; $data_info = DB::fetch_first($base_sql . " AND detail_ID_test!='{$this->url}'"); $data_info = pstripslashes($data_info); if (!$data_info) { //还没有资料 if (!($check = DB::result(DB::query("SELECT COUNT(*) FROM " . DB::table('strayer_evo') . " WHERE domain_hash='{$domain_hash}' AND detail_ID_hash='" . $setarr['detail_ID_hash'] . "' AND status=0 AND detail_ID_test='{$this->url}'"), 0))) { DB::insert('strayer_evo', $setarr, TRUE); } $result_info['status'] = 'no'; return $result_info; } else { //有了资料 $title_rules = $this->get_rules($info, $title_info, $data_info, 'title'); $text_rules = $this->get_rules($info, $text_info, $data_info, 'text'); //删除之前的一些记录,防止没有索引的情况下重复生成规则 $check_info = DB::fetch_first("SELECT * FROM " . DB::table('strayer_evo') . " WHERE domain_hash='{$domain_hash}' AND detail_ID_hash='" . $setarr['detail_ID_hash'] . "' AND status=1"); DB::query('DELETE FROM ' . DB::table('strayer_evo') . " WHERE id='{$check_info['id']}'"); DB::query('DELETE FROM ' . DB::table('strayer_searchindex') . " WHERE id='{$check_info['id']}' AND type='34'"); if ($text_rules) { $setarr = array('content_get_type' => $text_rules['get_type'], 'content_rules' => $text_rules['rules'], 'theme_get_type' => $title_rules['get_type'], 'theme_rules' => $title_rules['rules'], 'status' => 1); DB::update("strayer_evo", $setarr, array("id" => $data_info['id'])); $pash_hash = get_path_hash($this->url); add_search_index($domain_hash, $path_hash, 34, $data_info['id']); //添加索引 4是本地缓存 $pick_set = get_pick_set(); if ($pick_set['open_cloud_pick'] == 1) { //开启云采集,将规则上传到服务端 $rpcClient = rpcClient(); unset($setarr['status']); $data_info['content_get_type'] = $setarr['content_get_type']; $data_info['content_rules'] = $setarr['content_rules']; $data_info['theme_get_type'] = $setarr['theme_get_type']; $data_info['theme_rules'] = $setarr['theme_rules']; $client_info = get_client_info(); $re = $rpcClient->upload_evo_data($data_info, $client_info); } del_search_index(3); $result_info['status'] = 'ok'; return $result_info; } } }
function _ini_config($pid = 0, $is_cron = 0) { global $_G; $this->error = ''; if ($pid == 0 && $is_cron > 0) { $this->error = 1; return; } $this->pid = $pid > 0 ? intval($pid) : intval($_GET['pid']); $this->pick_cache_data = load_cache('pick' . $this->pid); $this->i = $this->pick_cache_data['i'] ? $this->pick_cache_data['i'] : 1; $this->v_i = $this->pick_cache_data['v_i'] ? $this->pick_cache_data['v_i'] : 0; $this->a = $this->pick_cache_data['a'] ? $this->pick_cache_data['a'] : 0; $this->v_a = $this->pick_cache_data['v_a'] ? $this->pick_cache_data['v_a'] : 0; $this->all_get_time = $this->pick_cache_data['all_get_time'] ? $this->pick_cache_data['all_get_time'] : 0; $this->temp_arr['have_reply'] = 0; $this->plugin_set = get_pick_set(); if ($is_cron > 0 && $this->plugin_set['is_log_cron'] > 0) { $is_log = 1; } $this->msg_args = array('is_cron' => $is_cron, 'pid' => $this->pid, 'is_log' => $is_log); if ($this->i == 1) { show_pick_info(milu_lang('pick_start'), '', $this->msg_args); } $p_arr = get_pick_info($this->pid); $p_arr = pstripslashes($p_arr); //if(!VIP) unset($p_arr['reply_rules'],$p_arr['reply_is_extend'], $p_arr['content_page_rules']); if ($p_arr['rules_type'] == 3) { $p_arr['url_range_type'] = ''; } //新增 $this->pick_set = pick_common_get(); //插件设置 $this->pick_config = $_G['cache']['evn_milu_pick']; $p_arr['rules_var'] = dstripslashes(unserialize($p_arr['rules_var'])); $p_arr['many_page_list'] = dstripslashes(unserialize($p_arr['many_page_list'])); $p_arr['title_filter_rules'] = dstripslashes(unserialize($p_arr['title_filter_rules'])); $p_arr['content_filter_rules'] = dstripslashes(unserialize($p_arr['content_filter_rules'])); $p_arr['reply_filter_rules'] = dstripslashes(unserialize($p_arr['reply_filter_rules'])); $p_arr['content_filter_html'] = dstripslashes(unserialize($p_arr['content_filter_html'])); $p_arr['reply_filter_html'] = dstripslashes(unserialize($p_arr['reply_filter_html'])); $p_arr['public_class'] = dstripslashes(unserialize($p_arr['public_class'])); //发布分类 //if(!VIP) $p_arr['is_auto_public'] = 0; if ($p_arr['is_login'] == 2) { $p_arr['login_cookie'] = ''; } if (!$p_arr['reply_max_num']) { $p_arr['reply_max_num'] = 200000; } //如果没有设置回复,这个就是最大数目了 if ($p_arr['reply_is_extend']) { //继承内容规则 $p_arr['reply_get_type'] = $p_arr['content_get_type']; $p_arr['reply_rules'] = $p_arr['content_rules']; if ($p_arr['is_fiter_content'] == 1) { //内容是过滤的 if ($p_arr['is_fiter_reply'] == 1) { //回复是过滤的 $p_arr['reply_replace_rules'] = array_merge((array) $p_arr['reply_replace_rules'], (array) $p_arr['content_replace_rules']); $p_arr['reply_filter_rules'] = array_merge((array) $p_arr['content_filter_rules'], (array) $p_arr['reply_filter_rules']); $p_arr['reply_filter_html'] = array_merge((array) $p_arr['content_filter_html'], (array) $p_arr['reply_filter_html']); } else { //内容过滤,回复不过滤 $p_arr['reply_replace_rules'] = $p_arr['content_replace_rules']; $p_arr['reply_filter_rules'] = $p_arr['content_filter_rules']; $p_arr['reply_filter_html'] = $p_arr['content_filter_html']; $p_arr['is_fiter_reply'] = 1; } } } $p_arr['stop_time'] = explode(',', $p_arr['stop_time']); $p_arr['stop_time'] = array_map('intval', $p_arr['stop_time']); $this->p_arr = $p_arr; $rules_hash = $this->p_arr['rules_hash']; if ($this->p_arr['is_auto_public'] == 1 && !$this->p_arr['public_class'][0]) { //既设置了自动发布,又没有设置发布栏目 $this->error = 1; show_pick_info(milu_lang('no_set_public_class'), 'exit', $this->msg_args); return; } if ($this->p_arr['is_auto_public'] == 1 && $this->p_arr['is_word_replace'] == 1) { //即自动发布,又设置了同义词替换 $this->words = get_replace_words(); } pload('F:rules'); if ($rules_hash) { $r_arr = get_rules_info($rules_hash); } $r_arr = pstripslashes($r_arr); $r_arr['url_var'] = dstripslashes(unserialize($r_arr['url_var'])); $this->r_arr = $r_arr; $this->rid = $r_arr['rid']; $this->now_level = $this->pick_cache_data['now_level']; $this->max_level = $this->pick_cache_data['max_level']; if (!$this->pick_cache_data) { update_times($this->pid); } if (!$this->pick_cache_data['start_time']) { $this->pick_cache_data['start_time'] = TIMESTAMP; } $this->cache_time = PICK_ENABLE_CACHE ? 3600 * 24 : -1; //缓存 }