/** * Returns the content */ public function getContents() { $q = new DataCube_Query($this->_owApp->selectedModel, $this->_titleHelperLimit, $this->_dimensionElementLimit); if (false === $q->containsDataCubeInformation()) { return false; } /** * Set paths */ $basePath = $this->view->basePath = $this->_config->staticUrlBase . 'extensions/cubeviz/'; $baseCssPath = $basePath . 'public/css/'; $baseImagesPath = $basePath . 'public/images/'; $baseJavascriptPath = $basePath . 'public/javascript/'; /** * Including javascript files for this action */ $this->view->headScript()->appendFile($baseJavascriptPath . 'libraries/CryptoJS_Md5.js', 'text/javascript')->appendFile($baseJavascriptPath . 'libraries/json2.js', 'text/javascript')->appendFile($baseJavascriptPath . 'libraries/underscore.js', 'text/javascript')->appendFile($baseJavascriptPath . 'libraries/underscore.string.js', 'text/javascript')->appendScript('_.mixin(_.str.exports());')->appendFile($basePath . 'ChartConfig.js', 'text/javascript'); // If this module is in the "development" context if ('development' === $this->_privateConfig->get('context')) { $this->view->headScript()->appendFile($baseJavascriptPath . 'libraries/munit.js', 'text/javascript')->appendFile($baseJavascriptPath . 'Test.js', 'text/javascript')->appendFile($baseJavascriptPath . 'Main.js', 'text/javascript'); // otherwise it is in "production" context } else { $this->view->headScript()->appendFile($baseJavascriptPath . 'Main-production.js', 'text/javascript'); } /** * Including css files for this action */ $this->view->headLink()->prependStylesheet($baseCssPath . 'foreign/FontAwesome/css/font-awesome.min.css')->prependStylesheet($baseCssPath . 'main.css')->prependStylesheet($baseCssPath . 'DataselectionModule/attribute.css')->prependStylesheet($baseCssPath . 'DataselectionModule/component.css')->prependStylesheet($baseCssPath . 'DataselectionModule/dataSelectionModule.css')->prependStylesheet($baseCssPath . 'DataselectionModule/dataSet.css')->prependStylesheet($baseCssPath . 'DataselectionModule/footer.css')->prependStylesheet($baseCssPath . 'DataselectionModule/measure.css')->prependStylesheet($baseCssPath . 'DataselectionModule/slice.css'); // IE specific CSS for fontawesome if (strpos($_SERVER['HTTP_USER_AGENT'], '(compatible; MSIE ') !== FALSE) { $this->view->headLink()->appendStylesheet($baseCssPath . 'foreign/FontAwesome/css/font-awesome-ie7.min.css'); } /** * Model information */ $model = $this->_owApp->selectedModel; $modelIri = $model->getModelIri(); $modelStore = $model->getStore(); $serviceUrl = true === isset($_SESSION['ONTOWIKI']['serviceUrl']) ? $_SESSION['ONTOWIKI']['serviceUrl'] : null; CubeViz_ViewHelper::$isCubeVizDataselectionModuleLoaded = true; // init cubeVizApp $config = CubeViz_ViewHelper::initApp($this->view, $model, $this->_owApp->getConfig()->store->backend, $this->_privateConfig->get('context'), $modelIri, $serviceUrl, $this->_config->staticUrlBase, $baseImagesPath, $this->_request->getParam('cv_dataHash'), $this->_request->getParam('cv_uiHash'), $this->_titleHelperLimit, $this->_dimensionElementLimit); if (null !== $config) { $this->view->headScript()->appendScript('cubeVizApp._ = ' . json_encode($config, JSON_FORCE_OBJECT) . ';')->appendScript('cubeVizApp._.backend.chartConfig = CubeViz_ChartConfig;'); } $this->view->translate = $this->_owApp->translate; /** * fill template with content and give generated HTML back */ return $this->render('public/templates/cubeviz/DataselectionModule'); }
/** * */ public function indexAction() { // In case no model was selected, it redirect to the root url of OntoWiki if (false === isset($this->_owApp->selectedModel)) { $this->_helper->redirector->gotoUrl('/'); return; } /** * Set paths */ $basePath = $this->view->basePath = $this->_config->staticUrlBase . 'extensions/cubeviz/'; $baseJavascriptPath = $basePath . 'public/javascript/'; $baseCssPath = $basePath . 'public/css/'; $this->view->cubevizImagesPath = $baseImagesPath = $basePath . 'public/images/'; $this->view->translate = $this->_owApp->translate; /** * Including javascript files for this action */ // Libraries $this->view->headScript()->appendFile($baseJavascriptPath . 'libraries/javascriptStats-1.0.1.js', 'text/javascript')->appendFile($baseJavascriptPath . 'libraries/highcharts.js', 'text/javascript')->appendFile($baseJavascriptPath . 'libraries/highcharts-more.js', 'text/javascript'); /** * Including css files for this action */ $this->view->headLink()->prependStylesheet($baseCssPath . 'foreign/Bootstrap/bootstrap.min.css')->prependStylesheet($baseCssPath . '/main.css')->prependStylesheet($baseCssPath . '/IndexAction/exportArea.css')->prependStylesheet($baseCssPath . '/IndexAction/header.css')->prependStylesheet($baseCssPath . '/IndexAction/legend.css')->prependStylesheet($baseCssPath . '/IndexAction/visualization.css')->prependStylesheet($baseCssPath . '/IndexAction/visualizationSelector.css'); /** * Load model information */ $model = $this->_owApp->selectedModel; $modelIri = $model->getModelIri(); $modelStore = $model->getStore(); $modelInformation = CubeViz_ViewHelper::getModelInformation($modelStore, $model, $modelIri); $modelInformation['rdfs:label'] = true === isset($modelInformation['http://www.w3.org/2000/01/rdf-schema#label']) ? $modelInformation['http://www.w3.org/2000/01/rdf-schema#label']['content'] : $modelIri; $serviceUrl = true === isset($_SESSION['ONTOWIKI']['serviceUrl']) ? $_SESSION['ONTOWIKI']['serviceUrl'] : null; /** * Set view and some of its properties. */ // fill title-field $this->view->placeholder('main.window.title')->set('Visualization for ' . $modelInformation['rdfs:label']); $on = $this->_owApp->getNavigation(); $on->disableNavigation(); // disable OntoWiki's Navigation CubeViz_ViewHelper::$isCubeVizIndexLoaded = true; // init cubeVizApp try { $config = CubeViz_ViewHelper::initApp($this->view, $model, $this->_owApp->getConfig()->store->backend, $this->_privateConfig->get('context'), $modelIri, $serviceUrl, $this->_config->staticUrlBase, $baseImagesPath, $this->_request->getParam('cv_dataHash'), $this->_request->getParam('cv_uiHash'), $modelInformation, $this->_titleHelperLimit, $this->_dimensionElementLimit); } catch (Exception $e) { $this->_redirect(OntoWiki::getInstance()->getConfig()->urlBase . "/cubeviz/modelinfo", array('code' => 302)); } // load settings from the doap.n3 $this->view->useExport = $this->_privateConfig->get('useExport'); $this->view->uiUseDataSetInsteadOfModel = true !== $this->_privateConfig->get('uiUseDataSetInsteadOfModel') ? 'false' : 'true'; if (null !== $config) { $this->view->headScript()->appendScript('cubeVizApp._ = ' . json_encode($config, JSON_FORCE_OBJECT) . ';')->appendScript('cubeVizApp._.backend.chartConfig = CubeViz_ChartConfig;'); } }