public function main() { $out = ''; $conf = $this->getModule()->getConfigurations(); $file = tx_rnbase_util_Files::getFileAbsFileName($conf->get($this->getConfId() . 'template')); $templateCode = tx_rnbase_util_Network::getURL($file); if (!$templateCode) { return $conf->getLL('msg_template_not_found') . '<br />File: \'' . $file . '\'<br />ConfId: \'' . $this->getConfId() . 'template\''; } $subpart = '###' . strtoupper($this->getFuncId()) . '###'; $template = tx_rnbase_util_Templates::getSubpart($templateCode, $subpart); if (!$template) { return $conf->getLL('msg_subpart_not_found') . ': ' . $subpart; } $start = microtime(TRUE); $memStart = memory_get_usage(); $out .= $this->getContent($template, $conf, $conf->getFormatter(), $this->getModule()->getFormTool()); if (tx_rnbase_util_BaseMarker::containsMarker($out, 'MOD_')) { $markerArr = array(); $memEnd = memory_get_usage(); $markerArr['###MOD_PARSETIME###'] = microtime(TRUE) - $start; $markerArr['###MOD_MEMUSED###'] = $memEnd - $memStart; $markerArr['###MOD_MEMSTART###'] = $memStart; $markerArr['###MOD_MEMEND###'] = $memEnd; $out = tx_rnbase_util_Templates::substituteMarkerArrayCached($out, $markerArr); } return $out; }
/** * Render the PHP template, translate and return the output as string * * The ".php" suffix is added in this function. * Call this function after the $pathToTemplates is set. * The return value is the rendered result of the template, followed by translation. * It is typically a (x)html string, but can be used for any other text based format. * * @param string name of template file without the ".php" suffix * @param tx_rnbase_configurations configuration instance * @return string typically an (x)html string */ function render($view, $configurations) { $link = $configurations->createLink(); // Die ViewData bereitstellen $viewData =& $configurations->getViewData(); $formatter = tx_rnbase::makeInstance('tx_rnbase_util_FormatUtil', $configurations); $path = $this->getTemplate($view); // Für den PHP Include benötigen wir den absoluten Pfad $path = tx_rnbase_util_Files::getFileAbsFileName($path); ob_start(); include $path; $out = ob_get_clean(); return $out; }
/** * Load a local lang from a file. * merging with the existing local lang * * @param string $filename * * @return void */ public function loadLLFile($filename) { if (!$filename) { return; } // Find language file $basePath = tx_rnbase_util_Files::getFileAbsFileName($filename); // php or xml as source: In any case the charset will be that of the system language. // However, this function guarantees only return output for default language plus the specified language (which is different from how 3.7.0 dealt with it) $utility = tx_rnbase_util_Typo3Classes::getGeneralUtilityClass(); self::addLang($utility::readLLfile($basePath, self::getLLKey(), $GLOBALS['TSFE']->renderCharset)); if ($llKey = self::getLLKey(TRUE)) { self::addLang($utility::readLLfile($basePath, $llKey, $GLOBALS['TSFE']->renderCharset)); } }
/** * * @param tx_rnbase_configurations $configurations * @param unknown $confId */ protected function addResources($configurations, $confId) { tx_rnbase::load('tx_rnbase_util_Files'); $pageRenderer = tx_rnbase_util_TYPO3::getTSFE()->getPageRenderer(); $files = $configurations->get($confId . 'includeJSFooter.'); if (is_array($files)) { foreach ($files as $file) { if ($file = tx_rnbase_util_Files::getFileName($file)) { $pageRenderer->addJsFooterFile($file); } } } $files = $configurations->get($confId . 'includeCSS.'); if (is_array($files)) { foreach ($files as $file) { if ($file = tx_rnbase_util_Files::getFileName($file)) { $pageRenderer->addCssFile($file); } } } }
/** * Returns the file for module HTML template. This can be overwritten. * The first place to search for template is EXT:[your_ext_key]/mod1/template.html. If this file * not exists the default from rn_base is used. Overwrite this method to set your own location. * @return string */ protected function getModuleTemplate() { $filename = $this->getConfigurations()->get('template'); if (file_exists(tx_rnbase_util_Files::getFileAbsFileName($filename, TRUE, TRUE))) { return $filename; } $filename = 'EXT:' . $this->getExtensionKey() . '/mod1/template.html'; if (file_exists(tx_rnbase_util_Files::getFileAbsFileName($filename, TRUE, TRUE))) { return $filename; } return 'EXT:rn_base/mod/template.html'; }
/** * @unit * @expectedException RuntimeException */ public function testMkdirDeepThrowsExceptionIfDirectoryCreationFails() { if (!tx_rnbase_util_TYPO3::isTYPO60OrHigher()) { $this->markTestSkipped('Runtime Exception is not thrown before TYPO3 6.x'); } tx_rnbase_util_Files::mkdir_deep('http://localhost'); }
/** * creates a lock file and stores the current time. * * @return boolean */ private function createLockFile() { $fileName = $this->getFile(); if (!is_dir(dirname($fileName))) { tx_rnbase_util_Files::mkdir_deep(dirname($fileName)); } file_put_contents($fileName, time()); if (!is_readable($fileName)) { tx_rnbase::load('tx_rnbase_util_Logger'); tx_rnbase_util_Logger::warn('Lock file could not be created for "' . $this->getName() . '" process!', 'rn_base', array('process_name' => $this->getName(), 'life_time' => $this->getLifeTime(), 'lock_file' => $fileName)); return FALSE; } return TRUE; }
/** * Returns the template to use. * If TemplateFile is set, it is preferred. Otherwise * the filename is build from pathToTemplates, the templateName and $extension. * * @param string name of template * @param string file extension to use * @return complete filename of template */ function getTemplate($templateName, $extension = '.php', $forceAbsPath = 0) { if (strlen($this->_pathToFile) > 0) { return $forceAbsPath ? tx_rnbase_util_Files::getFileAbsFileName($this->_pathToFile) : $this->_pathToFile; } $path = $this->pathToTemplates; $path .= substr($path, -1, 1) == '/' ? $templateName : '/' . $templateName; $extLen = strlen($extension); $path .= substr($path, $extLen * -1, $extLen) == $extension ? '' : $extension; return $path; }