idealley / cloudcms-sdk
CloudCms Api 的 PHP SDK
v1.0.5
2017-03-07 07:37 UTC
Requires
- php: >=5.6.0
- guzzlehttp/guzzle: >=6.0.0
- league/flysystem: ~1.0
- league/oauth2-client: >=1.3.0
- symfony/yaml: ^2.8|^3
This package is not auto-updated.
Last update: 2024-09-14 18:20:08 UTC
README
Cloud CMS 是一个 "无头" CMS。
这是一个框架无关的 PHP SDK。
它能做什么
目前 SDK 允许从 CloudCms 读取内容,以及写入/更新节点。我们将添加更多功能,但目前为止 SDK 允许使用 Cloud CMS 作为内容管理创建一个完整的网站。
如何安装
composer require idealley/cloudcms-sdk
主要可用方法
你可以这样获取节点的子节点(如分类或博客列表)
$catnode = 'o:9a8195e6286a4f7b40ae';
$nodes = CC::nodes()
->listChildren($catnode)
->addParams(['full' => 'true'])
->get();
或单个节点(目前我们从特殊的 slug 字段获取它)
$node = CC::nodes()
->find($slug)
->addParams(['full' => 'true'])
->get();
你可以链式传递参数
$node = CC::nodes()
->find($slug)
->addParams(['full' => 'true'])
->addParams(['metadata' => 'true'])
->get();
或者将它们传递在一个数组中
->addParams(['full' => 'true', 'metadata' => 'true'])
你可以这样获取图片
$path = 'Samples/Catalog/Products/';
$img = CC::nodes()
->getImage($node['rows'][0]['_qname'])
->addParams(['name' => $node['rows'][0]['_features']['f:filename']['filename']])
->addParams(['size' => '400'])
->set();
你可以按照文档中的方式链式传递任何参数
请参阅 repository/Node.php 以查看所有可用方法。它们都有文档和示例
模型(架构)
为了简化内容的显示,你可以将 Cloud CMS 的模型(架构)保存到本地。然后,当请求成功时,你可以将其与模型进行比较。所有属性都是可用的,你不需要检查它们是否已设置。
此方法将获取模型并将其保存到本地
CC::setModel('your:content-type');
此方法将在 Cloud CMS 中更新时删除模型
CC::setModel('your:content-type');
以下是解析示例
foreach ($items as $key => $i){
// You can do it as the commented lign if you do use Cloud CMS array elements (repeatable elements in the interface)
//$item += $this->model;
//If not do it like this
$item = array_replace_recursive($this->model, $i);
[...]
// you can then work on your fields for example to parse markdown
// the $item has ben objectified before hand
$item->body = Markdown::parse($item->body);
//but you could do it like this if your prefer to work on an array
$item['body'] = Markdown::parse($item['body']);
待办事项
- 使用代理 URL 获取图片/文档
- 添加更多方法
获取存储在 Cloud CMS 中的文档和图片
- 获取与 Cloud CMS 开发的 Node.js 服务器一起使用的图片,该服务器用于获取和缓存所需的图片。
- 部署应用程序并使用部署 URL