Skip to content

Instantly share code, notes, and snippets.

@robertbanh
Forked from brandonkelly/gist:8672116
Created January 28, 2014 17:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save robertbanh/8672182 to your computer and use it in GitHub Desktop.
Save robertbanh/8672182 to your computer and use it in GitHub Desktop.
<?php
public function getEntryJson(EntryModel $entry)
{
$entryData = array();
foreach ($entry->getType()->getFieldLayout()->getFields() as $field)
{
$field = $field->getField();
$handle = $field->handle;
$value = $entry->$handle;
if ($field instanceof BaseElementFieldType)
{
$entryData[$handle] = array();
foreach ($value as $relElement)
{
$entryData[$handle][] = array(
'id' => $relElement->id,
'label' => (string) $relElement
);
}
}
else if ($field instanceof MatrixFieldType)
{
$entryData[$handle] = array();
foreach ($value as $block)
{
$entryData[$handle][] = array(
// ...
);
}
}
else
{
// Deal with Checkboxes and Multi-select fields
if ($value instanceof \ArrayObject)
{
$value = array_merge($value);
}
if (is_array($value))
{
$entryData[$handle] = $value;
}
else
{
// Let's just force anything else to a string, in case it's something like a SingleOptionFieldData class
$entryData[$handle] = (string) $value;
}
$entryData[$handle] = $value;
}
}
return JsonHelper::encode($entryData);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment