示例#1
0
        adminmsg('topiccate_copyfield_none');
    }
    $query = $db->query("SELECT name,type,rules,descrip FROM pw_topicfield WHERE fieldid IN (" . S::sqlImplode($copyfield) . ")");
    while ($rt = $db->fetch_array($query)) {
        $name = $db->get_value("SELECT name FROM pw_topicfield WHERE modelid=" . S::sqlEscape($modelid));
        $db->update("INSERT INTO pw_topicfield SET " . S::sqlSingle(array('name' => $rt['name'], 'fieldname' => $rt['fieldname'], 'modelid' => $modelid, 'type' => $rt['type'], 'rules' => $rt['rules'], 'descrip' => $rt['descrip'])), false);
        $fieldid = $db->insert_id();
        $fieldname = 'field' . $fieldid;
        $tablename = GetTopcitable($modelid);
        $db->update("UPDATE pw_topicfield SET fieldname=" . S::sqlEscape($fieldname) . " WHERE fieldid=" . S::sqlEscape($fieldid));
        $ckfieldname = $db->get_one("SHOW COLUMNS FROM {$tablename} LIKE '{$fieldname}'");
        if ($ckfieldname) {
            $db->update("DELETE FROM pw_topicfield WHERE fieldid=" . S::sqlEscape($fieldid));
            Showmsg('field_have_exists');
        } else {
            $sql = getFieldSqlByType($rt['type']);
            $db->query("ALTER TABLE {$tablename} ADD {$fieldname} {$sql}");
        }
    }
    Showmsg('copy_field_success');
} elseif ($action == 'delfield') {
    define('AJAX', 1);
    S::gp(array('fieldid'));
    $ckfield = $db->get_one("SELECT fieldid,modelid FROM pw_topicfield WHERE fieldid=" . S::sqlEscape($fieldid));
    if ($ckfield) {
        $tablename = GetTopcitable($ckfield['modelid']);
        $fieldname = 'field' . $ckfield['fieldid'];
        $db->update("DELETE FROM pw_topicfield WHERE fieldid=" . S::sqlEscape($fieldid));
        $ckfield2 = $db->get_one("SHOW COLUMNS FROM {$tablename} LIKE '{$fieldname}'");
        if ($ckfield2) {
            $db->query("ALTER TABLE {$tablename} DROP {$fieldname}");
示例#2
0
        }
        if (strlen($descrip) > 255) {
            Showmsg('field_descrip_limit');
        }
        $db->update("INSERT INTO pw_pcfield SET " . pwSqlSingle(array('name' => $name, 'pcid' => $pcid, 'type' => $fieldtype, 'rules' => $s_rules, 'descrip' => $descrip)));
        $fieldid = $db->insert_id();
        $fieldname = 'field' . $fieldid;
        $db->update("UPDATE pw_pcfield SET fieldname=" . pwEscape($fieldname) . " WHERE fieldid=" . pwEscape($fieldid));
        /*$ckfieldname = $db->get_one("SHOW COLUMNS FROM $pcvaluetable LIKE '$fieldname'");
        		if ($ckfieldname) {
        			Showmsg('field_have_exists');
        		} else {
        			$sql = getFieldSqlByType($fieldtype);
        			$db->query("ALTER TABLE $pcvaluetable ADD $fieldname $sql");
        		}*/
        $sql = getFieldSqlByType($fieldtype);
        $db->query("ALTER TABLE {$pcvaluetable} ADD {$fieldname} {$sql}");
        Showmsg('pcfield_add_success');
    }
} elseif ($action == 'editfield') {
    define('AJAX', 1);
    if (!$_POST['step']) {
        $ajax_basename_edit = EncodeUrl($basename . "&action=editfield");
        InitGP(array('fieldid'));
        if (empty($fieldid)) {
            Showmsg('field_not_select');
        }
        $fielddb = $db->get_one("SELECT name,fieldname,rules,type,descrip,ifdel FROM pw_pcfield WHERE fieldid=" . pwEscape($fieldid));
        $count = $db->get_value("SELECT COUNT(*) FROM {$pcvaluetable} WHERE " . $fielddb['fieldname'] . " != ''");
        //查找是否变量已有值
        if ($count || $fielddb['ifdel']) {
示例#3
0
/**
 * 将活动子分类的字段插入数据库
 * @param int $actmid 活动子分类ID
 * @param string $fieldtype 字段类型
 * @param string $name 字段名
 * @param string $descrip 字段描述
 * @param bool $isDefaultField 是否是默认字段(若是,不修改数据表)
 * @param array $option 其它可选参数
 * @global DB 数据库
 */
function insertActivityFieldToDb($actmid, $fieldtype, $name, $descrip, $isDefaultField = 0, $option = null)
{
    global $db;
    is_array($option) || ($option = array());
    $rules = $option['rules'];
    empty($fieldtype) && Showmsg('fieldtype_not_exists');
    $s_rules = getFieldRules($fieldtype, $rules);
    if (strlen($descrip) > 255) {
        Showmsg('field_descrip_limit');
    }
    $insertColumns = array('name' => $name, 'actmid' => $actmid, 'type' => $fieldtype, 'rules' => $s_rules, 'descrip' => $descrip);
    $optionalColumns = array('vieworder', 'ifable', 'ifsearch', 'ifasearch', 'threadshow', 'ifmust', 'ifdel', 'mustenable', 'textwidth', 'sectionname', 'issearchable', 'allowthreadshow');
    $isDefaultField && ($optionalColumns[] = 'fieldname');
    foreach ($optionalColumns as $column) {
        if (array_key_exists($column, $option)) {
            $insertColumns[$column] = $option[$column];
        }
    }
    $db->update("INSERT INTO pw_activityfield SET " . S::sqlSingle($insertColumns));
    if (!$isDefaultField) {
        //不是默认字段,则修改特殊字段表名
        $fieldid = $db->insert_id();
        $fieldname = 'field' . $fieldid;
        $db->update("UPDATE pw_activityfield SET fieldname=" . S::sqlEscape($fieldname) . " WHERE fieldid=" . S::sqlEscape($fieldid));
        $userDefinedValueTableName = getActivityValueTableNameByActmid($actmid, 1, 1);
        $sql = getFieldSqlByType($fieldtype);
        $db->query("ALTER TABLE {$userDefinedValueTableName} ADD {$fieldname} {$sql}");
    }
}