Exemplo n.º 1
0
 function do_batch()
 {
     $_POST['id'] or iPHP::alert("请选择要操作的文章");
     $ids = implode(',', (array) $_POST['id']);
     $batch = $_POST['batch'];
     switch ($batch) {
         case 'order':
             foreach ((array) $_POST['ordernum'] as $id => $ordernum) {
                 articleTable::update(compact('ordernum'), compact('id'));
             }
             iPHP::success('排序已更新!', 'js:1');
             break;
         case 'baiduping':
             foreach ((array) $_POST['id'] as $id) {
                 $this->do_baiduping($id, false);
             }
             iPHP::success('推送完成!', 'js:1');
             break;
         case 'move':
             $_POST['cid'] or iPHP::alert("请选择目标栏目!");
             iPHP::import(iPHP_APP_CORE . '/iMAP.class.php');
             map::init('category', $this->appid);
             $cid = (int) $_POST['cid'];
             iACP::CP($cid, 'ca', 'alert');
             foreach ((array) $_POST['id'] as $id) {
                 $_cid = articleTable::value('cid', $id);
                 articleTable::update(compact('cid'), compact('id'));
                 if ($_cid != $cid) {
                     map::diff($cid, $_cid, $id);
                     $this->categoryApp->update_count_one($_cid, '-');
                     $this->categoryApp->update_count_one($cid);
                 }
             }
             iPHP::success('成功移动到目标栏目!', 'js:1');
             break;
         case 'scid':
             //$_POST['scid'] OR iPHP::alert("请选择目标栏目!");
             iPHP::import(iPHP_APP_CORE . '/iMAP.class.php');
             map::init('category', $this->appid);
             $scid = implode(',', (array) $_POST['scid']);
             foreach ((array) $_POST['id'] as $id) {
                 $_scid = articleTable::value('scid', $id);
                 articleTable::update(compact('scid'), compact('id'));
                 map::diff($scid, $_scid, $id);
             }
             iPHP::success('文章副栏目设置完成!', 'js:1');
             break;
         case 'prop':
             iPHP::import(iPHP_APP_CORE . '/iMAP.class.php');
             map::init('prop', $this->appid);
             $pid = implode(',', (array) $_POST['pid']);
             foreach ((array) $_POST['id'] as $id) {
                 $_pid = articleTable::value('pid', $id);
                 articleTable::update(compact('pid'), compact('id'));
                 map::diff($pid, $_pid, $id);
             }
             iPHP::success('文章属性设置完成!', 'js:1');
             break;
         case 'weight':
             $data = array('weight' => _int($_POST['mweight']));
             break;
         case 'keyword':
             if ($_POST['pattern'] == 'replace') {
                 $data = array('keywords' => iS::escapeStr($_POST['mkeyword']));
             } elseif ($_POST['pattern'] == 'addto') {
                 foreach ($_POST['id'] as $id) {
                     $keywords = articleTable::value('keywords', $id);
                     $keywords = $keywords ? $keywords . ',' . iS::escapeStr($_POST['mkeyword']) : iS::escapeStr($_POST['mkeyword']);
                     articleTable::update(compact('keywords'), compact('id'));
                 }
                 iPHP::success('文章关键字更改完成!', 'js:1');
             }
             break;
         case 'tag':
             iPHP::app('tag.class', 'static');
             foreach ($_POST['id'] as $id) {
                 $art = articleTable::row($id, 'tags,cid');
                 $mtag = iS::escapeStr($_POST['mtag']);
                 if ($_POST['pattern'] == 'replace') {
                 } elseif ($_POST['pattern'] == 'addto') {
                     $art['tags'] && ($mtag = $art['tags'] . ',' . $mtag);
                 }
                 $tags = tag::diff($mtag, $art['tags'], iMember::$userid, $id, $art['cid']);
                 $tags = addslashes($tags);
                 articleTable::update(compact('tags'), compact('id'));
             }
             iPHP::success('文章标签更改完成!', 'js:1');
             break;
         case 'thumb':
             foreach ((array) $_POST['id'] as $id) {
                 $body = articleTable::body($id);
                 $picurl = $this->remotepic($body, 'autopic', $id);
                 $this->pic($picurl, $id);
             }
             iPHP::success('成功提取缩略图!', 'js:1');
             break;
         case 'dels':
             iPHP::$break = false;
             ob_implicit_flush();
             $_count = count($_POST['id']);
             foreach ((array) $_POST['id'] as $i => $id) {
                 $msg = $this->delArticle($id);
                 $msg .= $this->del_msg('文章删除完成!');
                 $updateMsg = $i ? true : false;
                 $timeout = $i++ == $_count ? '3' : false;
                 iPHP::dialog($msg, 'js:parent.$("#id' . $id . '").remove();', $timeout, 0, $updateMsg);
                 ob_end_flush();
             }
             iPHP::$break = true;
             iPHP::success('文章全部删除完成!', 'js:1', 3, 0, true);
             break;
         default:
             $data = iACP::fields($batch);
     }
     $data && articleTable::batch($data, $ids);
     iPHP::success('操作成功!', 'js:1');
 }