[TASK] Re-work/simplify copyright header in PHP files - Part 3
[Packages/TYPO3.CMS.git] / typo3 / sysext / core / Classes / Localization / Parser / LocallangArrayParser.php
index 629444d..175933f 100644 (file)
@@ -1,36 +1,21 @@
 <?php
 namespace TYPO3\CMS\Core\Localization\Parser;
 
-/***************************************************************
- *  Copyright notice
- *
- *  (c) 2011 Dominique Feyer <dfeyer@reelpeek.net>
- *  All rights reserved
- *
- *  This script is part of the TYPO3 project. The TYPO3 project is
- *  free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  The GNU General Public License can be found at
- *  http://www.gnu.org/copyleft/gpl.html.
- *  A copy is found in the textfile GPL.txt and important notices to the license
- *  from the author is found in LICENSE.txt distributed with these scripts.
+/**
+ * This file is part of the TYPO3 CMS project.
  *
+ * It is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License, either version 2
+ * of the License, or any later version.
  *
- *  This script is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
+ * For the full copyright and license information, please read the
+ * LICENSE.txt file that was distributed with this source code.
  *
- *  This copyright notice MUST APPEAR in all copies of the script!
- ***************************************************************/
+ * The TYPO3 project - inspiring people to share!
+ */
 /**
  * Parser for PHP locallang array.
  *
- * @package TYPO3
- * @subpackage t3lib
  * @author Dominique Feyer <dfeyer@reelpeek.net>
  * @author Dmitry Dulepov <dmitry.dulepov@gmail.com>
  */
@@ -140,8 +125,8 @@ class LocallangArrayParser implements \TYPO3\CMS\Core\Localization\Parser\Locali
                // Get PHP data
                include $sourcePath;
                if (!is_array($LOCAL_LANG)) {
-                       $fileName = substr($sourcePath, strlen(PATH_site));
-                       throw new \RuntimeException(('TYPO3 Fatal Error: "' . $fileName) . '" is no TYPO3 language file!', 1308898491);
+                       $fileName = \TYPO3\CMS\Core\Utility\PathUtility::stripPathSitePrefix($sourcePath);
+                       throw new \RuntimeException('TYPO3 Fatal Error: "' . $fileName . '" is no TYPO3 language file!', 1308898491);
                }
                // Converting the default language (English)
                // This needs to be done for a few accented loan words and extension names
@@ -151,14 +136,18 @@ class LocallangArrayParser implements \TYPO3\CMS\Core\Localization\Parser\Locali
                        }
                        unset($labelValue);
                }
-               if (($languageKey !== 'default' && is_array($LOCAL_LANG[$languageKey])) && $this->sourceCharset != $this->targetCharset) {
+               if ($languageKey !== 'default' && is_array($LOCAL_LANG[$languageKey]) && $this->sourceCharset != $this->targetCharset) {
                        foreach ($LOCAL_LANG[$languageKey] as &$labelValue) {
                                $labelValue = $this->csConvObj->conv($labelValue, $this->sourceCharset, $this->targetCharset);
                        }
                        unset($labelValue);
                }
                // Cache the content now:
-               $serContent = array('origFile' => $this->hashSource, 'LOCAL_LANG' => array('default' => $LOCAL_LANG['default'], $languageKey => $LOCAL_LANG[$languageKey]));
+               if (isset($LOCAL_LANG[$languageKey])) {
+                       $serContent = array('origFile' => $this->hashSource, 'LOCAL_LANG' => array('default' => $LOCAL_LANG['default'], $languageKey => $LOCAL_LANG[$languageKey]));
+               } else {
+                       $serContent = array('origFile' => $this->hashSource, 'LOCAL_LANG' => array('default' => $LOCAL_LANG['default']));
+               }
                $res = \TYPO3\CMS\Core\Utility\GeneralUtility::writeFileToTypo3tempDir($this->cacheFileName, serialize($serContent));
                if ($res) {
                        throw new \RuntimeException('TYPO3 Fatal Error: "' . $res, 1308898501);
@@ -174,8 +163,8 @@ class LocallangArrayParser implements \TYPO3\CMS\Core\Localization\Parser\Locali
         * @return void
         */
        protected function generateCacheFileName($sourcePath, $languageKey) {
-               $this->hashSource = ((substr($sourcePath, strlen(PATH_site)) . '|') . date('d-m-Y H:i:s', filemtime($sourcePath))) . '|version=2.3';
-               $this->cacheFileName = ((((((((PATH_site . 'typo3temp/llxml/') . substr(basename($sourcePath), 10, 15)) . '_') . \TYPO3\CMS\Core\Utility\GeneralUtility::shortMD5($this->hashSource)) . '.') . $languageKey) . '.') . $this->targetCharset) . '.cache';
+               $this->hashSource = \TYPO3\CMS\Core\Utility\PathUtility::stripPathSitePrefix($sourcePath) . '|' . date('d-m-Y H:i:s', filemtime($sourcePath)) . '|version=2.3';
+               $this->cacheFileName = PATH_site . 'typo3temp/llxml/' . substr(basename($sourcePath), 10, 15) . '_' . \TYPO3\CMS\Core\Utility\GeneralUtility::shortMD5($this->hashSource) . '.' . $languageKey . '.' . $this->targetCharset . '.cache';
        }
 
        /**
@@ -207,7 +196,7 @@ class LocallangArrayParser implements \TYPO3\CMS\Core\Localization\Parser\Locali
         * @return void
         */
        protected function setCharsets($languageKey, $charset) {
-               $this->sourceCharset = $this->csConvObj->parse_charset($this->csConvObj->charSetArray[$languageKey] ? $this->csConvObj->charSetArray[$languageKey] : 'utf-8');
+               $this->sourceCharset = $this->csConvObj->parse_charset($this->csConvObj->charSetArray[$languageKey] ?: 'utf-8');
                if ($charset) {
                        $this->targetCharset = $this->csConvObj->parse_charset($charset);
                } else {
@@ -224,12 +213,9 @@ class LocallangArrayParser implements \TYPO3\CMS\Core\Localization\Parser\Locali
         * @throws \RuntimeException
         */
        protected function validateParameters($sourcePath, $languageKey) {
-               if ((!$this->isWithinWebRoot($sourcePath) || !@is_file($sourcePath)) || !$languageKey) {
+               if (!$this->isWithinWebRoot($sourcePath) || !@is_file($sourcePath) || !$languageKey) {
                        throw new \RuntimeException(sprintf('Invalid source path (%s) or languageKey (%s)', $sourcePath, $languageKey), 1309245002);
                }
        }
 
 }
-
-
-?>
\ No newline at end of file