Advertisement
Guest User

Untitled

a guest
Apr 16th, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.81 KB | None | 0 0
  1. namespace OxidEsales\euro\langmanager\core;
  2.  
  3. use OxidEsales\euro\langmanager\models;
  4.  
  5. class Langmanager_Oxlang extends Langmanager_Oxlang_parent
  6. {
  7. /**
  8. * Appends module lang or options files if exists
  9. *
  10. * @param array $aLangFiles existing language files
  11. * @param array $aModulePaths module language file paths
  12. * @param string $sLang language abbreviation
  13. * @param bool $blForAdmin add files for admin
  14. *
  15. * @return array
  16. */
  17. protected function _appendModuleLangFiles($aLangFiles, $aModulePaths, $sLang, $blForAdmin = false)
  18. {
  19. if (is_array($aModulePaths)) {
  20.  
  21. $oConfig = $this->getConfig();
  22.  
  23. foreach ($aModulePaths as $sPath) {
  24. $sFullPath = $oConfig->getModulesDir() . $sPath;
  25. $sFullPath2 = $oConfig->getModulesDir() . $sPath;
  26. for ($i = 1; $i <= 2; $i++) {
  27.  
  28. if ($i == 1) {
  29. $sFullPath .= ($blForAdmin) ? '/views/admin/' : '/translations/';
  30. $sFullPath .= $sLang;
  31.  
  32. if (!is_dir($sFullPath)) {
  33. $sFullPath = $oConfig->getModulesDir() . $sPath;
  34. $sFullPath .= ($blForAdmin) ? '/out/admin/' : '/out/lang/';
  35. $sFullPath .= $sLang;
  36. }
  37. } elseif ($i == 2) {
  38. $sFullPath2 .= ($blForAdmin) ? '/application/views/admin/' : '/application/translations/';
  39. $sFullPath2 .= $sLang;
  40.  
  41. if (!is_dir($sFullPath2)) {
  42. $sFullPath2 = $oConfig->getModulesDir() . $sPath;
  43. $sFullPath2 .= ($blForAdmin) ? '/out/admin/' : '/out/lang/';
  44. $sFullPath2 .= $sLang;
  45. }
  46. }
  47.  
  48. // END deprecated
  49.  
  50. $aLangFiles = $this->_appendLangFile($aLangFiles, $sFullPath);
  51. $aLangFiles2 = $this->_appendLangFile($aLangFiles, $sFullPath2);
  52. $aLangFiles = $aLangFiles + $aLangFiles2;
  53. $aLangFiles = array_unique($aLangFiles);
  54. }
  55. }
  56. }
  57.  
  58. return $aLangFiles;
  59. }
  60.  
  61. public function translateString($sStringToTranslate, $iLang = null, $blAdminMode = null)
  62. {
  63. $sIdent = $sStringToTranslate;
  64.  
  65. // whethere to include translations from Lang files or not?
  66. $blUseLangfiledata = oxRegistry::getConfig()->getConfigParam('blUseLangfiledata');
  67. $iLang = $this->_getCacheLanguageId($blAdminMode, $iLang);
  68.  
  69. $oModel = oxNew("ebox_langmanager_model");
  70. $sStringToTranslate1 = $oModel->getTranslatedString($sIdent, $iLang, $blAdminMode);
  71. if ($sStringToTranslate1) {
  72. if( $iLang == 2 )
  73. {
  74. return $sStringToTranslate1;
  75. }else{
  76. return mb_convert_encoding($sStringToTranslate1, 'UTF-8', 'ISO-8859-15');
  77. }
  78.  
  79. } elseif (empty($sStringToTranslate1)) {
  80. // use language file translations
  81. if ($blUseLangfiledata) {
  82. // checking if in cache exist
  83. $aLang = $this->_getLangTranslationArray($iLang, $blAdminMode);
  84. if (isset($aLang[$sStringToTranslate])) {
  85. return $aLang[$sStringToTranslate];
  86. }
  87.  
  88. // checking if in map exist
  89. $aMap = $this->_getLanguageMap($iLang, $blAdminMode);
  90. if (isset($aLang[$aMap[$sStringToTranslate]])) {
  91. return $aLang[$aMap[$sStringToTranslate]];
  92. }
  93.  
  94. // checking if in theme options exist
  95. if (count($this->_aAdditionalLangFiles)) {
  96. $aLang = $this->_getLangTranslationArray($iLang, $blAdminMode, $this->_aAdditionalLangFiles);
  97. if (isset($aLang[$sStringToTranslate])) {
  98. return $aLang[$sStringToTranslate];
  99. }
  100. }
  101. }
  102.  
  103. $sStringToTranslate = 'ERROR: Translation for ' . $sIdent . ' not found!';
  104. }
  105.  
  106. return $sStringToTranslate;
  107. }
  108. }
  109.  
  110. public function setLanguageFileData($iLang, $blAdmin)
  111. {
  112.  
  113. $oDb = \OxidEsales\Eshop\Core\DatabaseProvider::getDb();
  114.  
  115. if ($blAdmin) {
  116. $iType = 1;
  117. $aLangFiles = $this->_getAdminLangFilesPathArray($iLang);
  118. } else {
  119. $iType = 2;
  120. $aLangFiles = $this->_getLangFilesPathArray($iLang);
  121. }
  122.  
  123.  
  124.  
  125. // foreach of the lang-files
  126. foreach ($aLangFiles as $langfile) {
  127. include $langfile;
  128.  
  129. foreach ($aLang as $sIdent => $sValue) {
  130. // insert first only idents
  131. if ($sIdent != "charset" && $sIdent != "_aSeoReplaceChars") {
  132. $iQuery = "insert ignore into `ebox_langmanager` set `oxid` = md5('" . $sIdent . "'), `oxtype` = '" . $iType . "', `oxident` = '" . $sIdent . "', `oxcreated` = NOW()";
  133. $oDb->execute($iQuery);
  134. }
  135.  
  136. // update the values for the idents
  137. $sColumn = "OXTRANSLATE_" . $iLang;
  138. $sValue = utf8_encode($sValue);
  139. $uQuery = "update `ebox_langmanager` set `" . $sColumn . "` = '" . addslashes($sValue) . "' where `oxident` = '" . $sIdent . "'";
  140. $oDb->execute($uQuery);
  141.  
  142. }
  143. }
  144. }
  145.  
  146. metadata - 'extend' => array(
  147. \OxidEsales\Eshop\Core\Language::class => \OxidEsales\euro\langmanager\core\Langmanager_Oxlang::class, )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement