/**
 * @return array|int
 * @throws Exception
 */
function gd_report_admin_page_new() {
    $datasource = gd_datasource_find($_GET['ds']);
    if ( !$datasource ) {
        return MENU_NOT_FOUND;
    }

    gd_datasource_set_active($datasource->name);

    if ( !gd_account_user_is_admin() && !gd_account_user_is_datasource_admin(null,gd_datasource_get_active()) ) {
        return MENU_ACCESS_DENIED;
    }

    drupal_add_library('gd_report_admin', 'GD_Admin_ReportSection_Builder');

    if ( !empty($_GET['title']) ) {
        $report = new stdClass();
        $report->title = check_plain($_GET['title']);
    } else {
        $report = null;
    }

    if ( !empty($_GET['dataset']) ) {
        $reportDataset = gd_data_controller_ui_metadata_get_dataset_ui_metadata($_GET['dataset']);
    } else {
        $reportDataset = null;
    }

    return gd_report_admin_page($report,$reportDataset);
}
コード例 #2
0
 /**
  * @return DatasetUIMetaData|null
  */
 public function loadMetamodel () {
     if ( !$this->metamodel ) {
         $connectedDatasetNames = (count($this->datasets) > 1) ? array_slice($this->datasets, 1) : null;
         $metamodel = data_controller_get_metamodel();
         $metamodel->getDataset($this->datasets[0]); // ensure the dataset exists
         $this->metamodel = gd_data_controller_ui_metadata_get_dataset_ui_metadata($this->datasets[0], $connectedDatasetNames);
     }
     return $this->metamodel;
 }