idealley/cloudcms-sdk

CloudCms Api 的 PHP SDK

v1.0.5 2017-03-07 07:37 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:20:08 UTC


README

Cloud CMS 是一个 "无头" CMS。

这是一个框架无关的 PHP SDK。

以下是 Laravel5 包装器

它能做什么

目前 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