Esempio n. 1
0
 /**
  * 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;
 }