Example #1
0
 $db->query("INSERT INTO {$tblprefix}channels SET {$sqlstr}");
 if ($chid = $db->insert_id()) {
     $db->query("CREATE TABLE {$tblprefix}archives_{$chid} (aid mediumint(8) unsigned NOT NULL default '0',PRIMARY KEY (aid))" . (mysql_get_server_info() > '4.1' ? " ENGINE=MYISAM DEFAULT CHARSET={$dbcharset}" : " TYPE=MYISAM"));
     //将系统的已有通用字段转入进来
     foreach ($initfields as $field) {
         $sqlstr = "chid='{$chid}',available='1'";
         foreach ($field as $key => $val) {
             !in_array($key, array('fid', 'chid', 'available')) && ($sqlstr .= (!$sqlstr ? '' : ',') . "{$key}='" . addslashes($val) . "'");
         }
         $db->query("INSERT INTO {$tblprefix}fields SET {$sqlstr}");
         if (!($fid = $db->insert_id())) {
             continue;
         }
         $stepadds['fields'][] = $fid;
     }
     cu_addfields($chid, $v['cuid']);
     //将模型专用的字段转入进来
     $fields = oread_cache('fields', $k, '', 'cache');
     foreach ($fields as $k1 => $v1) {
         if ($v1['tbl'] == 'custom') {
             //只转入模型定义的字段
             $fieldnew = oread_cache('field', $k, $k1, 'cache');
             $fieldnew = maddslashes($fieldnew);
             $fconfigarr = array('errorurl' => '', 'enamearr' => $usednames['fields'], 'altertable' => $tblprefix . 'archives_' . $chid, 'fieldtable' => $tblprefix . 'fields', 'sqlstr' => "chid={$chid},iscustom='1',available='1',tbl='custom'", 'filterstr' => "/[^a-zA-Z_0-9]+|^[0-9_]+|^ccid(.*?)/");
             list($fmode, $fnew, $fsave) = array('a', true, true);
             include M_ROOT . "./include/fields/{$v1['datatype']}.php";
             if (!($fid = $db->insert_id())) {
                 continue;
             }
             $stepadds['fields'][] = $fid;
             //记录增加字段
Example #2
0
            $sqlstr = '';
            if (@$commus[$channeladd['cuid']]['cclass'] == 'answer') {
                $sqlstr = "question text NOT NULL,";
            }
            $customtable = "archives_{$chid}";
            $db->query("CREATE TABLE {$tblprefix}{$customtable} (\n\t\t\t\t\t\taid mediumint(8) unsigned NOT NULL default '0',\n\t\t\t\t\t\t{$sqlstr}\n\t\t\t\t\t\tPRIMARY KEY (aid))" . (mysql_get_server_info() > '4.1' ? " ENGINE=MYISAM DEFAULT CHARSET={$dbcharset}" : " TYPE=MYISAM"));
            foreach ($initfields as $field) {
                $sqlstr = "chid='{$chid}',available='1'";
                foreach ($field as $k => $v) {
                    if (!in_array($k, array('fid', 'chid', 'available'))) {
                        $sqlstr .= ",{$k}='" . addslashes($v) . "'";
                    }
                }
                $db->query("INSERT INTO {$tblprefix}fields SET {$sqlstr}");
            }
            cu_addfields($chid, $channeladd['cuid']);
            updatecache('channels');
            updatecache('fields', $chid);
        }
        adminlog(lang('add_arc_channel'));
        amessage('arcchanneladdfinish', "?entry=channels&action=channeledit{$param_suffix}");
    }
} elseif ($action == 'channelcopy' && $chid) {
    $forward = empty($forward) ? M_REFERER : $forward;
    if (!submitcheck('bchannelcopy')) {
        $channel = read_cache('channel', $chid);
        $fields = read_cache('fields', $chid);
        $cuidsarr = array(0 => lang('default')) + cuidsarr();
        tabheader(lang('arc_channel_copy'), 'channelcopy', "?entry=channels&action=channelcopy&chid={$chid}&forward=" . rawurlencode($forward), 2, 0, 1);
        trbasic(lang('soc_channel_name'), '', $channel['cname'], '');
        trbasic(lang('soc_ccommu_config'), '', $cuidsarr[$channel['cuid']], '');