Beispiel #1
0
function export_article()
{
    global $_G;
    $pid = intval($_GET['pid']);
    $pick_info = get_pick_info($pid, 'name');
    $query = DB::query("SELECT aid FROM " . DB::table('strayer_article_title') . " WHERE pid ='{$pid}' ORDER BY aid DESC");
    while ($v = DB::fetch($query)) {
        $a_info = article_info($v['aid']);
        //print_r($a_info);exit();
        if ($a_info) {
            $data[] = array('title' => $a_info['title'], 'summary' => $a_info['summary'], 'url_hash' => $a_info['url_hash'], 'url' => $a_info['url'], 'dateline' => $a_info['dateline'], 'content_arr' => $a_info['content_arr'], 'reply' => $a_info['content_arr'], 'is_bbs' => $a_info['is_bbs'], 'from' => $a_info['from'], 'fromurl' => $a_info['fromurl'], 'author' => $a_info['author'], 'article_tag' => $a_info['article_tag'], 'tag' => $a_info['tag'], 'pic' => $a_info['pic'], 'contents' => $a_info['contents'], 'reply_num' => $a_info['reply_num']);
        }
    }
    if (!$data) {
        cpmsg_error(milu_lang('no_article_export'));
    }
    $filename = $pick_info['name'] . milu_lang('export_article_count', array('c' => count($data)));
    export_article_file($data, $filename);
}
Beispiel #2
0
function article_manage()
{
    global $head_url, $header_config;
    $data = article_get_args();
    $info = $data['info'];
    $args = $data['args'];
    $data = get_pick_info();
    $info['public_class'] = unserialize($data['public_class']);
    $info['status'] = $args['status'] ? $args['status'] : intval($_GET['status']);
    $info['pid'] = $_GET['pid'] ? intval($_GET['pid']) : $args['pid'];
    //if(!VIP) unset($info['status_arr'][4]);
    foreach ($info['status_arr'] as $k => $v) {
        $info['a_c'][$k] = article_count($info['pid'], $k);
    }
    $info['oparea'] = $_GET['oparea'];
    $info['optype'] = $_GET['optype'];
    $args['pid'] = $info['pid'];
    $article_data = article_list($args);
    $info['pick'] = $data = get_pick_info();
    if ($info['optype'] == 'move_portal') {
        $info['public_class'][0] = $_GET['portal'];
    } else {
        if ($info['optype'] == 'move_forums') {
            $info['public_class'][0] = $_GET['forums'];
            $info['public_class'][1] = $_GET['threadtypeid'];
        } else {
            if ($info['optype'] == 'move_blog') {
                $info['public_class'][0] = $_GET['blog'];
            }
        }
    }
    if ($_GET['time_public'] == 1) {
        $info['pick']['public_start_time'] = $info['pick']['public_end_time'] = '';
    }
    $info['p'] = $_GET['p'];
    //判断是不是从采集器列表进来
    $info['pick']['public_start_time'] = $_GET['public_start_time'] ? $_GET['public_start_time'] : $info['pick']['public_start_time'];
    $info['pick']['public_end_time'] = $_GET['public_end_time'] ? $_GET['public_end_time'] : $info['pick']['public_end_time'];
    $info['pick']['public_sort'] = $info['pick']['public_sort'] ? $info['pick']['public_sort'] : $_GET['public_sort'];
    $info['pick']['public_start_time'] = dgmdate($info['pick']['public_start_time']);
    $info['pick']['public_end_time'] = dgmdate($info['pick']['public_end_time']);
    $info['pick_select'] = pick_search_select('set[pid]', intval($info['pid']));
    $info['article_move_pick_select'] = pick_search_select('move_pid', intval($_GET['move_pid']), $_GET['pid']);
    $info['rs'] = $article_data['rs'];
    $info['multipage'] = $article_data['multipage'];
    $info['count'] = $article_data['count'];
    if (!$info['p']) {
        $info['header'] = pick_header_output($header_config, $head_url);
    }
    $info['threadtypes'] = getthreadtypes(array('typeid' => $info['public_class'][1], 'fid' => $info['public_class'][0]));
    $info['forumselect'] = '<select id="forums" name="forums" onchange="getthreadtypes(this.value, 0)">' . forumselect(FALSE, 0, $info['public_class'][0], TRUE) . '</select>';
    $info['forumselect_public'] = '<select id="public_forums" name="public_forums" >' . forumselect(FALSE, 0, $info['public_class'][0], TRUE) . '</select>';
    $info['portalselect'] = category_showselect('portal', 'portal', FALSE, $info['public_class'][0]);
    $info['blogselect'] = category_showselect('blog', 'blog', TRUE, $info['public_class'][0]);
    $info['public_portalselect'] = category_showselect('portal', 'public_portal', FALSE, $info['public_class'][0]);
    $info['public_blogselect'] = category_showselect('blog', 'public_blog', TRUE, $info['public_class'][0]);
    $url_args = '';
    unset($args['mpurl']);
    foreach ((array) $args as $k => $v) {
        if ($k == 'perpage' || $k == 'pid') {
            continue;
        }
        $url_args .= '&' . $k . '=' . $v;
    }
    $info['url_args'] = urlencode($url_args);
    return $info;
}
Beispiel #3
0
function article_import($action, $args)
{
    global $_G;
    $pick_common_set = get_pick_set();
    $is_timing = $pick_common_set['is_timing'];
    //if(!VIP) $is_timing = 0;
    pload('F:spider');
    $aid_arr = $args['aid'] ? $args['aid'] : $_GET['aid'];
    $op = 'article_' . $action;
    $type_arr = explode('_', $action);
    $type = $type_arr[1];
    $pid = $args['pid'] ? $args['pid'] : intval($_GET['pid']);
    $p_arr = get_pick_info($pid);
    $view_arr = format_wrap($p_arr['view_num'], ',');
    $public_type = 1;
    if ($type == 'blog') {
        $public_type = 3;
        $type = 'album';
    }
    if ($type == 'forums') {
        $public_type = 2;
        $type = 'forum';
    }
    $today_public_num = 0;
    foreach ($aid_arr as $k => $aid) {
        $arr = $old_arr = article_info($aid);
        if (!$arr) {
            continue;
        }
        $arr['p_arr'] = $p_arr;
        $arr['public_start_time'] = $_GET['public_start_time'] ? $_GET['public_start_time'] : $p_arr['public_start_time'];
        $arr['public_end_time'] = $_GET['public_end_time'] ? $_GET['public_end_time'] : $p_arr['public_end_time'];
        $arr['public_time'] = 0;
        $time_arr = create_public_time($arr, 1);
        $arr['public_time'] = array_pop($time_arr);
        if ($args['cron_run'] && $args['public_time']) {
            $arr['public_time'] = $args['public_time'][$aid];
        }
        $arr['title'] = htmlspecialchars_decode($arr['title'], ENT_QUOTES);
        $arr['content'] = htmlspecialchars_decode($arr['content'], ENT_QUOTES);
        $arr['title'] = format_html($arr['title']);
        $arr['content'] = format_html($arr['content']);
        unset($arr['pic']);
        $arr['view_num'] = rand($view_arr[0], $view_arr[1]);
        $rand_arr = get_rand_uid($p_arr);
        $arr['uid'] = $setarr['uid'] = $rand_arr[0]['uid'] ? $rand_arr[0]['uid'] : $_G['uid'];
        $arr['username'] = $setarr['username'] = $rand_arr[0]['username'];
        $arr['portal_cid'] = $timing_public_arr['portal'] = $args['portal'] ? $args['portal'] : $_GET['portal'];
        $arr['forum_fid'] = $timing_public_arr['forums'] = $args['forums'] ? $args['forums'] : $_GET['forums'];
        $arr['forum_typeid'] = $timing_public_arr['threadtypeid'] = $args['threadtypeid'] ? $args['threadtypeid'] : $_GET['threadtypeid'];
        $arr['blog_big_cid'] = $timing_public_arr['blog'] = $args['blog'] ? $args['blog'] : $_GET['blog'];
        $arr['blog_small_cid'] = $timing_public_arr['classid'] = $args['classid'] ? $args['classid'] : $_GET['classid'];
        $arr['is_download_img'] = $p_arr['is_download_img'];
        $arr['is_water_img'] = $p_arr['is_water_img'];
        $arr['content'] = clear_ad_html($arr['content']);
        $arr['summary'] = addslashes($arr['summary']);
        $arr['public_reply_seq'] = $p_arr['public_reply_seq'];
        $arr['is_public_reply'] = $p_arr['is_public_reply'];
        $arr['public_uid'] = $p_arr['public_uid'];
        $arr['reply_uid'] = $p_arr['reply_uid'];
        $arr['is_page_public'] = $p_arr['is_page_public'];
        $arr['page_url'] = $arr['url'];
        //发布时间大于当前时间,放入定时发布中
        if ($arr['public_time'] > $_G['timestamp'] && $is_timing == 1) {
            $timing_setarr = array('public_type' => $public_type, 'data_id' => $aid, 'content_type' => 1, 'public_dateline' => $arr['public_time'], 'pid' => $pid, 'public_info' => serialize($timing_public_arr));
            article_timing_add($timing_setarr);
            DB::update('strayer_article_title', array('status' => 4), array('aid' => $aid));
            continue;
        }
        $arr['article_tag'] = $pick_common_set['open_tag'] == 1 && ($type == 'album' || $type == 'forum') && empty($arr['article_tag']) ? implode(',', dz_get_tag($arr['title'], $arr['content'], 1)) : $arr['article_tag'];
        $arr['cookie'] = $p_arr['login_cookie'];
        $arr['is_download_file'] = $p_arr['is_download_file'];
        $arr['content_filter_html'] = unserialize(dstripslashes($p_arr['content_filter_html']));
        if ($arr['contents'] > 1 && $arr['is_bbs'] == 0 && $type == 'forum' && $p_arr['is_page_public'] == 2) {
            $arr['is_public_reply'] = 1;
            $arr['public_reply_seq'] = 0;
            $arr['is_content_reply'] = 1;
            $arr['is_bbs'] = 1;
        } else {
            if ($arr['is_bbs'] != 1) {
                $arr['reply'] = array();
            }
        }
        if ($p_arr['is_word_replace'] == 1) {
            //同义词替换
            if ($p_arr['is_bbs'] != 1 && $arr['contents'] > 1) {
                //有几页的文章
                $arr['content_arr'] = article_words_replace($arr['content_arr']);
            }
            $arr['content'] = article_words_replace($arr['content']);
            if ($arr['reply']) {
                $arr['reply'] = article_words_replace($arr['reply']);
            }
            $arr['title'] = article_words_replace($arr['title']);
        }
        $arr['content'] = clear_ad_html($arr['content']);
        unset($arr['url']);
        //跟门户的跳转url重名
        unset($arr['aid']);
        if ($type == 'forum') {
            $arr = $op($arr, $old_arr);
            $insert_aid = $setarr['forum_id'] = $arr['tid'];
        } else {
            $insert_aid = $op($arr, $old_arr);
            if ($type == 'portal') {
                $setarr['portal_id'] = $insert_aid;
            } else {
                $setarr['blog_id'] = $insert_aid;
            }
        }
        if ($insert_aid) {
            $arr['aid'] = $insert_aid;
            $arr['cookie'] = $p_arr['login_cookie'];
            if ($type == 'forum') {
                if ($arr['is_download_img'] == 1 || $arr['is_download_file'] == 1) {
                    forum_downremotefile($arr, $old_arr);
                }
            } else {
                downremotefile($arr, $type, $old_arr);
            }
            if ($type == 'portal') {
                article_thumb($insert_aid);
            }
        }
        $p_arr['is_public_del'] = $p_arr['is_public_del'] ? $p_arr['is_public_del'] : intval($_GET['is_public_del']);
        $setarr['status'] = 2;
        $setarr['article_tag'] = $arr['article_tag'];
        $today_public_num++;
        if ($p_arr['is_public_del'] != 1 && $insert_aid) {
            DB::update('strayer_article_title', $setarr, array('aid' => $aid));
        }
    }
    if (VIP) {
        $today_arr = dunserialize(pick_common_get('', 'pick_today'));
        $c_set['pick_today']['day'] = date('md', $_G['timestamp']);
        $c_set['pick_today']['article_public_num'] = $today_public_num + $today_arr['article_public_num'];
        pick_common_set($c_set);
    }
    if ($p_arr['is_public_del'] == 1) {
        article_delete($aid_arr);
    }
    //导入之后删除
    return $insert_aid;
}
Beispiel #4
0
     cpmsg_error(milu_lang('pick_name_no_empty'));
 }
 if ($_GET['pid'] && $_GET['add'] != 'copy') {
     $pid = $_GET['pid'];
     if (empty($setarr['rules_hash'])) {
         $setarr['rules_hash'] = '';
     }
     if (empty($setarr['page_url_auto'])) {
         $setarr['page_url_auto'] = 0;
     }
     $msg = milu_lang('modify');
     if (empty($setarr['reply_is_extend'])) {
         $setarr['reply_is_extend'] = 0;
     }
     $setarr = paddslashes($setarr);
     $data_info = get_pick_info();
     if ($data_info['cron_day'] == 0) {
         $data_info['cron_day'] = -1;
     }
     //数据库中的字段类型为未签署,导致没法小于0
     if ($data_info['cron_minute'] != $setarr['cron_minute'] || $data_info['cron_hour'] != $setarr['cron_hour'] || $data_info['cron_day'] != $setarr['cron_day'] || $data_info['cron_weekday'] != $setarr['cron_weekday']) {
         //计划任务修改时,把下次执行时间清空
         save_syscache('pick_run', TIMESTAMP);
         $setarr['lastrun'] = $setarr['nextrun'] = 0;
     }
     DB::update('strayer_picker', $setarr, array('pid' => $pid));
     $url = PICK_GO . 'picker_manage';
 } else {
     $msg = milu_lang('add');
     $setarr = paddslashes($setarr);
     $setarr['picker_hash'] = create_hash();
Beispiel #5
0
 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;
     //缓存
 }