Esempio n. 1
0
 /**
  * Get the page content for the specified visualization mode and language.
  *
  * @return string The content of the page.
  * @access public
  */
 function getContent(&$language, $visualizationMode = false)
 {
     if (!$language instanceof CMS_language || !SensitiveIO::isInSet($visualizationMode, CMS_page::getAllVisualizationModes())) {
         $this->raiseError("Language must be a valid language and visualization mode in the set of possibles");
         return false;
     }
     $this->_checkTemplate();
     if ($this->_template) {
         //get parsed content definition from template (including CS block contents)
         $definition = $this->_template->getContent($language, $this, $visualizationMode);
         //instanciate modules treatments for page content tags
         $modulesTreatment = new CMS_modulesTags(MODULE_TREATMENT_PAGECONTENT_TAGS, $visualizationMode, $this);
         $modulesTreatment->setTreatmentParameters(array("language" => $language));
         $modulesTreatment->setDefinition($definition);
         $content = $modulesTreatment->treatContent(true);
         //instanciate modules treatments for page header tags
         $modulesTreatment = new CMS_modulesTags(MODULE_TREATMENT_PAGEHEADER_TAGS, $visualizationMode, $this);
         $modulesTreatment->setTreatmentParameters(array("language" => $language, 'replaceVars' => true));
         $modulesTreatment->setDefinition($content);
         $content = $modulesTreatment->treatContent(true);
         /*if ($visualizationMode == PAGE_VISUALMODE_HTML_PUBLIC_INDEXABLE) {
         			//eval() the PHP code
         			$content = sensitiveIO::evalPHPCode($content);
         			return $content;
         		}*/
         //include modules header codes on top of output file
         $modulesCodes = new CMS_modulesCodes();
         $headerInclude = $modulesCodes->getModulesCodes(MODULE_TREATMENT_PAGECONTENT_HEADER_CODE, $visualizationMode, $this);
         if (is_array($headerInclude) && $headerInclude) {
             $content = implode("\n", $headerInclude) . $content;
         }
         //include modules footers codes on bottom of output file
         $footerInclude = $modulesCodes->getModulesCodes(MODULE_TREATMENT_PAGECONTENT_FOOTER_CODE, $visualizationMode, $this);
         if (is_array($footerInclude) && $footerInclude) {
             $content .= implode("\n", $footerInclude);
         }
         //replace {{pageID}} tag in all page content.
         $content = str_replace('{{pageID}}', $this->getID(), $content);
         if ($visualizationMode != PAGE_VISUALMODE_HTML_PUBLIC && $visualizationMode != PAGE_VISUALMODE_PRINT) {
             //eval() the PHP code
             $content = sensitiveIO::evalPHPCode($content);
         }
         return $content;
     } else {
         return false;
     }
 }