GithubHelp home page GithubHelp logo

cloudcms-sdk's Introduction

Cloud CMS SDK for PHP

Cloud CMS is a "headless" CMS.

This is a framework agnostic PHP SDK.

Here is the Laravel5 wrapper

What can it do

For now the SDK allows to read content from CloudCms as well as to write/update a node. We will be adding more features, but for now the SDK allows to create a full fonctional website using Cloud CMS as content management.

How to install

composer require idealley/cloudcms-sdk

Main available methods

You can get a children of a node like this (think category or list of blogs)

    $catnode = 'o:9a8195e6286a4f7b40ae';

    $nodes = CC::nodes()
            ->listChildren($catnode)
            ->addParams(['full' => 'true'])
            ->get(); 

Or a single node (for now we are getting it from a special slug field) like this:

    $node = CC::nodes()
                ->find($slug)
                ->addParams(['full' => 'true'])   
                ->get();

You can chain paramas

    $node = CC::nodes()
                ->find($slug)
                ->addParams(['full' => 'true']) 
                ->addParams(['metadata' => 'true'])   
                ->get();           

or pass them in a single array

                ->addParams(['full' => 'true', 'metadata' => 'true']) 

You can get an image like this

    $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();

You can chain any params as per the documentation

Refer to repository/Node.php to see all available methods. They are documented with working examples

Model (Schema)

In order to simplyfy the display of the content you can save the model (schema) from Cloud CMS locally. Then when you have a sucessfull request you can compare it to the model. All properties are available and you do not need to check if they are set.

This method will get the model and save it locally

    CC::setModel('your:content-type');

This method will delet the model (when you update it in Cloud CMS)

    CC::setModel('your:content-type');

Here is an example of parsing

        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']);

Todo

  • Use a proxy url to fetch the images/documents
  • add more methods

Get documents and images stored in Cloud CMS

  • Get images you with the node.js server developped by Cloud CMS to fetch and cache the images you need.
  • Deploy an application and use the deployement url

cloudcms-sdk's People

Contributors

idealley avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

b7kich

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.