예제 #1
0
         $a_field->field = $v;
         if ($curuser->pmbypmids('field', $v['pmid'])) {
             //字段附加权限设置
             if (!empty($v['istxt'])) {
                 $archiveadd[$k] = saveastxt(stripslashes($archiveadd[$k]));
             }
             ${'sql' . $v['tbl']} .= (${'sql' . $v['tbl']} ? ',' : '') . $k . "='" . $archiveadd[$k] . "'";
             if ($arr = multi_val_arr($archiveadd[$k], $v)) {
                 foreach ($arr as $x => $y) {
                     ${'sql' . $v['tbl']} .= (${'sql' . $v['tbl']} ? ',' : '') . $k . '_' . $x . "='{$y}'";
                 }
             }
         }
     }
 }
 cu_sqls_deal($channel['cuid'], $archiveadd, $sqlmain, $sqlsub, $sqlcustom);
 //将字段之外的交互资料写入
 $db->query("INSERT INTO {$tblprefix}archives SET " . $sqlmain);
 if (!($aid = $db->insert_id())) {
     $c_upload->closure(1);
     mcmessage('arcsaveerr', axaction(2, M_REFERER));
 } else {
     $c_upload->closure(1, $aid);
     $db->query("INSERT INTO {$tblprefix}archives_rec SET aid='{$aid}'");
     $sqlsub = "aid='{$aid}'" . ($sqlsub ? ',' : '') . $sqlsub;
     $needstatics = '';
     for ($i = 0; $i <= $channel['addnum']; $i++) {
         $needstatics .= $timestamp . ',';
     }
     $sqlsub .= ",needstatics='{$needstatics}'";
     $db->query("INSERT INTO {$tblprefix}archives_sub SET " . $sqlsub);
예제 #2
0
 function addcopy($coid = 0, $ccid = 0)
 {
     //复制到某个栏目或某个分类中,其它的分类如何处理呢?是保持还是放弃//类系中需要一个参数,新增复件是否需要保持属性。//只有单选类系才可能复制
     global $cotypes, $timestamp, $db, $tblprefix, $arc;
     if (!$ccid) {
         return false;
     }
     $this->detail_data();
     $archivenew =& $this->archive;
     if ($archivenew[$coid ? "ccid{$coid}" : 'caid'] == $ccid) {
         return false;
     }
     $chid = $archivenew['chid'];
     foreach (array('coidscp', 'cpkeeps') as $var) {
         ${$var} = $this->channel[$var] ? explode(',', $this->channel[$var]) : array();
     }
     if (!in_array($coid ? $coid : 'caid', $coidscp)) {
         return false;
     }
     $pre_cns = array('caid' => $coid ? $this->archive['caid'] : $ccid);
     //复制到其它类系时,原栏目要保持
     foreach ($cotypes as $k => $v) {
         //其它要保持的类系。
         if (!$v['self_reg'] && in_array($k, $cpkeeps)) {
             if ($coid != $k) {
                 $archivenew["ccid{$k}"] && ($pre_cns["ccid{$k}"] = $archivenew["ccid{$k}"]);
             } else {
                 $pre_cns["ccid{$k}"] = $ccid;
             }
         }
     }
     if (!$this->auser->allow_arcadd($archivenew['chid'], $pre_cns)) {
         return false;
     }
     $sqlmain = $sqlsub = $sqlcustom = '';
     foreach ($pre_cns as $k => $v) {
         $sqlmain .= ($sqlmain ? ',' : '') . "{$k}='{$v}'";
     }
     $keeps = array('sid', 'chid', 'mid', 'mname', 'rpmid', 'dpmid', 'salecp', 'fsalecp', 'atmsize', 'enddate', 'jumpurl');
     foreach ($keeps as $k) {
         $sqlmain .= ($sqlmain ? ',' : '') . "{$k}='" . addslashes($archivenew[$k]) . "'";
     }
     $sqlmain .= ($sqlmain ? ',' : '') . "refreshdate='{$timestamp}',createdate='{$timestamp}'";
     $fields = read_cache('fields', $chid);
     foreach ($fields as $k => $v) {
         if ($v['available'] && !$v['isfunc']) {
             if (!empty($v['istxt'])) {
                 $txtname = saveastxt($archivenew[$k]);
                 ${'sql' . $v['tbl']} .= (${'sql' . $v['tbl']} ? ',' : '') . $k . "='" . addslashes($txtname) . "'";
             } else {
                 ${'sql' . $v['tbl']} .= (${'sql' . $v['tbl']} ? ',' : '') . $k . "='" . addslashes($archivenew[$k]) . "'";
                 if ($arr = multi_val_arr($archivenew[$k], $v)) {
                     foreach ($arr as $x => $y) {
                         ${'sql' . $v['tbl']} .= (${'sql' . $v['tbl']} ? ',' : '') . $k . '_' . $x . "='{$y}'";
                     }
                 }
             }
         }
     }
     cu_sqls_deal($this->channel['cuid'], $archivenew, $sqlmain, $sqlsub, $sqlcustom);
     //将字段之外的交互资料写入
     $db->query("INSERT INTO {$tblprefix}archives SET " . $sqlmain);
     if (!($aid = $db->insert_id())) {
         return false;
     } else {
         $db->query("INSERT INTO {$tblprefix}archives_rec SET aid='{$aid}'");
         $sqlsub = "aid='{$aid}'" . ($sqlsub ? ',' : '') . $sqlsub;
         $sqlsub .= ",needstatics='" . $archivenew['needstatics'] . "'";
         $sqlsub .= ",arctpls='" . $archivenew['arctpls'] . "'";
         $db->query("INSERT INTO {$tblprefix}archives_sub SET " . $sqlsub);
         $sqlcustom = "aid='{$aid}'" . ($sqlcustom ? ',' : '') . $sqlcustom;
         $db->query("INSERT INTO {$tblprefix}archives_{$chid} SET " . $sqlcustom);
         $this->auser->basedeal('archive', 1);
         $aedit = new cls_arcedit();
         $aedit->set_aid($aid);
         $aedit->set_arcurl();
         $aedit->set_cpid(empty($archivenew['cpid']) ? $this->aid : $archivenew['cpid']);
         $this->auser->pmautocheck($channel['autocheck']) && $aedit->arc_check(1, 0);
         $aedit->updatedb();
         unset($aedit);
         if ($this->channel['autostatic']) {
             arc_static($aid);
             unset($arc);
         }
     }
     return true;
 }