Файловый менеджер - Редактировать - /home/c7lekhnath/silverray.com.au/Modules/Language/database/seeders/68334/Traits.tar
Назад
TranslateableModelsTrait.php 0000644 00000000551 15012230753 0012205 0 ustar 00 <?php namespace Modules\Language\app\Traits; use Modules\Language\app\Enums\TranslationModels; trait TranslateableModelsTrait { public function getTranslateableModelsArray(): array { return TranslationModels::getAll(); } public function getIgnoredColumsArray(): array { return TranslationModels::igonreColumns(); } } SyncModelsTrait.php 0000644 00000010707 15012230753 0010344 0 ustar 00 <?php namespace Modules\Language\app\Traits; use Illuminate\Support\Facades\Log; use Modules\Language\app\Enums\SyncLanguageType; use Modules\Language\app\Jobs\CreateNewTranslatedDataJob; use Modules\Language\app\Jobs\DeleteTranslationDataJob; use Modules\Language\app\Jobs\UpdateTranslationCodeJob; use Modules\Language\app\Models\Language; use Modules\Language\app\Traits\TranslateableModelsTrait; trait SyncModelsTrait { use TranslateableModelsTrait; private function syncModels(string $type, bool $shouldQueue, string $code, ?string $oldCode = null) { $defaultCode = Language::first()->code; if ($type == SyncLanguageType::CREATE->value) { if ($shouldQueue) { return $this->createModelsFromQueue($defaultCode, $code); } return $this->createModels($defaultCode, $code); } elseif ($type == SyncLanguageType::UPDATE->value) { if ($shouldQueue) { return $this->updateModelsFromQueue($oldCode, $code); } return $this->updateModels($oldCode, $code); } elseif ($type == SyncLanguageType::DELETE->value) { if ($shouldQueue) { return $this->deleteModelsFromQueue($code); } return $this->deleteModels($code); } } private function createModels($defaultCode, $newCode) { $models = $this->getTranslateableModelsArray(); $ignoredColumns = $this->getIgnoredColumsArray(); foreach ($models as $translateAbleModel) { $countCreatedModels = 0; $oldModels = $translateAbleModel::where('lang_code', $defaultCode)->get(); foreach ($oldModels as $oldModel) { if (! $translateAbleModel::where(['id' => $oldModel->id, 'lang_code' => $newCode])->exists()) { $newModel = new $translateAbleModel(); $newModel->lang_code = $newCode; foreach ($oldModel->toArray() as $key => $value) { if (! in_array($key, $ignoredColumns)) { $newModel->$key = $value; } } $newModel->save(); $countCreatedModels++; } } Log::info("Total { $countCreatedModels } new recordes has been saved into {$translateAbleModel} model for {$newCode} Language"); } return true; } private function createModelsFromQueue($defaultCode, $newCode) { $models = $this->getTranslateableModelsArray(); foreach ($models as $translateableModel) { dispatch(new CreateNewTranslatedDataJob($defaultCode, $newCode, $translateableModel)); } return true; } private function updateModels($oldCode, $newCode) { $models = $this->getTranslateableModelsArray(); foreach ($models as $translateAbleModel) { $countCreatedModels = 0; $oldModels = $translateAbleModel::where('lang_code', $oldCode)->get(); foreach ($oldModels as $oldModel) { $oldModel->lang_code = $newCode; $oldModel->save(); $countCreatedModels++; } Log::info("Total { $countCreatedModels } new recordes has been updated on {$translateAbleModel} model for {$newCode} Language"); } return true; } private function updateModelsFromQueue($oldCode, $newCode) { $models = $this->getTranslateableModelsArray(); foreach ($models as $translateableModel) { dispatch(new UpdateTranslationCodeJob($oldCode, $newCode, $translateableModel)); } return true; } private function deleteModels($code) { $models = $this->getTranslateableModelsArray(); foreach ($models as $translateAbleModel) { $deleteModels = $translateAbleModel::where('lang_code', $code); $countCreatedModels = $deleteModels->count(); $deleteModels->delete(); Log::info("Total { $countCreatedModels } recordes has been deleted into {$translateAbleModel} model for {$code} Language"); } return true; } private function deleteModelsFromQueue($code) { $models = $this->getTranslateableModelsArray(); foreach ($models as $translateableModel) { dispatch(new DeleteTranslationDataJob($code, $translateableModel)); } return true; } } GenerateTranslationTrait.php 0000644 00000005445 15012230753 0012240 0 ustar 00 <?php namespace Modules\Language\app\Traits; use Exception; use Illuminate\Support\Facades\Log; use Modules\Language\app\Enums\TranslationModels; use Modules\Language\app\Models\Language; use Stichoza\GoogleTranslate\GoogleTranslate; trait GenerateTranslationTrait { /** * use this trait to automatically generate translation fields * for models and save to database */ protected function generateTranslations( TranslationModels $translationModel, object $model, string $forignKey, object $request, bool $translateField = false, array $customFields = [], ?string $translationModelCustom = null, ) { if (! $translationModelCustom) { $translationClass = $translationModel->value; } $languages = Language::all(); try { $validated = $request->validated(); } catch (Exception $ex) { Log::error($ex->getMessage()); $validated = $request->all(); } foreach ($languages as $language) { $translationModel = new $translationClass(); $translationModel->lang_code = $language->code; $translationModel->$forignKey = $model->id; $translationModel->fill($validated); if ($customFields) { if ($translateField) { try { $tr = new GoogleTranslate($language->code); } catch (Exception $ex) { Log::error($ex->getMessage()); $tr = false; } } foreach ($customFields as $key => $value) { $code = $request->code ? $request->code : $request->lang_code ?? ''; if ($language->code !== $code) { $afterTrans = $tr ? $tr->translate($value) : $value; $translationModel->$key = $afterTrans ?? $value; } else { $translationModel->$key = $value; } } } $translationModel->save(); } } protected function updateTranslations( object $model, object $request, array $validatedData, array $customFields = [] ) { $code = $request->code ?? $request->lang_code; $translation = $model->translations()->where('lang_code', $code)->first(); if ($customFields) { foreach ($customFields as $key => $value) { $validatedData[$key] = $value; } } if ($translation) { $translation->update($validatedData); } else { $model->translations()->create(array_merge(['lang_code' => $code], $validatedData)); } } } error_log 0000644 00000000322 15012230753 0006454 0 ustar 00 [07-May-2025 19:12:19 UTC] PHP Fatal error: Trait "Modules\Language\app\Traits\TranslateableModelsTrait" not found in /home/lekhnath/silverray.com.au/Modules/Language/app/Traits/SyncModelsTrait.php on line 13 LanguageTrait.php 0000644 00000002155 15012230753 0010005 0 ustar 00 <?php namespace Modules\Language\app\Traits; use Exception; use Illuminate\Support\Facades\Log; trait LanguageTrait { private function deleteFolder($folderPath) { if (is_dir($folderPath)) { $files = scandir($folderPath); foreach ($files as $file) { if ($file != '.' && $file != '..') { $this->deleteFolder($folderPath.'/'.$file); } } rmdir($folderPath); } else { unlink($folderPath); } } private function copyPasteFile($code, $file, $dataArray) { $originalFileContent = file_get_contents(base_path("lang/{$code}/{$file}.php")); try { file_put_contents(base_path("lang/{$code}/{$file}.php"), ''); $dataArray = var_export($dataArray, true); file_put_contents(base_path("lang/{$code}/{$file}.php"), "<?php\n return {$dataArray};\n ?>"); } catch (Exception $e) { Log::error($e->getMessage()); file_put_contents(base_path("lang/{$code}/{$file}.php"), $originalFileContent); } } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.20 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка