/** * Get TYPO3 Version * * @param null $version * @return string */ public static function getVersion($version = null) { if ($version === null) { $version = TYPO3_version; } return VersionNumberUtility::convertIntegerToVersionNumber($version); }
/** * Insert javascript-tags for jQuery * * @param array $params * @param \TYPO3\CMS\Core\Page\PageRenderer $pObj * @return void */ public function renderPreProcess($params, $pObj) { // Get plugin-configuration $conf = $GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_libjquery.']['settings.']; // Generate script-tag for jquery if CDN is set if (!empty($conf['cdn']) && array_key_exists($conf['cdn'], $this->jQueryCdnUrls)) { // Set version-number for CDN if (!(int) $conf['version'] || $conf['version'] === 'latest') { $versionCdn = end($this->availableLocalJqueryVersions); } else { $versionCdn = VersionNumberUtility::convertVersionNumberToInteger($conf['version']); } // Set correct version-number for local version if (!in_array($versionCdn, $this->availableLocalJqueryVersions)) { $versionLocal = $this->getNearestVersion($versionCdn); } else { $versionLocal = $versionCdn; } $fallbackTag = ''; // Choose minified version if debug is disabled $minPart = (int) $conf['debug'] ? '' : '.min'; // Deliver gzipped-version if compression is activated and client supports gzip (compression done with "gzip --best -k -S .gzip") $gzipPart = (int) $GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['compressionLevel'] ? '.gzip' : ''; // Set path and placeholders for local file $this->jQueryCdnUrls['local'] = $conf['localPath'] . 'jquery-%1$s%2$s.js'; // Generate tags for local or CDN (and fallback) if ($conf['cdn'] === 'local') { // Get local version and replace placeholders $file = sprintf($this->jQueryCdnUrls['local'], VersionNumberUtility::convertIntegerToVersionNumber($versionLocal), $minPart) . $gzipPart; $file = str_replace(PATH_site, '', GeneralUtility::getFileAbsFileName($file)); } else { // Get CDN and replace placeholders $file = sprintf($this->jQueryCdnUrls[$conf['cdn']], VersionNumberUtility::convertIntegerToVersionNumber($versionCdn), $minPart); // Generate fallback if required if ((int) $conf['localFallback']) { // Get local fallback version and replace placeholders $fileFallback = sprintf($this->jQueryCdnUrls['local'], VersionNumberUtility::convertIntegerToVersionNumber($versionLocal), $minPart) . $gzipPart; // Get absolute path to the fallback-file $fileFallback = str_replace(PATH_site, '', GeneralUtility::getFileAbsFileName($fileFallback)); // Wrap it in some javascript code which will enable the fallback $fallbackTag = '<script>window.jQuery || document.write(\'<script src="' . htmlspecialchars($fileFallback) . '" type="text/javascript"><\\/script>\')</script>' . LF; } } $pObj->addJsLibrary('lib_jquery', $file, 'text/javascript', FALSE, TRUE, '|' . LF . $fallbackTag . '', TRUE); } }
/** * @test * @dataProvider invalidVersionNumberDataProvider */ public function convertIntegerToVersionNumberConvertsOtherTypesAsIntegerToVersionNumber($version) { $this->setExpectedException('\\InvalidArgumentException', '', 1334072223); \TYPO3\CMS\Core\Utility\VersionNumberUtility::convertIntegerToVersionNumber($version); }