www.gusucode.com > 08CMS空白站群系统 3.3 繁体 UTF-8 > upload/adminm/albumadd.inc.php
<?php !defined('M_COM') && exit('No Permission'); include_once M_ROOT."./include/fields.fun.php"; include_once M_ROOT."./include/fields.cls.php"; include_once M_ROOT."./include/upload.cls.php"; include_once M_ROOT."./include/arcedit.cls.php"; include_once M_ROOT."./include/commu.fun.php"; include_once M_ROOT."./include/notice.cls.php"; load_cache('permissions,vcps,cotypes'); load_cache('catalogs,altypes',$sid); !$curuser->checkforbid('issue') && mcmessage(lang('userisforbid')); //合辑类型及模型的定义及权限。 $atid = empty($atid) ? 0 : max(0,intval($atid)); if(!$atid || !($altype = read_cache('altype',$atid,'',$sid))) amessage(lang('confirmchoose altype')); //合辑的类目权限应以合辑id为准 !$curuser->pmsbyugids($altype['ugids']) && mcmessage(lang('nohave').$altype['cname'].lang('of issue permission')); //分析模型定义 if(!($chid = $altype['chid']) || !($channel = read_cache('channel',$chid))) mcmessage(lang('confirmchoose album cover channel')); //分析栏目定义及权限 $caid = empty($caid) ? 0 : max(0,intval($caid)); if($caid){ !($catalog = read_cache('catalog',$caid,'',$sid)) && mcmessage(lang('confirmchoose catalog')); !$curuser->pmbypmids('issue',$catalog['permission']) && mcmessage(lang('current user nohave point catalog of issue permission')); !in_array($atid,explode(',',$catalog['atids'])) && mcmessage($catalog['title'].lang('catalog cannot add').$altype['cname']); } //指定合辑内添加文档 $pid = empty($pid) ? 0 : max(0,intval($pid)); $forward = empty($forward) ? M_REFERER : $forward; $forwardstr = '&forward='.rawurlencode($forward); $fields = read_cache('fields',$chid); if(!submitcheck('barchiveadd')){ $a_field = new cls_field; tabheader($altype['cname'].' - '.lang('catas and album setting'),'archiveadd',"?chid=$chid&action=albumadd&atid=$atid$param_suffix$forwardstr",2,1,1); $submitstr = ''; //栏目定义 trbasic(lang('belong catalog'),'archiveadd[caid]',umakeoption(ucaidsarr($atid,1),$caid),'select'); //类别定义 foreach($cotypes as $k => $v){ if(!$v['self_reg'] && !$v['ctype'] && (!$v['chids'] || !in_array($chid,explode(',',$v['chids'])))){ $optionarr = empty($v['notblank']) ? array('0' => array('title' =>lang('nosetting'))) : array(); $optionarr = $optionarr + uccidsarr($k,$atid,1); trbasic($v['cname'],"archiveadd[cotype$k]",umakeoption($optionarr),'select'); } } //用archiveadd[pids][]的数组传送需要归入的合辑 if($pid && $row = $db->fetch_one("SELECT aid,sid,atid,arcurl,subject FROM {$tblprefix}archives WHERE aid=$pid")){//指定合辑内添加文档的信息提示 trhidden('archiveadd[pids][]',$pid); $row['arcurl'] = view_arcurl($row); trbasic(lang('belong album'),'',$altypes[$row['atid']]['cname']." - <a href=$row[arcurl] target=\"_blank\">".mhtmlspecialchars($row['subject'])."</a>",''); unset($row); }else{ foreach($altypes as $k => $v){//个人合辑允许直接加入 if(($v = read_cache('altype',$k,'',$sid)) && $v['oneuser'] && !$v['onlyload'] && in_array($atid,$v['atids'])){ tr_abids('archiveadd[pids]',$k);//个人合辑列表 } } trbasic(lang('handwork input belong album id'),"archiveadd[pids][]"); } //个人分类定义 $ucidsarr = array('0' => lang('nosetting coclass')) + loaduclasses($curuser->infos['mid']); trbasic(lang('my coclass'),'archiveadd[ucid]',makeoption($ucidsarr),'select'); tabfooter(); tabheader($altype['cname'].' - '.lang('content setting')); foreach($fields as $k => $field){ if($field['available'] && !$field['isadmin'] && !$field['isfunc']){ $a_field->init(); $a_field->field = read_cache('field',$chid,$k); $a_field->isadd = 1; $a_field->trfield('archiveadd'); $submitstr .= $a_field->submitstr; } } tabfooter(); unset($a_field); tabheader($altype['cname'].' - '.lang('permission setting')); trbasic(lang('content permission project'),'archiveadd[permission]',makeoption(pmidsarr(1),'0'),'select'); trbasic(lang('browse archive saleprice'),'archiveadd[salecp]',makeoption(array('' => lang('freesale')) + $vcps['sale']),'select'); trbasic(lang('attachment operate saleprice'),'archiveadd[fsalecp]',makeoption(array('' => lang('freesale')) + $vcps['fsale']),'select'); $submitstr .= tr_regcode('archive'); tabfooter('barchiveadd'); check_submit_func($submitstr); }else{ if(!regcode_pass('archive',empty($regcode) ? '' : trim($regcode))) mcmessage(lang('regcode error')); //分析栏目的定义及权限 if(empty($archiveadd['caid']) || !($catalog = read_cache('catalog',$archiveadd['caid'],'',$sid))) mcmessage(lang('confirmchoose catalog')); if(!in_array($atid,explode(',',$catalog['atids']))) mcmessage($catalog['title'].lang('catalog cannot add').$altype['cname']); if(!$curuser->pmbypmids('issue',$catalog['permission'])) mcmessage(lang('current user nohave point catalog of issue permission')); $sqlmain = "sid='$sid',atid='$atid',caid='$archiveadd[caid]',chid='$chid',mid='$memberid',mname='".$curuser->infos['mname']."',createdate='$timestamp',needstatic='$timestamp',ucid='$archiveadd[ucid]'"; //分析分类的定义及权限 foreach($cotypes as $coid => $cotype){ if(!$cotype['self_reg'] && !$cotype['ctype'] && (!$cotype['chids'] || !in_array($chid,explode(',',$cotype['chids'])))){ $archiveadd["cotype$coid"] = empty($archiveadd["cotype$coid"]) ? 0 : $archiveadd["cotype$coid"]; if(!empty($archiveadd["cotype$coid"])){ $coclass = read_cache('coclass',$coid,$archiveadd["cotype$coid"]); if(empty($coclass) || !in_array($atid,explode(',',$coclass['atids'])) || !$curuser->pmbypmids('issue',$coclass['permission'])) $archiveadd["cotype$coid"] = 0; } $sqlmain .= ",cotype$coid = ".$archiveadd["cotype$coid"]; } } unset($catalog,$coclass); //权限方案与出售 $sqlmain .= ",permission='".$archiveadd['permission']."'"; $sqlmain .= ",salecp='".$archiveadd['salecp']."'"; $sqlmain .= ",fsalecp='".$archiveadd['fsalecp']."'"; $c_upload = new cls_upload; $fields = fields_order($fields); $a_field = new cls_field; foreach($fields as $k => $field){ if($field['available'] && !$field['isadmin'] && !$field['isfunc']){ $a_field->init(); $a_field->field = read_cache('field',$chid,$k); $a_field->deal('archiveadd'); if(!empty($a_field->error)){ $c_upload->rollback(); mcmessage($a_field->error,M_REFERER); } $archiveadd[$k] = $a_field->newvalue; } } unset($a_field); $oldarr = array(); $cu_ret = cu_fields_deal($channel['cuid'],'archiveadd',$oldarr); $cu_ret && mcmessage($cu_ret,M_REFERER); $fields['keywords']['available'] && $archiveadd['keywords'] = keywords($archiveadd['keywords']); $fields['author']['available'] && $archiveadd['author'] = empty($archiveadd['author']) ? $curuser->infos['mname'] : $archiveadd['author']; if($arcautoabstract && $fields['abstract']['available'] && !$fields['abstract']['isadmin'] && $channel['autoabstract'] && empty($archiveadd['abstract']) && isset($archiveadd[$channel['autoabstract']])){ $archiveadd['abstract'] = autoabstract($archiveadd[$channel['autoabstract']]); } if($arcautothumb && $fields['thumb']['available'] && !$fields['thumb']['isadmin'] && $channel['autothumb'] && empty($archiveadd['thumb']) && isset($archiveadd[$channel['autothumb']])){ $field = read_cache('field',$chid,'thumb'); $archiveadd['thumb'] = $c_upload->thumb_pick(stripslashes($archiveadd[$channel['autothumb']]),$fields[$channel['autothumb']]['datatype'],$field['rpid']); } if($channel['autosize'] && !empty($archiveadd[$channel['autosize']])){ $archiveadd['atmsize'] = atm_size(stripslashes($archiveadd[$channel['autosize']]),$fields[$channel['autosize']]['datatype'],$channel['autosizemode']); $sqlmain .= ",atmsize='".$archiveadd['atmsize']."'"; } $sqlsub = $sqlcustom = ''; foreach($fields as $k => $field){ if($field['available'] && !$field['isadmin'] && !$field['isfunc']){ if(!empty($field['istxt'])) $archiveadd[$k] = saveastxt(stripslashes($archiveadd[$k])); ${'sql'.$field['tbl']} .= (${'sql'.$field['tbl']} ? ',' : '').$k."='".$archiveadd[$k]."'"; } } cu_sqls_deal($channel['cuid'],$archiveadd,$sqlmain,$sqlsub,$sqlcustom);//将字段之外的交互资料写入 $db->query("INSERT INTO {$tblprefix}archives SET ".$sqlmain); if(!$aid = $db->insert_id()){ mcmessage(lang('album add failed !'),M_REFERER); }else{ $db->query("INSERT INTO {$tblprefix}archives_rec SET aid='$aid'"); $sqlsub = "aid='$aid'".($sqlsub ? ',' : '').$sqlsub; $db->query("INSERT INTO {$tblprefix}archives_sub SET ".$sqlsub); $sqlcustom = "aid='$aid'".($sqlcustom ? ',' : '').$sqlcustom; $db->query("INSERT INTO {$tblprefix}archives_$chid SET ".$sqlcustom); $curuser->basedeal('archive',1); $c_notice = new cls_notice;//通知文档更新记录 $aedit = new cls_arcedit; $aedit->set_aid($aid); $aedit->set_arcurl(0); if($channel['autocheck']) $aedit->arc_check(1,0); $aedit->updatedb(); if(!empty($archiveadd['pids'])){//归辑设置,与文档数据库无关 foreach($archiveadd['pids'] as $pid) $aedit->set_album($pid); } unset($aedit); if($channel['autostatic']){ include_once M_ROOT."./include/arc_static.fun.php"; arc_static($aid); unset($arc); } if(!empty($c_upload->ufids)){ $db->query("UPDATE {$tblprefix}userfiles SET aid=$aid WHERE ufid IN (".mimplode($c_upload->ufids).")"); } $c_notice->deal();//通知文档更新记录 } $c_upload->saveuptotal(1); mcmessage(lang('album add finish'),$forward); } ?>