From d57e83cb76cb17e09bb45d12fd4fe7bdd2eef954 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=9Cmit=20Tun=C3=A7?= Date: Tue, 28 Apr 2026 22:16:10 +0300 Subject: [PATCH] feat: implement global settings management with database defaults and admin UI configuration --- app/Functions/languages.php | 6 ++- ...28_220700_add_common_settings_defaults.php | 24 ++++++++- .../type/settings/common-settings.blade.php | 2 - .../settings/predefined-variables.blade.php | 50 +++++++++---------- scratch/test_languages.php | 7 +++ scratch/test_trans.php | 16 ++++++ 6 files changed, 74 insertions(+), 31 deletions(-) create mode 100644 scratch/test_languages.php create mode 100644 scratch/test_trans.php diff --git a/app/Functions/languages.php b/app/Functions/languages.php index c8e3d4c..9f88a32 100644 --- a/app/Functions/languages.php +++ b/app/Functions/languages.php @@ -1,5 +1,9 @@ 'Citrus CMS', - 'project_name_ru' => '', 'project_number' => '', 'company_code' => '', 'row_count' => '20', @@ -24,6 +23,7 @@ return new class extends Migration { 'header_color' => 'bg-primary-dark', 'DevExpress_Theme' => 'dx.material.orange.light.compact.css', 'pdf_template_path' => 'default', + 'languages' => json_encode(['en', 'tr']), ]; foreach ($settings as $key => $value) { @@ -39,6 +39,27 @@ return new class extends Migration { ]); } } + + $translations = [ + ['icerik' => 'en', 'ceviri' => 'English', 'dil' => 'en'], + ['icerik' => 'tr', 'ceviri' => 'Türkçe', 'dil' => 'en'], + ['icerik' => 'en', 'ceviri' => 'English', 'dil' => 'tr'], + ['icerik' => 'tr', 'ceviri' => 'Türkçe', 'dil' => 'tr'], + ]; + + foreach ($translations as $trans) { + $exists = DB::table('translate') + ->where('icerik', $trans['icerik']) + ->where('dil', $trans['dil']) + ->exists(); + + if (!$exists) { + DB::table('translate')->insert(array_merge($trans, [ + 'created_at' => now(), + 'updated_at' => now(), + ])); + } + } } /** @@ -60,6 +81,7 @@ return new class extends Migration { 'DevExpress_Theme', 'pdf_template_path', 'handover_control_count', + 'languages', ]; DB::table('settings')->whereIn('title', $keys)->delete(); diff --git a/resources/views/admin/type/settings/common-settings.blade.php b/resources/views/admin/type/settings/common-settings.blade.php index 13c22e7..cb78e40 100644 --- a/resources/views/admin/type/settings/common-settings.blade.php +++ b/resources/views/admin/type/settings/common-settings.blade.php @@ -31,8 +31,6 @@ if (getisset("update")) { @csrf {{e2("Project Name")}}: - {{e2("Project Russian Name ")}}: - {{e2("Project Number")}}: {{e2("Company Code")}}: diff --git a/resources/views/admin/type/settings/predefined-variables.blade.php b/resources/views/admin/type/settings/predefined-variables.blade.php index e329b6f..ac3891c 100644 --- a/resources/views/admin/type/settings/predefined-variables.blade.php +++ b/resources/views/admin/type/settings/predefined-variables.blade.php @@ -1,48 +1,44 @@ - $value) { +if (getisset("update")) { + foreach ($_POST as $key => $value) { + if (is_array($value)) { + $value = json_encode($value, JSON_UNESCAPED_UNICODE); + } firstOrUpdate([ 'title' => $key, 'html' => $value - ],"settings",[ + ], "settings", [ 'title' => $key ]); } - + } $variables = [ - 'Document Procedure Type' => 'document_procedure_type', - 'Publisher' => 'publisher', - 'RFI Status' => 'rfi-status', - 'Erection Type' => 'erection_type', - 'Erection Materials Name' => 'erection_materials_name', - 'NCR Current Types' => 'ncr_types', - 'NCR Current Status' => 'ncr_current_status', - 'Unit (KG-MM)' => 'unit_kgmetc', + 'Languages' => 'languages', + ]; ?>
@csrf - @foreach($variables AS $name => $key) - {{e2($name)}}: - + @foreach($variables as $name => $key) + {{e2($name)}}: + @endforeach - +
\ No newline at end of file diff --git a/scratch/test_languages.php b/scratch/test_languages.php new file mode 100644 index 0000000..478d42c --- /dev/null +++ b/scratch/test_languages.php @@ -0,0 +1,7 @@ +make(Illuminate\Contracts\Console\Kernel::class); +$kernel->bootstrap(); + +print_r(languages()); diff --git a/scratch/test_trans.php b/scratch/test_trans.php new file mode 100644 index 0000000..0e73d33 --- /dev/null +++ b/scratch/test_trans.php @@ -0,0 +1,16 @@ +make(Illuminate\Contracts\Console\Kernel::class); +$kernel->bootstrap(); + +use Illuminate\Support\Facades\DB; + +$langs = ['en', 'tr']; +foreach ($langs as $lang) { + echo "Translations for $lang:\n"; + $trans = DB::table('translate')->where('dil', $lang)->get(); + foreach ($trans as $t) { + echo " - {$t->icerik} => {$t->ceviri}\n"; + } +}