/** * 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 modelinfoAction() { if (true === isset($this->_request->m)) { // reset resource/class unset($this->_owApp->selectedResource); unset($this->_owApp->selectedClass); unset($this->_session->hierarchyOpen); } $on = $this->_owApp->getNavigation(); $on->disableNavigation(); // disable OntoWiki's Navigation /** * Load model information */ $graph = $this->_owApp->selectedModel; $resource = $this->_owApp->selectedResource; $erfurt = $this->_owApp->erfurt; $store = $this->_owApp->erfurt->getStore(); /** * 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; $this->view->sparqlService = $erfurt->getConfig()->store->sparql->serviceUrl; $this->view->modelTitle = $modelInformation['rdfs:label']; $this->view->modelDescriptions = array(); foreach ($modelInformation as $url => $entry) { if ('http://www.w3.org/2004/02/skos/core#description' == $url || 'http://www.w3.org/2000/01/rdf-schema#comment' == $url) { $this->view->modelDescriptions[] = $entry['content']; } } // check for DataCube information $query = new DataCube_Query($model, $this->_titleHelperLimit, $this->_dimensionElementLimit); $this->view->containsDataCubeInformation = $query->containsDataCubeInformation(); }