diff options
-rw-r--r-- | engine/classes/ElggRiverItem.php | 8 | ||||
-rw-r--r-- | views/json/page/components/list.php | 14 | ||||
-rw-r--r-- | views/json/page/default.php | 7 | ||||
-rw-r--r-- | views/json/river/item.php | 19 | ||||
-rw-r--r-- | views/json/river/item/list.php | 45 | ||||
-rw-r--r-- | views/json/search/entity_list.php | 14 |
6 files changed, 41 insertions, 66 deletions
diff --git a/engine/classes/ElggRiverItem.php b/engine/classes/ElggRiverItem.php index cdb22239d..fcc8f9c85 100644 --- a/engine/classes/ElggRiverItem.php +++ b/engine/classes/ElggRiverItem.php @@ -28,8 +28,14 @@ class ElggRiverItem // throw exception } + // the casting is to support typed serialization like json + $int_types = array('id', 'subject_guid', 'object_guid', 'annotation_id', 'access_id', 'posted'); foreach ($object as $key => $value) { - $this->$key = $value; + if (in_array($key, $int_types)) { + $this->$key = (int)$value; + } else { + $this->$key = $value; + } } } diff --git a/views/json/page/components/list.php b/views/json/page/components/list.php new file mode 100644 index 000000000..5de4f1f59 --- /dev/null +++ b/views/json/page/components/list.php @@ -0,0 +1,14 @@ +<?php +/** + * JSON list view + * + * @uses $vars['items'] + */ + +$items = $vars['items']; + +if (is_array($items) && sizeof($items) > 0) { + foreach ($items as $item) { + elgg_view_list_item($item, $vars); + } +}
\ No newline at end of file diff --git a/views/json/page/default.php b/views/json/page/default.php index d1f86c8a7..2d0403e11 100644 --- a/views/json/page/default.php +++ b/views/json/page/default.php @@ -7,12 +7,7 @@ * */ -if(stristr($_SERVER["HTTP_ACCEPT"],"application/json")) { - header("Content-Type: application/json"); -} else { - header("Content-Type: application/javascript"); -} -// echo $vars['body']; +header("Content-Type: application/json"); global $jsonexport; echo json_encode($jsonexport);
\ No newline at end of file diff --git a/views/json/river/item.php b/views/json/river/item.php new file mode 100644 index 000000000..64677817f --- /dev/null +++ b/views/json/river/item.php @@ -0,0 +1,19 @@ +<?php +/** + * JSON river item view + * + * @uses $vars['item'] + */ + +global $jsonexport; + +if (!isset($jsonexport['activity'])) { + $jsonexport['activity'] = array(); +} + +$item = $vars['item']; +if (elgg_view_exists($item->view, 'default')) { + $item->string = elgg_view('river/elements/summary', array('item' => $item), FALSE, FALSE, 'default'); +} + +$jsonexport['activity'][] = $vars['item']; diff --git a/views/json/river/item/list.php b/views/json/river/item/list.php deleted file mode 100644 index c79cd1042..000000000 --- a/views/json/river/item/list.php +++ /dev/null @@ -1,45 +0,0 @@ -<?php -/** - * JSON river view - * - * @package Elgg - * @subpackage Core - */ -global $jsonexport; - -$json_items = array(); - -if (isset($vars['items']) && is_array($vars['items'])) { - $i = 0; - - if (!empty($vars['items'])) { - foreach($vars['items'] as $item) { - - $json_entry = array( - 'subject' => NULL, - 'object' => NULL, - 'type' => NULL, - 'subtype' => NULL, - 'action_type' => NULL, - 'view' => NULL, - 'annotation' => NULL, - 'timestamp' => NULL, - 'string' => NULL - ); - - if (elgg_view_exists($item->view, 'default')) { - $json_entry['string'] = elgg_view($item->view, array('item' => $item), FALSE, FALSE, 'default'); - $json_entry['timestamp'] = (int)$item->posted; - } - - $json_items[] = $json_entry; - - $i++; - if ($i >= $vars['limit']) { - break; - } - } - } -} - -$jsonexport['activity'] = $json_items; diff --git a/views/json/search/entity_list.php b/views/json/search/entity_list.php deleted file mode 100644 index c778bf5df..000000000 --- a/views/json/search/entity_list.php +++ /dev/null @@ -1,14 +0,0 @@ -<?php -/** - * Elgg default layout - * - * @package Elgg - * @subpackage Core - */ - -$entities = $vars['entities']; -if (is_array($entities) && sizeof($entities) > 0) { - foreach($entities as $entity) { - echo elgg_view_entity($entity); - } -} |