★ 宪法总纲:编辑任何资源的唯一正确姿势

★ 建站顺序另见《云酷德建站流程法》(tempx buildlaw.index,打开章程,2026-10-05 定稿):先名后形 → 计划六表 → 补正 → 开工 → newresname 建名 → 照 funtxt 施工 → samekdatatotab 回填 → 验收。

以前文档里写的是「直接调 API 接口」——那是旧约,作废。所有资源的增删改,一律按下述六步走。

  1. 先登录,拿三件套
    GET 本站域名/localxres/funx/commonlogin/?uid=<账号>&pass=<makepass密文>&sysid=<系统id>
    返回 JSON 的 msg 就是 stoken。随后 Cookie 必须带 三个值:uid、stoken、deadline=time()+3600*72。
    坑:只带 uid+stoken、不带 deadline,会被 heartbeat 的 $leftt>0 拦掉,现象是 302 静默跳转,接口返回空。
  2. 建资源名
    funx.newresname?restype=<类型>&rescode=<域.名>&sysid=<系统>&restitle=<标题>
    Cookie 里的 uid 在 coode_userlist 中必须 PRIME=1。tempx 的 rescode 若含点号,点前是域、点后是单元名;不含点号则自动补 .index。
  3. 查编辑器地址
    到 coode_sysrestypedefine 按 restypecode 查 cloudpath 字段——它就是该类型资源的编辑器地址。
    分水岭:cloudpath 值为 mysql 的,说明这类资源基本不落盘,可以直接改数据;值是一条 URL 的,说明会落盘,必须进编辑器改,直接改库会造成库盘不一致。
  4. 打开编辑器
    编辑器地址不用猜、不用记——去 coode_sysrestypedefine 找到该 restypecode 那一行,读它的 cloudpath 字段,那就是现成的完整编辑器地址,? 后面已经把参数位留好了;你要做的只是把占位符换成资源名或该数据的 SNO 序号。
    三个完整地址示例:
    https://qianjilian.com/localxres/tempx/tempeditor/index.html?unitid=xianfa.index
    https://qianjilian.com/localxres/pagex/htmleditor/WrvLoe/index.html?funid=savefunc
    https://qianjilian.com/localxres/pagex/htmleditor/WrvLoe/index.html?funid=coode_funsetfile@SNO:12345.funfull
  5. 编辑器里能调哪些后端方法
    由 coode_funlist 的 usearea 字段声明:它写明该方法允许被哪个页面调用,形如 tempx.tempeditor.index。
    heartbeat 会把 HTTP Referer 解析成 pgmark(资源类型.目录.单元),拿它和 usearea 比对,不匹配直接判无权。所以「在哪个页面里调」不是形式,是权限本身。
    usearea 为空 = 不限制来源,可从外部调用(如 newresname、savetoseed、makelayfolder)。
  6. 鉴权在哪
    数据集 heartbeat 的 refreshtoken 方法:校验 stoken 是否有效、刷新 coode_loginstoken 有效期、并下发 deadline。所有「为什么明明登录了还是没权限」的答案都在这里。

26 类资源:编辑器完整地址 / 能不能直接改库

下表「编辑器 / 落点」列即 coode_sysrestypedefine.cloudpath 的值(已补全域名前缀),可直接复制使用。

类型主表编辑器 / 落点(完整地址)
funx 函数coode_funlisthttps://qianjilian.com/localxres/pagex/htmleditor/WrvLoe/index.html?funid=<函数名>
clsx 类coode_phpclshttps://qianjilian.com/localxres/pagex/htmleditor/WrvLoe/index.html?funid=<类名>
sfunx 函数集coode_funsetfilehttps://qianjilian.com/localxres/pagex/htmleditor/WrvLoe/index.html?funid=coode_funsetfile@SNO:<该数据序号>.funfull
dfunx 数据函数coode_datafunhttps://qianjilian.com/localxres/pagex/htmleditor/WrvLoe/index.html?funid=coode_funsetfile@SNO:<该数据序号>.funfull
constx 静态量coode_sysconstanthttps://qianjilian.com/localxres/pagex/htmleditor/WrvLoe/index.html?funid=coode_funsetfile@SNO:<该数据序号>.funfull
configx 系统参数coode_sysconfighttps://qianjilian.com/localxres/pagex/htmleditor/WrvLoe/index.html?funid=coode_funsetfile@SNO:<该数据序号>.funfull
tempx 模板coode_domainunithttps://qianjilian.com/localxres/tempx/tempeditor/index.html?unitid=<域.单元>
pagex 页面coode_tinyhttps://qianjilian.com/localxres/tempx/tinylayeditor/index.html?unitid=<域.单元>&tinyid=<tinymark>
mfunx 分布函数coode_multifunlisthttps://qianjilian.com/localxres/tempx/tinylayeditor/index.html?unitid=resuptool.index&tinyid=o16CUI
tabx 表coode_tablisthttps://qianjilian.com/localxres/funx/anyjsshort/?stid=2qPIqS-sfile:anyjsshort.php-&pnum=150:<表名>&page=1:TABLE_NAME&
formx 表单coode_shortdatahttps://qianjilian.com/localxres/funx/anyjsshort/?datatype=html&stid=keydtly-&pnum=100:<shortid>&page=1:shortid&
dataspacex 数据空间coode_dataspacehttps://qianjilian.com/localxres/tempx/dspcmgr/index.html
sysx 系统容器coode_sysinformationmysql:不落盘,可直接改库
appx 应用容器coode_appdefaultmysql:不落盘,可直接改库
layx 输出容器coode_applaymysql:不落盘,可直接改库
cdtrdrx 条件跳转coode_cdtrdrmysql:不落盘,可直接改库
parardrx 参数跳转coode_parardrmysql:不落盘,可直接改库
groupx 一级分类coode_grouplistmysql:不落盘,可直接改库
plotx 节点coode_plotlistmysql:不落盘,可直接改库
csspagex 样式页面coode_facelistmysql:不落盘,可直接改库
iconsetx 图标库coode_iconsetmysql:不落盘,可直接改库
databasex 数据库coode_dblistmysql:不落盘,可直接改库
afunx 事务函数coode_affairfunlistmysql:不落盘,可直接改库
parax 外部框架coode_paramysql:不落盘,可直接改库
apix 接口密钥coode_apipoolmysql:不落盘,可直接改库
smallcssx 小CSScoode_codedemomysql:不落盘,可直接改库
云酷德宪法/数据与存储

data

数据与存储6 种

结构与内容的存放方式,库里定义要和盘上对上。下面每一种都给出操作接口、关键参数和一个可直接跑的示例;要看图解和完整步骤,点「完整操作页」。

数据类:定义存在库里,内容落到盘上,两处要对得上主表coode_tablist字段定义 coode_keydetailxsysshowfun / jsshowfun 决定前端怎么渲染这一格落盘 /localxres/tabx/savetoseed 刷索引,别站能装

图:这一类资源在云酷德体系里所处的位置

资源与 API

6 种

编号说明:本页所有 SNO:8848 都是数据编号示例,仅供参考,非真实数据。真用的时候,先 select SNO from <表> where <定位键>='<资源码>' 查出真实主键再替换。

数据表资源登记。主表 coode_tablist(TABLE_NAME=表名)。字段定义分散在 coode_keydetailx/y/z(列级:显示类型、钩子、SSHOW 脚本)。不落盘、HTTP 访问 403(纯数据,靠主程序消费)。副产物 /localxres/tabx/<表名>/<表名>.js。

主表 coode_tablist键 TABLE_NAME盘 /localxres/tabx/库内 782 条
操作接口关键参数
创建建表 + 登记create table 后写 coode_tablist 与 coode_keydetailx(完整流程见 coode-newtable 技能)
补充savefuncGET fn=SNO:8848.<字段名>@coode_tablist ;POST dt=<新值>
详情SQLselect * from coode_tablist where TABLE_NAME=<资源码>
卸载unstallresrestype=tabx&rescode=<资源码>&sysid=0

建表不只是 create table:要同步 coode_tablist 登记 + coode_keydetailx 写字段定义(sysshowfun 决定前端怎么渲染),完整流程见 coode-newtable 技能。

改一条记录(万能通道 · 编号 8848 为示例,非真实数据)复制
POST 本站域名/localxres/funx/savefunc/?fn=SNO:8848.unittitle@coode_tablist
Cookie: uid=divlovecss; stoken=; deadline=
Content-Type: application/x-www-form-urlencoded
dt=<这一列的新值>
# fn 三种写法:
#   fn=<函数名>                 普通 funx
#   fn=<键>@<表>.<列>            按业务键写某表某列
#   fn=SNO:<主键>.<列>@<表>      按主键写任意表(就是这条)

表单(数据索引)资源。主表 coode_shortdata:shortid=表单码,回答「取哪张表的哪些数据」。配套 coode_shortcss(139) 放扩展代码(diytop/scriptx/stylex…)。落盘 /localxres/formx//index.html(懒生成,首次访问才生成)。

主表 coode_shortdata键 shortid盘 /localxres/formx/库内 1136 条
操作接口关键参数
创建写 coode_shortdatashortid + caseid(列表模板) + detailid(详情模板),再 savetempdata 烤出 JS
补充savefuncGET fn=SNO:8848.<字段名>@coode_shortdata ;POST dt=<新值>
详情SQLselect * from coode_shortdata where shortid=<资源码>
卸载unstallresrestype=formx&rescode=<资源码>&sysid=0

表单靠 caseid(列表模板)和 detailid(详情模板)串联 tempx。烤成 JS 靠 savetempdata,落在 /localxres/tabx/<表>/<shortid>.js,变量名 STDFT<shortid>。

改一条记录(万能通道 · 编号 8848 为示例,非真实数据)复制
POST 本站域名/localxres/funx/savefunc/?fn=SNO:8848.unittitle@coode_shortdata
Cookie: uid=divlovecss; stoken=; deadline=
Content-Type: application/x-www-form-urlencoded
dt=<这一列的新值>
# fn 三种写法:
#   fn=<函数名>                 普通 funx
#   fn=<键>@<表>.<列>            按业务键写某表某列
#   fn=SNO:<主键>.<列>@<表>      按主键写任意表(就是这条)

dataspacex

数据空间完整操作页 →

数据空间(给某类数据一个独立命名空间)。主表 coode_dataspace(datamark)。落盘 /localxres/dataspacex/<名>/。

主表 coode_dataspace键 datamark盘 /localxres/dataspacex/库内 5 条
操作接口关键参数
创建dspbasecoprtNS(空间, 标题, "字段(类型),…") 建空间与结构
补充savefuncGET fn=SNO:8848.<字段名>@coode_dataspace ;POST dt=<新值>
详情SQLselect * from coode_dataspace where datamark=<资源码>
卸载unstallresrestype=dataspacex&rescode=<资源码>&sysid=0

数据空间 = 九张表的小型数据库,操作全靠 dspbasecoprt 函数集:NS 建空间 / ND 新增 / UD 改 / KD 删 / RD 落盘 / SY 读。
⚠ 空间记录里的归属字段存的是 syskey(字符串),不是 sysid 数字,别拼错。

改一条记录(万能通道 · 编号 8848 为示例,非真实数据)复制
POST 本站域名/localxres/funx/savefunc/?fn=SNO:8848.unittitle@coode_dataspace
Cookie: uid=divlovecss; stoken=; deadline=
Content-Type: application/x-www-form-urlencoded
dt=<这一列的新值>
# fn 三种写法:
#   fn=<函数名>                 普通 funx
#   fn=<键>@<表>.<列>            按业务键写某表某列
#   fn=SNO:<主键>.<列>@<表>      按主键写任意表(就是这条)

databasex

数据库完整操作页 →

数据库登记(外部/远端数据库连接信息)。主表 coode_dblist(dbmark)。落盘 /localxres/databasex/<名>/。

主表 coode_dblist键 dbmark盘 /localxres/databasex/库内 4 条
操作接口关键参数
创建写主表 coode_dblistinsert 一条记录,定位键 dbmark;库 + 盘 + 索引要一起对上
补充savefuncGET fn=SNO:8848.<字段名>@coode_dblist ;POST dt=<新值>
详情SQLselect * from coode_dblist where dbmark=<资源码>
卸载unstallresrestype=databasex&rescode=<资源码>&sysid=0

数据库连接登记,主表 coode_dblist,定位键 dbmark。

改一条记录(万能通道 · 编号 8848 为示例,非真实数据)复制
POST 本站域名/localxres/funx/savefunc/?fn=SNO:8848.unittitle@coode_dblist
Cookie: uid=divlovecss; stoken=; deadline=
Content-Type: application/x-www-form-urlencoded
dt=<这一列的新值>
# fn 三种写法:
#   fn=<函数名>                 普通 funx
#   fn=<键>@<表>.<列>            按业务键写某表某列
#   fn=SNO:<主键>.<列>@<表>      按主键写任意表(就是这条)

constx

静态量完整操作页 →

静态量(站点级常量:接口地址、密钥位等)。主表 coode_sysconstant(constantid)。落盘 /localxres/constx/<名>/index.php。

主表 coode_sysconstant键 constantid盘 /localxres/constx/库内 51 条
操作接口关键参数
创建写主表 coode_sysconstantinsert 一条记录,定位键 constantid;库 + 盘 + 索引要一起对上
补充savefuncGET fn=SNO:8848.<字段名>@coode_sysconstant ;POST dt=<新值>
详情SQLselect * from coode_sysconstant where constantid=<资源码>
卸载unstallresrestype=constx&rescode=<资源码>&sysid=0

静态量,主表 coode_sysconstant,定位键 constantid,用来放不常变的常量文本。

改一条记录(万能通道 · 编号 8848 为示例,非真实数据)复制
POST 本站域名/localxres/funx/savefunc/?fn=SNO:8848.unittitle@coode_sysconstant
Cookie: uid=divlovecss; stoken=; deadline=
Content-Type: application/x-www-form-urlencoded
dt=<这一列的新值>
# fn 三种写法:
#   fn=<函数名>                 普通 funx
#   fn=<键>@<表>.<列>            按业务键写某表某列
#   fn=SNO:<主键>.<列>@<表>      按主键写任意表(就是这条)

configx

系统参数完整操作页 →

系统参数(按 sysid + syskey 定位)。主表 coode_sysconfig。不落盘。

主表 coode_sysconfig键 sysid.syskey盘 /localxres/configx/库内 27 条
操作接口关键参数
创建写主表 coode_sysconfiginsert 一条记录,定位键 sysid.syskey;库 + 盘 + 索引要一起对上
补充savefuncGET fn=SNO:8848.<字段名>@coode_sysconfig ;POST dt=<新值>
详情SQLselect * from coode_sysconfig where sysid.syskey=<资源码>
卸载unstallresrestype=configx&rescode=<资源码>&sysid=0

系统参数,主表 coode_sysconfig。⚠ 复合键 sysid.syskey,查询时两个都要给。

改一条记录(万能通道 · 编号 8848 为示例,非真实数据)复制
POST 本站域名/localxres/funx/savefunc/?fn=SNO:8848.unittitle@coode_sysconfig
Cookie: uid=divlovecss; stoken=; deadline=
Content-Type: application/x-www-form-urlencoded
dt=<这一列的新值>
# fn 三种写法:
#   fn=<函数名>                 普通 funx
#   fn=<键>@<表>.<列>            按业务键写某表某列
#   fn=SNO:<主键>.<列>@<表>      按主键写任意表(就是这条)
云酷德宪法 · 分类页 data · 本页也是 tempx 资源 xianfa.data
操作方法随造系统过程持续补充——每实操一次就回来补一段