示例#1
0
 /**
  * 
  */
 public static function initApp(&$view, &$model, $backend, $context, $modelIri, $serviceUrl, $staticUrlBase, $baseImagesPath, $dataHash, $uiHash, $titleHelperLimit, $dimensionElementLimit)
 {
     // if cubeVizApp was not loaded yet
     if (false === CubeViz_ViewHelper::$isCubeVizAppLoaded) {
         // get information about the selected model
         $modelStore = $model->getStore();
         $modelInformation = CubeViz_ViewHelper::getModelInformation($modelStore, $model, $modelIri);
         /**
          * Set view and some of its properties.
          */
         $view->cubevizImagesPath = $baseImagesPath;
         /**
          * Get hashes from parameter list
          */
         // hash for data
         if (null == $dataHash) {
             $dataHash = null;
         }
         // hash for ui
         if (null == $uiHash) {
             $uiHash = null;
         }
         $view->isCubeVizDataselectionModuleLoaded = false === isset($view->isCubeVizDataselectionModuleLoaded) ? false : $view->isCubeVizDataselectionModuleLoaded;
         /**
          * Read information from files according to given hashes
          */
         $c = new CubeViz_ConfigurationLink($model, $titleHelperLimit, $dimensionElementLimit);
         $config = array();
         $generatedDataHash = '';
         $generatedUiHash = '';
         list($config['data'], $generatedDataHash) = $c->read($dataHash, 'data');
         list($config['ui'], $generatedUiHash) = $c->read($uiHash, 'ui');
         $config['backend'] = array('context' => $context, 'database' => $backend, 'dataHash' => $generatedDataHash, 'imagesPath' => $baseImagesPath, 'modelInformation' => $modelInformation, 'modelUrl' => $modelIri, 'serviceUrl' => $serviceUrl, 'uiHash' => $generatedUiHash, 'uiParts' => array('dataselectionModule' => array('isLoaded' => CubeViz_ViewHelper::$isCubeVizDataselectionModuleLoaded), 'index' => array('isLoaded' => CubeViz_ViewHelper::$isCubeVizIndexLoaded)), 'uiSettings' => array(), 'url' => $staticUrlBase . 'cubeviz/');
         CubeViz_ViewHelper::$isCubeVizAppLoaded = true;
         return $config;
     }
     return null;
 }
示例#2
0
 /**
  * 
  */
 public static function exportAsCSV($dataHash, $model, $titleHelperLimit, $dimensionElementLimit)
 {
     $attributeSet = false;
     $c = new CubeViz_ConfigurationLink($model, $titleHelperLimit, $dimensionElementLimit);
     $data = $result = array(array());
     // get all information to export
     list($data, $dh) = $c->read($dataHash, 'data');
     /**
      * set the header of the CSV file
      */
     foreach ($data['selectedComponents']['dimensions'] as $element) {
         $result[0][] = $element['__cv_niceLabel'];
     }
     // measure
     $result[0][] = $data['selectedComponents']['measure']['__cv_niceLabel'];
     // use attribute, if available
     if (true === isset($data['selectedComponents']['attribute'])) {
         $result[0][] = $data['selectedComponents']['attribute']['__cv_niceLabel'];
         $attributeSet = true;
     }
     /**
      * set the content of the CSV file
      */
     $query = new DataCube_Query($model, $titleHelperLimit, $dimensionElementLimit);
     $selectedDimensions = $data['selectedComponents']['dimensions'];
     $i = 1;
     $retrievedObservations = $query->getObservations($data['selectedDS']['__cv_uri'], $data['selectedComponents']['dimensions']);
     // each line in the CSV file represents one observation
     foreach ($retrievedObservations as $observation) {
         // go through all dimensions
         foreach ($selectedDimensions as $d) {
             // e.g. http://data.lod2.eu/scoreboard/properties/country
             $dimensionUrl = $d['http://purl.org/linked-data/cube#dimension'];
             // save dimension element url
             $dimensionElementUrl = $observation[$dimensionUrl];
             // use dimension element url to get his label
             foreach ($d['__cv_elements'] as $dimensionElement) {
                 if ($dimensionElement['__cv_uri'] == $dimensionElementUrl) {
                     $result[$i][] = $dimensionElement['__cv_niceLabel'];
                 }
             }
         }
         // get measure
         $measureUri = $data['selectedComponents']['measure']['http://purl.org/linked-data/cube#measure'];
         $result[$i][] = $observation[$measureUri];
         // get attribute, if available
         if (true === $attributeSet) {
             $result[$i][] = $data['selectedComponents']['attribute']['__cv_niceLabel'];
         }
         ++$i;
     }
     return CubeViz_Exporter::arrayToCsv($result, ';', '"');
 }
 /**
  *
  */
 public function getobservationsAction()
 {
     $this->_helper->viewRenderer->setNoRender();
     $this->_helper->layout->disableLayout();
     // parameter
     $modelIri = $this->_request->getParam('modelIri', '');
     $dataHash = trim($this->_request->getParam('cv_dataHash', ''));
     $datasetUri = trim($this->_request->getParam('datasetUri', ''));
     // check if model there
     if (false === $this->_erfurt->getStore()->isModelAvailable($modelIri)) {
         $code = 404;
         $this->_sendJSONResponse(array('code' => $code, 'content' => '', 'message' => 'Model not available'), $code);
         return;
     }
     // check if datahash or dataset uri set
     if ('' == $dataHash && false === Erfurt_Uri::check($datasetUri)) {
         if ('' == $dataHash) {
             $code = 404;
             $this->_sendJSONResponse(array('code' => $code, 'content' => '', 'message' => 'Data hash is not valid'), $code);
             return;
         } else {
             $code = 404;
             $this->_sendJSONResponse(array('code' => $code, 'content' => '', 'message' => 'Dataset Uri is not valid'), $code);
             return;
         }
     }
     try {
         $model = new Erfurt_Rdf_Model($modelIri);
         $query = new DataCube_Query($model, $this->_titleHelperLimit, $this->_dimensionElementLimit);
         if ('' != $dataHash) {
             $configuration = new CubeViz_ConfigurationLink($this->_owApp->selectedModel, $this->_titleHelperLimit, $this->_dimensionElementLimit);
             // load configuration which is associated with given linkCode
             list($c, $hash) = $configuration->read($dataHash, 'data');
             $datasetUri = $c['selectedDS']['__cv_uri'];
             $dimensions = $c['selectedComponents']['dimensions'];
             // datasetUri set
         } else {
             $dimensions = array();
         }
         $code = 200;
         $content = array('code' => $code, 'content' => $query->getObservations($datasetUri, $dimensions), 'message' => '');
     } catch (Exception $e) {
         $code = 400;
         $content = array('code' => $code, 'content' => '', 'message' => $e->getMessage());
     }
     $this->_sendJSONResponse($content, $code);
 }