Ejemplo n.º 1
0
 public function syncPhrases($addonId)
 {
     $phrases = $this->getModelFromCache('XenForo_Model_Phrase')->getMasterPhrasesInAddOn($addonId);
     $phraseFile = new DevTools_File_Phrase();
     $files = array();
     foreach ($phrases as $phrase) {
         $files[$phrase['phrase_id']] = array_merge($phrase, array('id' => $phrase['phrase_id'], 'title' => $phrase['title'], 'contents' => $phrase['phrase_text'], 'lastModifiedTime' => $phrase['last_file_update']));
         $files[$phrase['phrase_id']]['fileName'] = $phraseFile->getFileName($files[$phrase['phrase_id']]);
         $files[$phrase['phrase_id']]['filePath'] = $phraseFile->getDirectory($files[$phrase['phrase_id']]) . DIRECTORY_SEPARATOR . $files[$phrase['phrase_id']]['fileName'];
     }
     $extraFiles = array();
     $this->getFilesFromDirectory($phraseFile->getDirectory(array('addon_id' => $addonId)), $extraFiles);
     foreach ($extraFiles as $k => $file) {
         $file['global_cache'] = strpos($file['fileName'], 'global.txt') == strlen($file['fileName']) - 10;
         $files[$k] = $file;
     }
     DevTools_File_Phrase::setOriginalFiles($files);
     $deletedFiles = array();
     $newFiles = array();
     foreach ($files as $f) {
         $file = new DevTools_File_Phrase($f['filePath'], $f['id']);
         if ($file->isNewFile()) {
             $newFiles[$f['filePath']] = $file;
         } else {
             $file->detectChangesAndUpdate();
         }
     }
     foreach ($newFiles as $file) {
         $file->detectChangesAndUpdate();
     }
 }