1

カスタムモジュール(サンプルモジュール名など)にインストールすると、この致命的なエラーよりも時間がかかります。このエラーを解決する方法誰でも助けてください。Prestashop:未定義のメソッドを呼び出します。Language :: updateModulesTranslations()

Fatal error: Call to undefined method Language::updateModulesTranslations() in /var/www/html/sf_prestashop/shop/classes/module/Module.php on line 292

+0

不適切なエラー –

答えて

2

、/classes/Language.php語学クラスを確認してくださいがないならば、言語クラス内、以下の機能を追加してください、「updateModulesTranslations」という名前の関数が存在しなければならない:

public static function updateModulesTranslations(Array $modules_list) 
    { 
     require_once(_PS_TOOL_DIR_.'tar/Archive_Tar.php'); 

     $languages = Language::getLanguages(false); 
     foreach ($languages as $lang) { 
      $gz = false; 
      $files_listing = array(); 
      foreach ($modules_list as $module_name) { 
       $filegz = _PS_TRANSLATIONS_DIR_.$lang['iso_code'].'.gzip'; 

       clearstatcache(); 
       if (@filemtime($filegz) < (time() - (24 * 3600))) { 
        if (Language::downloadAndInstallLanguagePack($lang['iso_code'], null, null, false) !== true) { 
         break; 
        } 
       } 

       $gz = new Archive_Tar($filegz, true); 
       $files_list = Language::getLanguagePackListContent($lang['iso_code'], $gz); 
       foreach ($files_list as $i => $file) { 
        if (strpos($file['filename'], 'modules/'.$module_name.'/') !== 0) { 
         unset($files_list[$i]); 
        } 
       } 

       foreach ($files_list as $file) { 
        if (isset($file['filename']) && is_string($file['filename'])) { 
         $files_listing[] = $file['filename']; 
        } 
       } 
      } 
      if ($gz) { 
       $gz->extractList($files_listing, _PS_TRANSLATIONS_DIR_.'../', ''); 
      } 
     } 
    } 
+0

$ files_list = Language :: getLanguagePackListContent($ lang ['iso_code']、$ gz); – kirubanidhi

+0

私はこのメソッドが呼び出しだと思うが、それはそれをdefiendしません。 getLanguagePackListContent()コードを与えることができます。 – kirubanidhi

0

あなたのコードを試しました。カスタムモジュールをインストールすると別のエラーが発生します。

致命的なエラー:未定義のメソッドへ コール言語:: getLanguagePackListContent() /var/www/html/sf_prestashop/shop/classes/Language.phpでライン上の書式設定894

+0

public static function getLanguagePackListContent($ iso、$ tar) { $ key = 'Language :: getLanguagePackListContent _'。$ iso; if(!Cache :: isStored($ key)){ if(!$ tar instanceof \ Archive_Tar){ falseを返します。 } $ result = $ tar-> listContent(); キャッシュ::ストア($キー、$結果); return $ result; } 戻り値キャッシュ:: retrieve($ key); } – kirubanidhi

+0

language.phpファイルにgetLanguagePackListContent()を追加します。今私のモジュールにインストールしようとしています。それは私のために働いた。 – kirubanidhi

関連する問題