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

★ 建站顺序另见《云酷德建站流程法》(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:不落盘,可直接改库
云酷德宪法/容器与结构

sys

容器与结构8 种

不产出内容,负责把页面组织成一个系统。下面每一种都给出操作接口、关键参数和一个可直接跑的示例;要看图解和完整步骤,点「完整操作页」。

容器类:不产出内容,负责把页面组织成一个系统sysx 系统容器整个系统的根appx 应用容器一个应用layx 输出容器页面挂在哪pagex 页面末端产物本资源:sysx主表 coode_sysinformation落盘 /localxres/sysx/

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

资源与 API

8 种

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

sysx

系统容器完整操作页 →

系统容器(四层容器树第 1 层)。主表 coode_sysinformation,sysid=系统码、sysname=中文名。共 11 个系统。

主表 coode_sysinformation键 sysid盘 /localxres/sysx/库内 11 条
操作接口关键参数
创建写 coode_sysinformationsysid(数字) + syskey(字符串) + sysname
补充savefuncGET fn=SNO:8848.<字段名>@coode_sysinformation ;POST dt=<新值>
详情SQLselect * from coode_sysinformation where sysid=<资源码>
卸载unstallresrestype=sysx&rescode=<资源码>&sysid=0

系统容器 = 四层树的第一层:sysx → appx → layx → pagex。⚠ coode_sysinformation 有两种标识:sysid(数字)和 syskey(字符串)。

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

appx

应用容器完整操作页 →

应用容器(四层容器树第 2 层:sysx→appx→layx→pagex)。主表 coode_appdefault(appid)。共 50 条。

主表 coode_appdefault键 appid盘 /localxres/appx/库内 50 条
操作接口关键参数
创建写 coode_appdefaultappid 定位,挂在 sysx 下
补充savefuncGET fn=SNO:8848.<字段名>@coode_appdefault ;POST dt=<新值>
详情SQLselect * from coode_appdefault where appid=<资源码>
卸载unstallresrestype=appx&rescode=<资源码>&sysid=0

应用容器,主表 coode_appdefault,定位键 appid。挂在 sysx 下。

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

layx

输出容器完整操作页 →

输出容器(四层容器树第 3 层)。主表 coode_applay(layid)。共 712 条。

主表 coode_applay键 layid盘 /localxres/layx/库内 712 条
操作接口关键参数
创建写 coode_applaylayid 定位,页面挂在 layx 下
补充savefuncGET fn=SNO:8848.<字段名>@coode_applay ;POST dt=<新值>
详情SQLselect * from coode_applay where layid=<资源码>
卸载unstallresrestype=layx&rescode=<资源码>&sysid=0

输出容器,主表 coode_applay,定位键 layid。页面挂在 layx 下输出。

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

页面实例(末端产物)。主表 coode_tiny:tinymark=页面码,tempid=来源模板、shortid=来源表单。落盘 /localxres/pagex///.html。合体产物表 coode_unittiny(347,pagehtml 全 H…

主表 coode_tiny键 tinymark盘 /localxres/pagex/库内 795 条
操作接口关键参数
创建写 coode_tinytinymark 定位,挂到 layx 下面
补充savefuncGET fn=SNO:8848.<字段名>@coode_tiny ;POST dt=<新值>
详情SQLselect * from coode_tiny where tinymark=<资源码>
卸载unstallresrestype=pagex&rescode=<资源码>&sysid=0

页面是末端产物:系统 = N 个页面。主表 coode_tiny,定位键 tinymark。通用列表页入口 /localxres/funx/anyjsshort/?stid=<shortid>-pnum:30-。

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

groupx

一级分类完整操作页 →

一级分类(分类树的顶层)。主表 coode_grouplist(plotmark),子级在 coode_grpclass.clsmark。

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

一级分类,主表 coode_grouplist,定位键 plotmark(与 plotx 同名键,注意别混)。

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

节点 / 菜单项。主表 coode_plotlist(plotmark),明细在 coode_plotdetail(layid)。不落盘。

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

节点,主表 coode_plotlist,定位键 plotmark。节点挂在分类下面构成树。

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

cdtrdrx

条件跳转完整操作页 →

条件跳转。主表 coode_cdtrdr(cdtmark + cdtval 两个列)。落盘 /localxres/cdtrdrx/<名>/。

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

条件跳转,主表 coode_cdtrdr。⚠ 复合键是 cdtmark.cdtval,中间那个点是分隔,不是列拼接,别无脑 CONCAT。

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

parardrx

参数跳转完整操作页 →

参数跳转(按参数名把请求跳到不同目标)。主表 coode_parardr(paramark)。落盘 /localxres/parardrx/<名>/。

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

参数跳转,主表 coode_parardr,定位键 paramark。

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