Skip to content

unclecheese/silverstripe-serialised-dbfields

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Serialised DB Fields for SilverStripe

Provides serialised data (YAML, JSON) in text fields that are traverseable as nested ViewableData objects.

Installation

composer require unclecheese/silverstripe-serialised-dbfields

Recommended add-ons

If you plan on editing the serialised data in the CMS, you'll probably want to install CodeEditorField.

composer require nathancox/codeeditorfield

The database fields are set up to automatically scaffold CodeEditorField when available.

Usage

mysite/code/MyPageType.php

class MyPageType extends Page {
  
  private static $db = [
    'MyJSONData' => 'JSONField',
    'MyYAMLData' => 'YAMLField'
  ];
  
  public function getCMSFields()
  {
    $fields = parent::getCMSFields();
    $fields->addFieldToTab('Root.JSONData', CodeEditorField::create('MyJSONData')
      ->setMode('json')
    );
    $fields->addFieldToTab('Root.YAMLData', CodeEditorField::create('MyYAMLData')
      ->setMode('yaml')
    );
    
    return $fields;
  }
}

$MyJSONData

{
  "Category": "Lollies",
  "BannerImage": "/path/to/image.png",
  "Products": [
    {
      "Title": "Snake",
      "Colour": "Red"
    },
    {
      "Title": "Jet plane",
      "Colour": "Purple"
    }
  ]
}

themes/mytheme/templates/Layout/MyPageType.ss

<% with $MyJSONData %>
  Category: $Category<br>
  <img src="$BannerImage"><br>
  <ul>
  $Products.count total products
  <% loop $Products %>
  	<li>$Title ($Colour)</li>
  <% end_loop %>
  </ul>
<% end_with %>

Casting

By default, all scalar values fall back on the $default_cast setting of ViewableData (Text). To customise the casting, use the | symbol in your field value.

Price: Currency|20.00
StartDate: Date|2016-01-01

Tests

framework/sake dev/tests/SerialisedDBFeildsTest

Troubleshooting

Ring Uncle Cheese.

About

Provides consumable serialised data in text fields for SilverStripe

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages