/** * Generate timeline data feed * * @param array $pa_viz_settings Array of visualization settings taken from visualization.conf * @param array $pa_options Array of options to use when rendering output. Supported options are: * NONE */ public function getDataForVisualization($pa_viz_settings, $pa_options = null) { $va_data = array("headline" => isset($pa_viz_settings['display']['headline']) ? $pa_viz_settings['display']['headline'] : '', "type" => "default", "text" => isset($pa_viz_settings['display']['introduction']) ? $pa_viz_settings['display']['introduction'] : '', "asset" => array("media" => "", "credit" => "", "caption" => "")); $po_request = caGetOption('request', $pa_options, null); $qr_res = $this->getData(); $vs_table_name = $qr_res->tableName(); $vs_pk = $qr_res->primaryKey(); $vn_c = 0; $va_results = array(); while ($qr_res->nextHit()) { foreach ($pa_viz_settings['sources'] as $vs_source_name => $va_source) { $vs_dates = $qr_res->get($va_source['data'], array('sortable' => true, 'returnAsArray' => false, 'delimiter' => ';')); $va_dates = explode(";", $vs_dates); $va_date_list = explode("/", $va_dates[0]); if (!$va_date_list[0] || !$va_date_list[1]) { continue; } $va_timeline_dates = caGetDateRangeForTimelineJS($va_date_list); $vn_row_id = $qr_res->get("{$vs_table_name}.{$vs_pk}"); $vs_title = $qr_res->getWithTemplate($va_source['display']['title_template']); $va_data['date'][] = array("startDate" => $va_timeline_dates['start'], "endDate" => $va_timeline_dates['end'], "headline" => $po_request ? caEditorLink($po_request, $vs_title, '', $vs_table_name, $vn_row_id) : $vs_title, "text" => $qr_res->getWithTemplate($va_source['display']['description_template']), "tag" => $vs_tag, "classname" => "", "asset" => array("media" => $qr_res->getWithTemplate($va_source['display']['image'], array('returnURL' => true)), "thumbnail" => $qr_res->getWithTemplate($va_source['display']['icon'], array('returnURL' => true)), "credit" => $qr_res->getWithTemplate($va_source['display']['credit_template']), "caption" => $qr_res->getWithTemplate($va_source['display']['caption_template']))); } $vn_c++; if ($vn_c > 2000) { break; } } return json_encode(array('timeline' => $va_data)); }
*/ AssetLoadManager::register('timeline'); $va_set_items = $this->getVar("set_items"); $t_set = $this->getVar("set"); $va_views = $this->getVar('views'); $vs_current_view = $this->getVar('view'); $va_view_info = $va_views[$vs_current_view]; $vn_hits_per_block = 40; $va_data = array("headline" => "", "type" => "default", "text" => "", "asset" => array("media" => "", "credit" => "", "caption" => "")); $va_set_object_ids; foreach ($va_set_items as $va_set_item) { $va_set_object_ids[] = $va_set_item["row_id"]; } $qr_res = ca_objects::createResultSet($va_set_object_ids); $vn_c = 0; $qr_res->seek($vn_start); while ($qr_res->nextHit() && $vn_c < $vn_hits_per_block) { $vs_dates = $qr_res->get($va_view_info['data'], array('sortable' => true, 'returnAsArray' => false, 'delimiter' => ';')); $va_dates = explode(";", $vs_dates); $va_date_list = explode("/", $va_dates[0]); if (!$va_date_list[0] || !$va_date_list[1]) { continue; } $va_timeline_dates = caGetDateRangeForTimelineJS($va_date_list); $va_data['date'][] = array("startDate" => $va_timeline_dates['start'], "endDate" => $va_timeline_dates['end'], "headline" => $qr_res->getWithTemplate(caGetOption('title_template', $va_view_info['display'], null)), "text" => $qr_res->getWithTemplate(caGetOption('description_template', $va_view_info['display'], null)), "tag" => '', "classname" => '', "asset" => array("media" => $qr_res->getWithTemplate(caGetOption('image', $va_view_info['display'], null), array('returnURL' => true)), "thumbnail" => $qr_res->getWithTemplate(caGetOption('icon', $va_view_info['display'], null), array('returnURL' => true)), "credit" => $qr_res->getWithTemplate(caGetOption('credit_template', $va_view_info['display'], null)), "caption" => $qr_res->getWithTemplate(caGetOption('caption_template', $va_view_info['display'], null)))); $vn_c++; if ($vn_c > 2000) { break; } } print json_encode(array('timeline' => $va_data));