/** * Create datas from definition. * Parse definition and create PHP / HTML string * * @param serialized datas $rawDatas : The user specified parameters for the row * @param CMS_page $page The reference of the current page using block * @param boolean $public The needed precision for USERSPACE location (default : false) * @param constant $type The needed return type of datas (default : CMS_polymod_definition_parsing::OUTPUT_RESULT) * @return string The PHP / HTML datas * @access private */ protected function _createDatasFromDefinition($rawDatas, &$page, $visualizationMode, $type = CMS_polymod_definition_parsing::OUTPUT_RESULT) { $public = $visualizationMode == PAGE_VISUALMODE_PRINT || $visualizationMode == PAGE_VISUALMODE_HTML_PUBLIC; $parameters = $rawDatas ? array_merge($rawDatas, $this->_attributes) : $this->_attributes; // If no language parameter : set page language $parameters['language'] = isset($parameters['language']) && $parameters['language'] ? $parameters['language'] : $page->getLanguage(); $parameters = array('block_attributes' => $parameters, 'module' => $this->_attributes['module'], 'language' => $parameters['language'], 'pageID' => $page->getID(), 'public' => $public); $polymodParsing = new CMS_polymod_definition_parsing($this->_definition, true, CMS_polymod_definition_parsing::PARSE_MODE, $this->_attributes['module'], $visualizationMode); $content = $polymodParsing->getContent($type, $parameters); if (!$public) { return $content; } //Cache management $cacheHash = md5(serialize(array('definition' => $content, 'parameters' => $parameters))); $lifetime = isset($this->_attributes['cache']) ? $this->_attributes['cache'] : 'auto'; $content = CMS_cache::wrapCode($cacheHash, $content, $lifetime); return $content; }