Exemplo n.º 1
0
 static function buildLangPackage($languageCode, $languageName, $buildPath)
 {
     $fileName = $languageName . '.zip';
     if (is_file($buildPath . '/' . $fileName)) {
         unlink($buildPath . '/' . $fileName);
     }
     // first we check for the files
     if (!is_file("include/language/{$languageCode}.manifest.xml")) {
         // check for manifest
         throw new Exception("Manifest missing for language package {$languageName}");
     }
     // Export as Zip
     $zip = new Vtiger_Zip($buildPath . '/' . $fileName);
     // Add manifest file
     $zip->addFile("include/language/{$languageCode}.manifest.xml", 'manifest.xml');
     // Add calendar files
     $zip->copyFileFromDisk('jscalendar/', 'jscalendar/', 'calendar-setup.js');
     $zip->copyFileFromDisk('jscalendar/lang/', 'jscalendar/lang/', 'calendar-' . substr($languageCode, 0, 2) . '.js');
     //$zip->copyFileFromDisk('modules/Emails/language/','modules/Emails/language/','phpmailer.lang-'.$languageCode.'.php');
     // Copy module/include language files
     foreach (glob("{modules,include}/*/language/{$languageCode}.lang.{php,js}", GLOB_BRACE) as $langfile) {
         $fname = basename($langfile);
         $dname = dirname($langfile);
         $zip->copyFileFromDisk($dname, $dname, $fname);
     }
     $zip->copyFileFromDisk('include/language/', 'include/language/', $languageCode . '.lang.php');
     $zip->copyFileFromDisk('include/js/', 'include/js/', $languageCode . '.lang.js');
     $zip->save();
 }
Exemplo n.º 2
0
 static function languageFromFilesystem($languageCode, $languageName, $directDownload = false)
 {
     // first we check for the files
     $wehavefiles = file_exists("include/language/{$languageCode}.manifest.xml");
     // check for manifest
     if ($wehavefiles) {
         // Export as Zip
         if (file_exists('packages/optional/manifest.xml')) {
             @unlink('packages/optional/manifest.xml');
         }
         @copy("include/language/{$languageCode}.manifest.xml", 'packages/optional/manifest.xml');
         $mpkg = 'packages/optional/' . $languageName;
         $zipfilename = $mpkg . '.zip';
         if (file_exists($zipfilename)) {
             @unlink($zipfilename);
         }
         $zip = new Vtiger_Zip($zipfilename);
         // Add manifest file
         $zip->copyFileFromDisk('packages/optional/', '', 'manifest.xml');
         // Add calendar files
         $zip->copyFileFromDisk('jscalendar/', 'jscalendar/', 'calendar-setup.js');
         $zip->copyFileFromDisk('jscalendar/lang/', 'jscalendar/lang/', 'calendar-' . substr($languageCode, 0, 2) . '.js');
         // Copy module/include language files
         foreach (glob('{modules,include}/*/language/' . $languageCode . '.lang.{php,js}', GLOB_BRACE) as $langfile) {
             $fname = basename($langfile);
             $dname = dirname($langfile);
             $zip->copyFileFromDisk($dname, $dname, $fname);
         }
         $zip->copyFileFromDisk('include/language/', 'include/language/', $languageCode . '.lang.php');
         $zip->copyFileFromDisk('include/js/', 'include/js/', $languageCode . '.lang.js');
         $zip->save();
         if ($directDownload) {
             $zip->forceDownload($mpkg . '.zip');
         }
         @unlink('packages/optional/manifest.xml');
     } else {
         echo "ERROR: One or more files necessary to create package are missing";
     }
 }