★ 建站顺序另见《云酷德建站流程法》(tempx buildlaw.index,打开章程,2026-10-05 定稿):先名后形 → 计划六表 → 补正 → 开工 → newresname 建名 → 照 funtxt 施工 → samekdatatotab 回填 → 验收。
以前文档里写的是「直接调 API 接口」——那是旧约,作废。所有资源的增删改,一律按下述六步走。
GET 本站域名/localxres/funx/commonlogin/?uid=<账号>&pass=<makepass密文>&sysid=<系统id>msg 就是 stoken。随后 Cookie 必须带 三个值:uid、stoken、deadline=time()+3600*72。$leftt>0 拦掉,现象是 302 静默跳转,接口返回空。funx.newresname?restype=<类型>&rescode=<域.名>&sysid=<系统>&restitle=<标题>coode_userlist 中必须 PRIME=1。tempx 的 rescode 若含点号,点前是域、点后是单元名;不含点号则自动补 .index。coode_sysrestypedefine 按 restypecode 查 cloudpath 字段——它就是该类型资源的编辑器地址。cloudpath 值为 mysql 的,说明这类资源基本不落盘,可以直接改数据;值是一条 URL 的,说明会落盘,必须进编辑器改,直接改库会造成库盘不一致。coode_sysrestypedefine 找到该 restypecode 那一行,读它的 cloudpath 字段,那就是现成的完整编辑器地址,? 后面已经把参数位留好了;你要做的只是把占位符换成资源名或该数据的 SNO 序号。https://qianjilian.com/localxres/tempx/tempeditor/index.html?unitid=xianfa.indexhttps://qianjilian.com/localxres/pagex/htmleditor/WrvLoe/index.html?funid=savefunchttps://qianjilian.com/localxres/pagex/htmleditor/WrvLoe/index.html?funid=coode_funsetfile@SNO:12345.funfullcoode_funlist 的 usearea 字段声明:它写明该方法允许被哪个页面调用,形如 tempx.tempeditor.index。pgmark(资源类型.目录.单元),拿它和 usearea 比对,不匹配直接判无权。所以「在哪个页面里调」不是形式,是权限本身。heartbeat 的 refreshtoken 方法:校验 stoken 是否有效、刷新 coode_loginstoken 有效期、并下发 deadline。所有「为什么明明登录了还是没权限」的答案都在这里。下表「编辑器 / 落点」列即 coode_sysrestypedefine.cloudpath 的值(已补全域名前缀),可直接复制使用。
| 类型 | 主表 | 编辑器 / 落点(完整地址) |
|---|---|---|
| funx 函数 | coode_funlist | https://qianjilian.com/localxres/pagex/htmleditor/WrvLoe/index.html?funid=<函数名> |
| clsx 类 | coode_phpcls | https://qianjilian.com/localxres/pagex/htmleditor/WrvLoe/index.html?funid=<类名> |
| sfunx 函数集 | coode_funsetfile | https://qianjilian.com/localxres/pagex/htmleditor/WrvLoe/index.html?funid=coode_funsetfile@SNO:<该数据序号>.funfull |
| dfunx 数据函数 | coode_datafun | https://qianjilian.com/localxres/pagex/htmleditor/WrvLoe/index.html?funid=coode_funsetfile@SNO:<该数据序号>.funfull |
| constx 静态量 | coode_sysconstant | https://qianjilian.com/localxres/pagex/htmleditor/WrvLoe/index.html?funid=coode_funsetfile@SNO:<该数据序号>.funfull |
| configx 系统参数 | coode_sysconfig | https://qianjilian.com/localxres/pagex/htmleditor/WrvLoe/index.html?funid=coode_funsetfile@SNO:<该数据序号>.funfull |
| tempx 模板 | coode_domainunit | https://qianjilian.com/localxres/tempx/tempeditor/index.html?unitid=<域.单元> |
| pagex 页面 | coode_tiny | https://qianjilian.com/localxres/tempx/tinylayeditor/index.html?unitid=<域.单元>&tinyid=<tinymark> |
| mfunx 分布函数 | coode_multifunlist | https://qianjilian.com/localxres/tempx/tinylayeditor/index.html?unitid=resuptool.index&tinyid=o16CUI |
| tabx 表 | coode_tablist | https://qianjilian.com/localxres/funx/anyjsshort/?stid=2qPIqS-sfile:anyjsshort.php-&pnum=150:<表名>&page=1:TABLE_NAME& |
| formx 表单 | coode_shortdata | https://qianjilian.com/localxres/funx/anyjsshort/?datatype=html&stid=keydtly-&pnum=100:<shortid>&page=1:shortid& |
| dataspacex 数据空间 | coode_dataspace | https://qianjilian.com/localxres/tempx/dspcmgr/index.html |
| sysx 系统容器 | coode_sysinformation | mysql:不落盘,可直接改库 |
| appx 应用容器 | coode_appdefault | mysql:不落盘,可直接改库 |
| layx 输出容器 | coode_applay | mysql:不落盘,可直接改库 |
| cdtrdrx 条件跳转 | coode_cdtrdr | mysql:不落盘,可直接改库 |
| parardrx 参数跳转 | coode_parardr | mysql:不落盘,可直接改库 |
| groupx 一级分类 | coode_grouplist | mysql:不落盘,可直接改库 |
| plotx 节点 | coode_plotlist | mysql:不落盘,可直接改库 |
| csspagex 样式页面 | coode_facelist | mysql:不落盘,可直接改库 |
| iconsetx 图标库 | coode_iconset | mysql:不落盘,可直接改库 |
| databasex 数据库 | coode_dblist | mysql:不落盘,可直接改库 |
| afunx 事务函数 | coode_affairfunlist | mysql:不落盘,可直接改库 |
| parax 外部框架 | coode_para | mysql:不落盘,可直接改库 |
| apix 接口密钥 | coode_apipool | mysql:不落盘,可直接改库 |
| smallcssx 小CSS | coode_codedemo | mysql:不落盘,可直接改库 |
给 AI Agent 看的造系统指南。云酷德不是被研究的对象,它就是干活的工作台本身—— 写函数、建表、做页面、搬资源,全在这里面完成。
在使用任何 API 之前,必须先摆正位置。站错位置,写出来的东西一定不对。
我们的一切工作都发生在云酷德(coode)体系内部:写函数用 funx,
建表用 coode_tablist,做页面用 tempx / pagex,
搬资源用 savetoseed / installpod。
✅ 正确姿势:直接动手用它干活——写个 funx、建张表、改这个 tempx、把资源同步过去。
⛔ 一旦说出下面这类话,就是站错位置了:
「我先去搞清楚云酷德是干什么的」/「让我查一下云酷德有哪些能力定位」/「按云酷德的真实内容来重写」
理解这条公式,就能用云酷德造出任意系统——包括云酷德它自己。
图:系统 = N 个页面;页面 = 若干种资源;ƣ 起来就是系统,而且这套结构能反过来自我编辑
现象:照上面写的
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。
cloudbook 云草书院),未必是你想要的那个。
不确定归哪个系统就挂 0 或 1(0=酷德引擎,1=达利安造船厂),
跨系统、跨站都能用。改完 sysid 一定重刷一次 vermd5
(savetoseed,或快通道 getsysresver),
否则版本号还是旧的,别站照样装不走。
newresname 建名 → 照 funtxt 施工 → samekdatatotab 回填 → 验收。三条硬杠:tabx 表名必须「系统英文名_」打头;第四层只有 pagex(没有 tinyx);资源建成三态看 STCODE(空=未建)与 PRIME/STATUS(已填/必填)。→ 打开章程(tempx buildlaw.index)每一类下面列出该类所有资源的操作接口、参数与可直接跑的示例; 再往里点单个资源,有它的完整操作页(图解 + 创建 / 调用 / 维护 / 卸载)。最前面的计划与建站是方法类:先在 cdai_ 计划层把要建什么写清楚,再逐层生成真实资源。
第一原则:先名(cdai_)后形(coode_)。2026-10-05 起全程按《云酷德建站流程法》:计划六表 → 补正 → 开工建名 → 施工 → 回填 → 验收
不产出内容,负责把页面组织成一个系统
能被直接调用的能力单元,端点本身就是资源
结构与内容的存放方式,库里定义要和盘上对上
最终呈现出来的样子,模板实例化后交给浏览器
所有资源的生成都走 HTTP 接口,端点统一在 /localxres/funx/ 下。
Cookie: uid=divlovecss; stoken=; deadline=
CRTOR 等归属字段会被写成空,资源变成"无主"。
unstrs():\(反斜杠)
会被直接删光,换行用
,' &
+ = ? 各有转义。所以源码里不要写正则。
建这套 SDK 时,27 个 tempx 有 26 个连续踩进同一个坑。全部记录的结论在这里: 一个是"接口回成功、库里空着",一个是"改了样式页面不变",还有"资源登记了别站装不走"。 每一条都是实测出来的,配修法与验收方法。
现象: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 就是没写进去。
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 才算真的建成(光看记录在不在会被骗)。
现象:本地改了 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。那个 ? 不是查询串,
是端点用来识别输出类型的。
现象:本地用得好好的 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 的返回应为「保存成功」。
《云酷德建站流程法》(tempx buildlaw.index) 为准
资源操作方法会在造系统的过程中持续补充——每操作一种资源,就补全一页;