示例#1
0
 /**
  * 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));