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

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

云酷德宪法

给 AI Agent 看的造系统指南。云酷德不是被研究的对象,它就是干活的工作台本身—— 写函数、建表、做页面、搬资源,全在这里面完成。

26 种系统资源 系统 = N 个页面 可自我编辑 人与 AI 都能改

第零前提:我们在干什么

先读这段

在使用任何 API 之前,必须先摆正位置。站错位置,写出来的东西一定不对。

云酷德 + 达利安造船厂 = 我们正在用的工作台和工具,不是研究对象

我们的一切工作都发生在云酷德(coode)体系内部:写函数用 funx, 建表用 coode_tablist,做页面用 tempx / pagex, 搬资源用 savetoseed / installpod。

✅ 正确姿势:直接动手用它干活——写个 funx、建张表、改这个 tempx、把资源同步过去。

⛔ 一旦说出下面这类话,就是站错位置了:
「我先去搞清楚云酷德是干什么的」/「让我查一下云酷德有哪些能力定位」/「按云酷德的真实内容来重写」

  • 云酷德 = sysid 0 运行时;达利安造船厂 = sysid 1 制造层。
  • 大莲站在系统里面,是从它里面长出来的一块,不是站在外面做调研、写评估报告的人。
  • 日常主战场:千机连站(下文一律统称「本站域名」,不写真实地址); 母系统:云酷德主站 divlovecss.com。

造系统的原理

核心机制

理解这条公式,就能用云酷德造出任意系统——包括云酷德它自己。

① 四层容器 sysx 系统 appx 应用 layx 输出 pagex 页面 ② 一个页面 = 若干种资源 tempx 模板 formx 表单 funx 函数 tabx 表 mfunx 分布 dataspacex smallcssx 其余 19 种 ③ 页面建完 + 资源关联好 = 系统成了 一个可用的系统 云酷德能编辑它自己(自指)

图:系统 = N 个页面;页面 = 若干种资源;ƣ 起来就是系统,而且这套结构能反过来自我编辑

坑 5

照本页写的 savefunc 通道,回「成功」却一字没改

分支根本没进去

现象:照上面写的 fn=SNO:<主键>.<列>@<表> 调 savefunc,三种写法挨个试,一律回 {"status":"1","msg":"提交成功"}, 但查库发现目标列纹丝没动。

原因(读源码确认):它在进 SNO 分支之前先查一句 select ... from coode_funlist where funname='<fn>', 而 fn 是 SNO:8848.xxx@tbl 这种串,必然 0 行; 于是 if ($totrst>0) 不成立,SNO 分支整个被跳过, 一路走到结尾直接 echo "提交成功"。还是那个套路: 裸拼 SQL + 无条件返回成功。

修法:按铁哥的规矩——没有现成方法就自己写个 funx。 本站已建 funx.tdsetcell: GET 本站域名/localxres/funx/tdsetcell/?tb=<表>&col=<列>&key=<定位列>&kv=<值>&v=<新值> 。它内部用 dyh() 拼单引号、UX() 执行, 并且只允许写 coode_ / cdai_ 开头的系统表,避免误伤业务数据。 写 funx 正文时同样守那五条铁律:不带 php 头、不写正则、 零反斜杠、裸单引号用 dyh() 拼、% 后必须空格或括号。

验收:写完立刻 select <列> from <表> where <定位列>='<值>' 比对——值真的变了才算数,别信返回的 status。

顺带一条(铁哥 2026-10-01 定):资源最后要显式设 sysid。 新建资源时系统给的默认值往往是某个业务系统(本站实测落到 cloudbook 云草书院),未必是你想要的那个。 不确定归哪个系统就挂 0 或 1(0=酷德引擎,1=达利安造船厂), 跨系统、跨站都能用。改完 sysid 一定重刷一次 vermd5 (savetoseed,或快通道 getsysresver), 否则版本号还是旧的,别站照样装不走。
对 Agent 的含义:你不需要"学习一个陌生产品",你只需要调用这些资源的增删改查接口去拼装页面。 每造一个页面,就是往系统里填一组成员;填够了,系统就跑起来了。 26 种资源按四大类分组,点下面的分类进去看它们的 API 详情。
2026-10-05 起:本站建站一律按《云酷德建站流程法》执行。先名后形 → 计划六表 → 补正 → 开工 → newresname 建名 → 照 funtxt 施工 → samekdatatotab 回填 → 验收。三条硬杠:tabx 表名必须「系统英文名_」打头;第四层只有 pagex(没有 tinyx);资源建成三态看 STCODE(空=未建)与 PRIME/STATUS(已填/必填)。→ 打开章程(tempx buildlaw.index)

26 种系统资源 · 四大类 + 建站计划层

点进去看 API 详情

每一类下面列出该类所有资源的操作接口、参数与可直接跑的示例; 再往里点单个资源,有它的完整操作页(图解 + 创建 / 调用 / 维护 / 卸载)。最前面的计划与建站是方法类:先在 cdai_ 计划层把要建什么写清楚,再逐层生成真实资源。

动手前两条铁律

必读

所有资源的生成都走 HTTP 接口,端点统一在 /localxres/funx/ 下。

必带请求头复制
Cookie: uid=divlovecss; stoken=; deadline=
Content-Type: application/x-www-form-urlencoded
# 端点格式(把「本站域名」换成云酷德站点的真实域名)
本站域名/localxres/funx/<函数名>/
铁律一:必须带 Cookie。不带的话库里 CRTOR 等归属字段会被写成空,资源变成"无主"。
铁律二:站点上不允许直接写文件。资源只能用系统指定的方法生成,或自己写个 funx 让系统去写; 禁止 SFTP put / cp 覆盖。因为一个资源要「库 + 盘 + resdata 索引 + sysregres 登记」四处一致, 只写盘会造成「盘有、库没存好」,编辑器取到也改不动。
(例外:广州服务器是我的专属工作台,可以直接写。)
提交正文要做 mkstr 加工。服务端会跑 unstrs():\(反斜杠) 会被直接删光,换行用 ,' & + = ? 各有转义。所以源码里不要写正则。

实战踩坑

接口说成功 ≠ 真的写进去了

建这套 SDK 时,27 个 tempx 有 26 个连续踩进同一个坑。全部记录的结论在这里: 一个是"接口回成功、库里空着",一个是"改了样式页面不变",还有"资源登记了别站装不走"。 每一条都是实测出来的,配修法与验收方法。

坑 1

接口回「生成成功」,库里一条记录都没有

裸拼 SQL + 无条件返回成功

现象:anahtmlcode 返回 <"status":"1","wbinfo":<"isnew":1,"fileok":1>>,盘上 html 也落了, 但 coode_domainunit 里查不到这条记录。

原因(读源码确认):它的 insert 是裸拼字符串,全程无转义: $sqly="'$utitle','$um',…,'".gohex($bodyo)."',…"; 而 $isnew="1" 是无条件赋值——insert 炸了照样写 1。 正文里只要有裸单引号(SQL 示例 where key='xxx'、Python 的 'utf8'), 这条 SQL 就被拼炸,静默失败。

修法:提交前把正文的裸单引号写成 HTML 实体 BODY.replace("'", "'")(浏览器照样显示 ',SQL 也安全)。

验收:接口返回不算数,必须查库数条数—— select count(*) from coode_domainunit where dumark='域.名',0 就是没写进去。

坑 2

内容里有 TYPE_HEX 字样,哈希函数就不转码了

最隐蔽的一个

现象:记录进库了,pagehtml / casecode / VRT 全是 0——只有一条空壳。

原因:gohex() 的实现是—— if (strpos($vlsx,"TYPE:HEX:")>0)< return $vlsx; >, 只要内容里出现过这一串,它就认为"已经是十六进制了",原样放行、不转码。 而本 SDK 的正文里满屏都是 dTYPE:HEX: 这个教学字样, 于是明文直接进裸拼 SQL → 被 casecode 里包裹的正则引号炸掉。 同时 savetempdata 末尾的 echo "1" 只看 domain/mark 非空,与 SQL 成败无关 → 还是回"成功"。

修法:BODY.replace('TYPE:HEX:', 'TYPE:HEX:') —— 用一个转义冒号,显示一模一样,但哈希函数就不再被骗过了。

验收:select length(pagehtml),length(casecode) from coode_domainunit where dumark='域.名', 两个都要 > 0 才算真的建成(光看记录在不在会被骗)。

坑 3

改了公共样式,页面却一点没变

资源不是文件

现象:本地改了 api_style.css,页面也重建了, 但浏览器里新样式完全不生效——整块裸成纯文字、元素全挤在一起; 而 <link> 请求明明返回 200 text/css。

原因:页面引用的 CSS 不是文件,是一个 funx 资源。 /localxres/funx/xianfacss/ 的内容来自 coode_funlist, 改本地文件不会自动同步。不提交 = 线上还是旧 CSS (实测旧版 13406 字节里根本没有新加的 .cg-cats,所以新结构没样式)。

修法(改样式三件套,缺一不可): ① 用 savefunc 重新提交 CSS 到 funx; ② 重建页面(savetempdata 会把 cssfiles 写回库); ③ 取回线上 CSS,grep 新加的类名确认是新的。

顺手一条:引用写法就用 目录/?.扩展名(如 /localxres/funx/xianfacss/?.css)。实测它是 200; 改成 目录/目录.css 反而 404。那个 ? 不是查询串, 是端点用来识别输出类型的。

坑 4

资源在库里,别的站却装不走

漏了登记这一步

现象:本地用得好好的 funx,别的站 installpod 装不过来。

原因:新写的资源不会自动进登记表。 要跨站搬运,必须补两步:① coode_sysregres 登记 (写 restype / resmark / restitle / grpid); ② 调 savetoseed 刷 vermd5—— 这个版本号就是别站判断"要不要装/装哪版"的依据,空着就搬不走。

修法: GET 本站域名/localxres/funx/savetoseed/?restype=funx&sysid=0&resmark=<名> ;登记则 insert 一条 coode_sysregres。

验收:select vermd5 from coode_funlist where funname='<名>' 不再为空;再取一次 savetoseed 的返回应为「保存成功」。

一句话总结这五个坑:云酷德的老接口普遍是 裸拼 SQL + 无条件返回成功,而且资源不是文件。 所以任何时候都别信"返回成功",唯一可信的验收是查库看字段 + 取回资源看内容。
云酷德宪法 · 由大莲在云酷德内部生成 · 本页本身也是一个 tempx 资源(xianfa.index)
;建站以 《云酷德建站流程法》(tempx buildlaw.index) 为准 资源操作方法会在造系统的过程中持续补充——每操作一种资源,就补全一页;
踩过的坑也一并记在本页「实战踩坑」里,让后来的 Agent 不必重踩