AnonSec Team
Server IP : 72.167.149.90  /  Your IP : 216.73.216.228
Web Server : Apache
System : Linux server.zoomride.app 4.18.0-553.158.1.el8_10.x86_64 #1 SMP Wed Aug 26 03:18:33 EDT 2026 x86_64
User : zoomride2022 ( 1001)
PHP Version : 8.3.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0711) :  /home/zoomride2022/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/zoomride2022/.bash_history
                    $account->preferred_language = $lang;
                    $account->save();
                }

                break;
            }
        }

        return redirect()->back();
    }

    public function usefulPage
CODE;

    $contents = preg_replace(
        $pattern,
        $replacement,
        $contents,
        1,
        $count
    );

    if ($count !== 1) {
        throw new RuntimeException("Language-switch method was not located. Replacement count: {$count}");
    }

    if (file_put_contents($file, $contents) === false) {
        throw new RuntimeException("Unable to write {$file}");
    }

    echo "Updated: {$file}\n";
} else {
    echo "Already updated: {$file}\n";
}
PHP

#1787321388
clear
#1787321390
php <<'PHP'
<?php

$files = [
    'app/Http/Controllers/User/Auth/RegisterController.php' =>
        'return User::create($data);',

    'app/Http/Controllers/Merchant/Auth/RegisterController.php' =>
        'return Merchant::create($data);',

    'app/Http/Controllers/Agent/Auth/RegisterController.php' =>
        'return Agent::create($data);',
];

foreach ($files as $file => $returnStatement) {
    $contents = file_get_contents($file);

    if ($contents === false) {
        throw new RuntimeException("Unable to read {$file}");
    }

    if (str_contains($contents, "\$data['preferred_language']")) {
        echo "Already updated: {$file}\n";
        continue;
    }

    if (! str_contains($contents, $returnStatement)) {
        throw new RuntimeException("Registration return statement not found in {$file}");
    }

    $replacement =
        "\$data['preferred_language'] = in_array(app()->getLocale(), ['en', 'ar'], true)\n" .
        "            ? app()->getLocale()\n" .
        "            : 'en';\n\n" .
        "        {$returnStatement}";

    $contents = str_replace(
        $returnStatement,
        $replacement,
        $contents,
        $count
    );

    if ($count !== 1) {
        throw new RuntimeException("Unexpected replacement count in {$file}: {$count}");
    }

    if (file_put_contents($file, $contents) === false) {
        throw new RuntimeException("Unable to write {$file}");
    }

    echo "Updated: {$file}\n";
}
PHP

#1787321400
clear
#1787321402
php -l app/Http/Controllers/SiteController.php
#1787321402
php -l app/Http/Controllers/User/Auth/RegisterController.php
#1787321403
php -l app/Http/Controllers/Merchant/Auth/RegisterController.php
#1787321403
php -l app/Http/Controllers/Agent/Auth/RegisterController.php
#1787321404
php artisan optimize:clear
#1787321412
grep -n -A 35 "function changeLanguage" app/Http/Controllers/SiteController.php
#1787321412
grep -n -B 3 -A 6 "preferred_language" app/Http/Controllers/User/Auth/RegisterController.php app/Http/Controllers/Merchant/Auth/RegisterController.php app/Http/Controllers/Agent/Auth/RegisterController.php
#1787321434
grep -n -A 35 "function changeLanguage" app/Http/Controllers/SiteController.php
#1787321434
grep -n -B 3 -A 6 "preferred_language" app/Http/Controllers/User/Auth/RegisterController.php app/Http/Controllers/Merchant/Auth/RegisterController.php app/Http/Controllers/Agent/Auth/RegisterController.php
#1787321444
php artisan tinker --execute='dump(App\Models\User::query()->select("id","email","preferred_language")->latest("id")->take(10)->get()->toArray());'
#1787321511
clear
#1787321514
cd /home/zoomride2022/public_html/syrpayment.com
#1787321514
cp app/Http/Controllers/Api/User/Auth/LoginController.php app/Http/Controllers/Api/User/Auth/LoginController.php.backup-language-20260821
#1787321514
cp app/Http/Controllers/Api/Merchant/Auth/LoginController.php app/Http/Controllers/Api/Merchant/Auth/LoginController.php.backup-language-20260821
#1787321514
cp app/Http/Controllers/Api/Agent/Auth/LoginController.php app/Http/Controllers/Api/Agent/Auth/LoginController.php.backup-language-20260821
#1787321514
cp app/Http/Middleware/Api/HandleLocalization.php app/Http/Middleware/Api/HandleLocalization.php.backup-language-20260821
#1787321523
php <<'PHP'
<?php

$files = [
    'app/Http/Controllers/Api/User/Auth/LoginController.php',
    'app/Http/Controllers/Api/Merchant/Auth/LoginController.php',
    'app/Http/Controllers/Api/Agent/Auth/LoginController.php',
];

foreach ($files as $file) {
    $contents = file_get_contents($file);

    if ($contents === false) {
        throw new RuntimeException("Unable to read {$file}");
    }

    if (str_contains($contents, '$user->preferred_language')) {
        echo "Already updated: {$file}\n";
        continue;
    }

    $target = '$user->registered_by';

    $position = strpos($contents, $target);

    if ($position === false) {
        throw new RuntimeException("registered_by assignment not found in {$file}");
    }

    $lineEnd = strpos($contents, "\n", $position);

    if ($lineEnd === false) {
        throw new RuntimeException("Unable to locate end of registered_by line in {$file}");
    }

    $insertion = <<<'CODE'

        $user->preferred_language = in_array(app()->getLocale(), ['en', 'ar'], true)
            ? app()->getLocale()
            : 'en';
CODE;

    $contents = substr_replace(
        $contents,
        $insertion,
        $lineEnd,
        0
    );

    if (file_put_contents($file, $contents) === false) {
        throw new RuntimeException("Unable to write {$file}");
    }

    echo "Updated: {$file}\n";
}
PHP

#1787321532
cat > app/Http/Middleware/Api/HandleLocalization.php <<'PHP'
<?php

namespace App\Http\Middleware\Api;

use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\App;

class HandleLocalization
{
    public function handle(Request $request, Closure $next)
    {
        $allowedLanguages = ['en', 'ar'];
        $requestedLanguage = $request->get('lang');
        $account = $request->user();

        if (in_array($requestedLanguage, $allowedLanguages, true)) {
            App::setLocale($requestedLanguage);

            if (
                $account &&
                isset($account->preferred_language) &&
                $account->preferred_language !== $requestedLanguage
            ) {
                $account->preferred_language = $requestedLanguage;
                $account->save();
            }
        } elseif (
            $account &&
            method_exists($account, 'preferredLocale')
        ) {
            App::setLocale($account->preferredLocale());
        } else {
            App::setLocale('en');
        }

        return $next($request);
    }
}
PHP

#1787321540
php -l app/Http/Controllers/Api/User/Auth/LoginController.php
#1787321540
php -l app/Http/Controllers/Api/Merchant/Auth/LoginController.php
#1787321540
php -l app/Http/Controllers/Api/Agent/Auth/LoginController.php
#1787321540
php -l app/Http/Middleware/Api/HandleLocalization.php
#1787321542
php artisan optimize:clear
#1787321549
grep -n -B 3 -A 6 "preferred_language" app/Http/Controllers/Api/User/Auth/LoginController.php app/Http/Controllers/Api/Merchant/Auth/LoginController.php app/Http/Controllers/Api/Agent/Auth/LoginController.php
#1787321557
php artisan tinker --execute='dump(App\Models\User::where("email","basel.alyasin@gmail.com")->first()?->only(["email","preferred_language"]));'
#1787321602
clear
#1787321605
cd /home/zoomride2022/public_html/syrpayment.com
#1787321605
cp app/Http/Middleware/LanguageMiddleware.php app/Http/Middleware/LanguageMiddleware.php.backup-preference-20260821
#1787321611
cat > app/Http/Middleware/LanguageMiddleware.php <<'PHP'
<?php

namespace App\Http\Middleware;

use App\Models\Admin\Language;
use Closure;

class LanguageMiddleware
{
    public function handle($request, Closure $next)
    {
        $allowedLanguages = ['en', 'ar'];
        $locale = null;

        /*
         * For authenticated accounts, the database preference is authoritative.
         */
        foreach (['web', 'merchant', 'agent'] as $guard) {
            if (auth()->guard($guard)->check()) {
                $account = auth()->guard($guard)->user();
                $preferred = $account->preferred_language ?? null;

                if (in_array($preferred, $allowedLanguages, true)) {
                    $locale = $preferred;
                }

                break;
            }
        }

        /*
         * Guests continue using the language selected in their session.
         */
        if (! $locale) {
            $sessionLanguage = session('local') ?? session('lang');

            if (in_array($sessionLanguage, $allowedLanguages, true)) {
                $locale = $sessionLanguage;
            }
        }

        /*
         * Final fallback is the configured default language, then English.
         */
        if (! $locale) {
            $locale = $this->getCode();
        }

        if (! in_array($locale, $allowedLanguages, true)) {
            $locale = 'en';
        }

        session()->put('local', $locale);
        session()->put('lang', $locale);
        app()->setLocale($locale);

        return $next($request);
    }

    public function getCode()
    {
        $language = Language::where('status', 1)->first();

        return $language ? $language->code : 'en';
    }
}
PHP

#1787321621
php -l app/Http/Middleware/LanguageMiddleware.php
#1787321621
php artisan optimize:clear
#1787321629
php artisan tinker --execute='$u=App\Models\User::where("email","basel.alyasin@gmail.com")->firstOrFail(); $u->preferred_language="ar"; $u->save(); dump($u->only(["email","preferred_language"]));'
#1787321642
find lang resources/lang -maxdepth 2 -type f -print 2>/dev/null | sort
#1787321648
grep -Rni -E '"Regards,"|"Hello!"|"Whoops!"|having trouble clicking|Thank you for using' lang resources/lang 2>/dev/null | head -100
#1787321802
clear
#1787321805
grep -RniE 'Regards|Hello|Whoops|having trouble|Thank you' lang resources/lang 2>/dev/null | head -50
#1787321849
clear
#1787321852
grep -RniE 'Regards|Hello|Whoops|having trouble|Thank you' lang/ar* resources/lang/ar* 2>/dev/null
#1787321871
clear
#1787321878
grep -RniE 'Regards|Hello|Whoops|having trouble|Thank you' lang resources/lang 2>/dev/null | head -50
#1787321909
clear
#1787321912
find lang resources/lang -maxdepth 2 -type f -print 2>/dev/null | sort
#1787321951
clear
#1787321953
find lang resources/lang -maxdepth 2 -type f -print 2>/dev/null | sort
#1787321998
clear
#1787322002
php artisan tinker --execute='foreach(["Hello!","Whoops!","Regards,","Thank you for using our application!","If you'\''re having trouble clicking the \":actionText\" button, copy and paste the URL below\ninto your web browser:"] as $k) dump([$k => __($k,[],"ar")]);'
#1787322031
clear
#1787322035
cd /home/zoomride2022/public_html/syrpayment.com
#1787322036
cp lang/ar.json lang/ar.json.backup-email-20260821
#1787322048
php <<'PHP'
<?php

$file = 'lang/ar.json';
$data = json_decode(file_get_contents($file), true, 512, JSON_THROW_ON_ERROR);

$data['Hello!'] = 'مرحباً!';
$data['Whoops!'] = 'عذراً!';
$data['Regards,'] = 'مع تحياتنا،';
$data["If you're having trouble clicking the \":actionText\" button, copy and paste the URL below\ninto your web browser:"] =
    "إذا واجهت مشكلة في الضغط على زر \":actionText\"، فانسخ الرابط أدناه والصقه في متصفحك:";

file_put_contents(
    $file,
    json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT) . PHP_EOL
);

echo "Arabic email translations updated.\n";
PHP

#1787322056
php -r 'json_decode(file_get_contents("lang/ar.json"), true, 512, JSON_THROW_ON_ERROR); echo "Valid JSON\n";'
#1787322056
php artisan optimize:clear
#1787322064
php artisan tinker --execute='foreach(["Hello!","Whoops!","Regards,"] as $k) dump([$k => __($k,[],"ar")]);'
#1787322108
clear
#1787322118
php artisan tinker --execute='$k="If you'\''re having trouble clicking the \":actionText\" button, copy and paste the URL below\ninto your web browser:"; dump(__($k,["actionText"=>"SyrPayment"],"ar"));'
#1787322125
sed -n '1,180p' resources/views/vendor/mail/html/layout.blade.php
#1787322134
grep -n -B 5 -A 12 "Salutation" resources/views/vendor/notifications/email.blade.php
#1787322163
clear
#1787322166
cp resources/views/vendor/mail/html/layout.blade.php resources/views/vendor/mail/html/layout.blade.php.backup-rtl-20260821
#1787322166
cp resources/views/vendor/notifications/email.blade.php resources/views/vendor/notifications/email.blade.php.backup-rtl-20260821
#1787322175
php <<'PHP'
<?php

$file = 'resources/views/vendor/mail/html/layout.blade.php';
$content = file_get_contents($file);

$replacements = [
    '<!DOCTYPE html' =>
        "@php(\$isRtl = app()->getLocale() === 'ar')\n<!DOCTYPE html",

    '<html xmlns="http://www.w3.org/1999/xhtml">' =>
        '<html xmlns="http://www.w3.org/1999/xhtml" lang="{{ app()->getLocale() }}" dir="{{ $isRtl ? \'rtl\' : \'ltr\' }}">',

    '<body>' =>
        '<body dir="{{ $isRtl ? \'rtl\' : \'ltr\' }}" style="direction: {{ $isRtl ? \'rtl\' : \'ltr\' }}; text-align: {{ $isRtl ? \'right\' : \'left\' }};">',

    '<td class="content-cell">' =>
        '<td class="content-cell" dir="{{ $isRtl ? \'rtl\' : \'ltr\' }}" align="{{ $isRtl ? \'right\' : \'left\' }}" style="direction: {{ $isRtl ? \'rtl\' : \'ltr\' }}; text-align: {{ $isRtl ? \'right\' : \'left\' }};">',
];

foreach ($replacements as $old => $new) {
    if (! str_contains($content, $old)) {
        throw new RuntimeException("Expected layout code not found: {$old}");
    }

    $content = str_replace($old, $new, $content, $count);

    if ($count !== 1) {
        throw new RuntimeException("Unexpected replacement count for {$old}: {$count}");
    }
}

file_put_contents($file, $content);

echo "Email RTL/LTR layout updated.\n";
PHP

#1787322182
php <<'PHP'
<?php

$file = 'resources/views/vendor/notifications/email.blade.php';
$content = file_get_contents($file);

$old = <<<'BLADE'
@lang('Regards,')<br>
{{ config('app.name') }}
BLADE;

$new = <<<'BLADE'
@lang('Regards,')<br>
{{ app()->getLocale() === 'ar' ? 'مدفوعات سوريا' : 'SyrPayment' }}
BLADE;

if (! str_contains($content, $old)) {
    throw new RuntimeException('Notification signature code was not found.');
}

$content = str_replace($old, $new, $content, $count);

if ($count !== 1) {
    throw new RuntimeException("Unexpected signature replacement count: {$count}");
}

file_put_contents($file, $content);

echo "Localized email signature updated.\n";
PHP

#1787322189
php artisan view:clear
#1787322190
php artisan optimize:clear
#1787322197
grep -nE 'isRtl|lang=|dir=|content-cell' resources/views/vendor/mail/html/layout.blade.php
#1787322197
grep -n -A 4 "Regards" resources/views/vendor/notifications/email.blade.php
#1787322306
clear
#1787322315
sed -n '1,160p' resources/views/vendor/mail/html/footer.blade.php
#1787322321
grep -RniE 'SyrPayment|config.*app.name' resources/views/vendor/mail resources/views/vendor/notifications --exclude='*.backup*'
#1787322350
clear
#1787322353
sed -n '1,80p' resources/views/vendor/mail/html/message.blade.php
#1787322354
sed -n '1,80p' resources/views/vendor/mail/text/message.blade.php
#1787322360
php artisan tinker --execute='dump(__("All rights reserved.",[],"ar"));'
#1787322400
clear
#1787322403
cp resources/views/vendor/mail/html/message.blade.php resources/views/vendor/mail/html/message.blade.php.backup-language-20260821
#1787322403
cp resources/views/vendor/mail/text/message.blade.php resources/views/vendor/mail/text/message.blade.php.backup-language-20260821
#1787322411
php <<'PHP'
<?php

$files = [
    'resources/views/vendor/mail/html/message.blade.php',
    'resources/views/vendor/mail/text/message.blade.php',
];

$old = "{{ config('app.name') }}";
$new = "{{ app()->getLocale() === 'ar' ? 'مدفوعات سوريا' : 'SyrPayment' }}";

foreach ($files as $file) {
    $content = file_get_contents($file);

    if ($content === false) {
        throw new RuntimeException("Unable to read {$file}");
    }

    $count = substr_count($content, $old);

    if ($count !== 2) {
        throw new RuntimeException("Expected 2 brand references in {$file}; found {$count}");
    }

    $content = str_replace($old, $new, $content);

    if (file_put_contents($file, $content) === false) {
        throw new RuntimeException("Unable to write {$file}");
    }

    echo "Updated: {$file}\n";
}
PHP

#1787322420
php <<'PHP'
<?php

$file = 'lang/ar.json';
$data = json_decode(file_get_contents($file), true, 512, JSON_THROW_ON_ERROR);

$data['All rights reserved.'] = 'جميع الحقوق محفوظة.';

file_put_contents(
    $file,
    json_encode(
        $data,
        JSON_UNESCAPED_UNICODE |
        JSON_UNESCAPED_SLASHES |
        JSON_PRETTY_PRINT
    ) . PHP_EOL
);

echo "Arabic footer translation added.\n";
PHP

#1787322429
php -r 'json_decode(file_get_contents("lang/ar.json"), true, 512, JSON_THROW_ON_ERROR); echo "Valid JSON\n";'
#1787322429
php artisan optimize:clear
#1787322436
grep -RniE "مدفوعات سوريا|All rights reserved" resources/views/vendor/mail/html/message.blade.php resources/views/vendor/mail/text/message.blade.php
#1787322437
php artisan tinker --execute='dump(__("All rights reserved.",[],"ar"));'
#1787322481
clear
#1787322484
grep -Rli --exclude-dir=vendor -E 'extends Notification|new MailMessage' app | head -30
#1787322492
php artisan tinker --execute='$u=App\Models\User::where("email","basel.alyasin@gmail.com")->first(); dump($u?->only(["id","email","status","preferred_language"]));'
#1787322524
clear
#1787322528
find app/Notifications/User -type f -name '*.php' -print | head -30
#1787322535
sed -n '1,220p' app/Notifications/User/Auth/SendVerifyCode.php
#1787322543
find app/Notifications -type f -iname '*verify*code*.php' -print
#1787322608
clear
#1787322612
php artisan tinker --execute='foreach(["Hello","Verification Code ( Register )","You are trying to verify code for register.","Here is your OTP","Thank you for using our application!"] as $k) dump([$k=>__($k,[],"ar")]);'
#1787322646
clear
#1787322649
php artisan tinker --execute='$u=App\Models\User::where("email","basel.alyasin@gmail.com")->firstOrFail(); dump(["app_locale_before"=>app()->getLocale(),"user_preference"=>$u->preferredLocale()]); $u->notify(new App\Notifications\User\Auth\SendVerifyCode($u->email,"482193")); dump("Arabic verification email sent.");'
#1787322911
grep -nE '^h1|^h2|^h3|^p |^\.content-cell|^\.subcopy|text-align' resources/views/vendor/mail/html/themes/default.css | head -80
#1787322919
clear
#1787323024
cd home/zoomride2022/public_html/syrpayment.com
#1787323072
clear
#1787323077
cd /home/zoomride2022/public_html/syrpayment.com
#1787323086
grep -nE '^h1|^h2|^h3|^p |^\.content-cell|^\.subcopy|text-align' resources/views/vendor/mail/html/themes/default.css | head -80
#1787323095
tail -90 resources/views/vendor/mail/html/themes/default.css
#1787323147
clear
#1787323150
cp resources/views/vendor/mail/html/themes/default.css resources/views/vendor/mail/html/themes/default.css.backup-rtl-20260821
#1787323157
php <<'PHP'
<?php

$file = 'resources/views/vendor/mail/html/themes/default.css';
$content = file_get_contents($file);

$marker = '/* SyrPayment Arabic RTL email */';

if (str_contains($content, $marker)) {
    echo "RTL email CSS already exists.\n";
    exit;
}

$rtlCss = <<<'CSS'

/* SyrPayment Arabic RTL email */
html[dir="rtl"] .inner-body {
    direction: rtl !important;
}

html[dir="rtl"] .content-cell {
    direction: rtl !important;
    text-align: right !important;
}

html[dir="rtl"] .content-cell h1,
html[dir="rtl"] .content-cell h2,
html[dir="rtl"] .content-cell h3,
html[dir="rtl"] .content-cell p {
    direction: rtl !important;
    text-align: right !important;
}

html[dir="rtl"] .subcopy,
html[dir="rtl"] .subcopy p {
    direction: rtl !important;
    text-align: right !important;
}

html[dir="rtl"] .content-cell h1,
html[dir="rtl"] .content-cell p {
    unicode-bidi: plaintext;
}

CSS;

if (file_put_contents($file, $content . $rtlCss) === false) {
    throw new RuntimeException("Unable to update {$file}");
}

echo "Arabic RTL email CSS added.\n";
PHP

#1787323168
php artisan view:clear
#1787323169
php artisan optimize:clear
#1787323178
tail -45 resources/views/vendor/mail/html/themes/default.css
#1787323189
php artisan tinker --execute='$u=App\Models\User::where("email","basel.alyasin@gmail.com")->firstOrFail(); $u->notify(new App\Notifications\User\Auth\SendVerifyCode($u->email,"739214")); dump(["sent"=>true,"language"=>$u->preferredLocale()]);'
#1787323382
clear
#1787323387
grep -Rni --exclude-dir=vendor -E "Update Profile|Profile Information|profile.update|updateProfile" resources/views/user app/Http/Controllers/User routes | head -50
#1787323395
grep -Rni --exclude-dir=vendor -E "Update Profile|Profile Information|profile.update|updateProfile" resources/views/merchant resources/views/agent app/Http/Controllers/Merchant app/Http/Controllers/Agent routes | head -80
#1787323427
clear
#1787323430
grep -Rni -E "name\(['\"]profile\.|profile\.update|function profileUpdate|function update" routes/web.php routes/user.php routes/merchant.php routes/agent.php app/Http/Controllers/User app/Http/Controllers/Merchant app/Http/Controllers/Agent 2>/dev/null | head -100
#1787323439
sed -n '1,150p' resources/views/user/sections/profile/index.blade.php
#1787323456
clear
#1787323461
sed -n '1,150p' resources/views/merchant/sections/profile/index.blade.php
#1787323470
sed -n '1,150p' resources/views/agent/sections/profile/index.blade.php
#1787323564
clear
#1787323569
sed -n '1,130p' app/Http/Controllers/User/ProfileController.php
#1787323584
sed -n '1,130p' app/Http/Controllers/Agent/ProfileController.php
#1787323647
clear
#1787323652
sed -n '1,140p' app/Http/Controllers/Merchant/ProfileController.php
#1787323692
clear
#1787323696
for file in app/Http/Controllers/User/ProfileController.php app/Http/Controllers/Merchant/ProfileController.php app/Http/Controllers/Agent/ProfileController.php resources/views/user/sections/profile/index.blade.php resources/views/merchant/sections/profile/index.blade.php resources/views/agent/sections/profile/index.blade.php; do     cp "$file" "$file.backup-preferred-language-20260821"; done
#1787323704
php <<'PHP'
<?php

$files = [
    'app/Http/Controllers/User/ProfileController.php',
    'app/Http/Controllers/Merchant/ProfileController.php',
    'app/Http/Controllers/Agent/ProfileController.php',
];

foreach ($files as $file) {
    $content = file_get_contents($file);

    if ($content === false) {
        throw new RuntimeException("Unable to read {$file}");
    }

    if (str_contains($content, "'preferred_language' => \"required|string|in:en,ar\"")) {
        echo "Already updated: {$file}\n";
        continue;
    }

    $target = '            \'image\'         => "nullable|image|mimes:jpg,png,svg,webp|max:10240",';

    $replacement = <<<'PHP_CODE'
            'preferred_language' => "required|string|in:en,ar",
            'image'         => "nullable|image|mimes:jpg,png,svg,webp|max:10240",
PHP_CODE;

    if (! str_contains($content, $target)) {
        throw new RuntimeException("Image validation line not found in {$file}");
    }

    $content = str_replace($target, $replacement, $content, $count);

    if ($count !== 1) {
        throw new RuntimeException("Unexpected replacement count in {$file}: {$count}");
    }

    if (file_put_contents($file, $content) === false) {
        throw new RuntimeException("Unable to update {$file}");
    }

    echo "Updated: {$file}\n";
}
PHP

#1787323713
php <<'PHP'
<?php

$files = [
    'resources/views/user/sections/profile/index.blade.php',
    'resources/views/merchant/sections/profile/index.blade.php',
    'resources/views/agent/sections/profile/index.blade.php',
];

$field = <<<'BLADE'
                                    <div class="col-xl-6 col-lg-6 form-group">
                                        <label>{{ __('Preferred Communication Language') }}<span>*</span></label>
                                        <select name="preferred_language" class="form--control">
                                            <option value="en"
                                                @selected(old('preferred_language', auth()->user()->preferred_language ?? 'en') === 'en')>
                                                {{ __('English') }}
                                            </option>
                                            <option value="ar"
                                                @selected(old('preferred_language', auth()->user()->preferred_language ?? 'en') === 'ar')>
                                                {{ __('Arabic') }}
                                            </option>
                                        </select>
                                        <small class="text-muted">
                                            {{ __('Emails, SMS messages, and account notifications will use this language.') }}
                                        </small>
                                    </div>

BLADE;

$target = <<<'BLADE'
                                    <div class="col-xl-6 col-lg-6 form-group">
                                        <label>{{ __('country') }}<span>*</span></label>
BLADE;

foreach ($files as $file) {
    $content = file_get_contents($file);

    if ($content === false) {
        throw new RuntimeException("Unable to read {$file}");
    }

    if (str_contains($content, 'name="preferred_language"')) {
        echo "Already updated: {$file}\n";
        continue;
    }

    if (! str_contains($content, $target)) {
        throw new RuntimeException("Country field was not found in {$file}");
    }

    $content = str_replace($target, $field . $target, $content, $count);

    if ($count !== 1) {
        throw new RuntimeException("Unexpected insertion count in {$file}: {$count}");
    }

    if (file_put_contents($file, $content) === false) {
        throw new RuntimeException("Unable to update {$file}");
    }

    echo "Updated: {$file}\n";
}
PHP

#1787323722
php <<'PHP'
<?php

$file = 'lang/ar.json';
$data = json_decode(file_get_contents($file), true, 512, JSON_THROW_ON_ERROR);

$data['Preferred Communication Language'] = 'لغة التواصل المفضلة';
$data['Emails, SMS messages, and account notifications will use this language.'] =
    'سيتم استخدام هذه اللغة في رسائل البريد الإلكتروني والرسائل النصية وإشعارات الحساب.';
$data['English'] = 'الإنجليزية';
$data['Arabic'] = 'العربية';

file_put_contents(
    $file,
    json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT) . PHP_EOL
);

echo "Profile language translations added.\n";
PHP

#1787323730
php -l app/Http/Controllers/User/ProfileController.php
#1787323730
php -l app/Http/Controllers/Merchant/ProfileController.php
#1787323730
php -l app/Http/Controllers/Agent/ProfileController.php
#1787323730
php -r 'json_decode(file_get_contents("lang/ar.json"), true, 512, JSON_THROW_ON_ERROR); echo "Valid JSON\n";'
#1787323730
php artisan optimize:clear
#1787323933
clear
#1787323936
cd /home/zoomride2022/public_html/syrpayment.com
#1787323936
grep -Rni --exclude-dir=vendor "Information of User" resources/views app/Http/Controllers | head -20
#1787323946
grep -Rni --exclude-dir=vendor -E "email_verified.*sms_verified|two_factor_status.*kyc_verified" app/Http/Controllers/Admin | head -30
#1787323993
clear
#1787323997
cd /home/zoomride2022/public_html/syrpayment.com
#1787323997
sed -n '160,270p' resources/views/admin/sections/user-care/details.blade.php
#1787324004
grep -nE '<form|action=|method=|name=' resources/views/admin/sections/user-care/details.blade.php | tail -50
#1787324011
grep -Rni -E "user-care|user.details|user.update|details.update" routes/admin.php | head -50
#1787324068
clear
#1787324071
cd /home/zoomride2022/public_html/syrpayment.com
#1787324072
sed -n '320,405p' routes/admin.php
#1787324079
grep -Rni --exclude-dir=vendor "function userDetailsUpdate" app/Http/Controllers/Admin
#1787324086
sed -n '250,325p' resources/views/admin/sections/user-care/details.blade.php
#1787324148
clear
#1787324151
cd /home/zoomride2022/public_html/syrpayment.com
#1787324151
sed -n '225,310p' app/Http/Controllers/Admin/UserCareController.php
#1787324151
sed -n '145,225p' app/Http/Controllers/Admin/MerchantCareController.php
#1787324152
sed -n '135,215p' app/Http/Controllers/Admin/AgentCareController.php
#1787324160
grep -Rni --exclude-dir=vendor -E "admin\.merchants\.details\.update|admin\.agents\.details\.update" resources/views/admin | head -20
#1787324216
clear
#1787324220
cd /home/zoomride2022/public_html/syrpayment.com
#1787324220
cp app/Http/Controllers/Admin/UserCareController.php app/Http/Controllers/Admin/UserCareController.php.backup-language-admin-20260821
#1787324220
cp app/Http/Controllers/Admin/MerchantCareController.php app/Http/Controllers/Admin/MerchantCareController.php.backup-language-admin-20260821
#1787324220
cp app/Http/Controllers/Admin/AgentCareController.php app/Http/Controllers/Admin/AgentCareController.php.backup-language-admin-20260821
#1787324220
cp resources/views/admin/sections/user-care/details.blade.php resources/views/admin/sections/user-care/details.blade.php.backup-language-admin-20260821
#1787324220
cp resources/views/admin/sections/merchant-care/details.blade.php resources/views/admin/sections/merchant-care/details.blade.php.backup-language-admin-20260821
#1787324220
cp resources/views/admin/sections/agent-care/details.blade.php resources/views/admin/sections/agent-care/details.blade.php.backup-language-admin-20260821
#1787324236
php <<'PHP'
<?php

$files = [
    'app/Http/Controllers/Admin/UserCareController.php',
    'app/Http/Controllers/Admin/MerchantCareController.php',
    'app/Http/Controllers/Admin/AgentCareController.php',
];

foreach ($files as $file) {
    $content = file_get_contents($file);

    if ($content === false) {
        throw new RuntimeException("Unable to read {$file}");
    }

    $methodPosition = strpos($content, 'public function userDetailsUpdate');

    if ($methodPosition === false) {
        throw new RuntimeException("Update method not found in {$file}");
    }

    $statusPosition = strpos(
        $content,
        "'email_verified'",
        $methodPosition
    );

    if ($statusPosition === false) {
        throw new RuntimeException("Validation anchor not found in {$file}");
    }

    $methodSection = substr(
        $content,
        $methodPosition,
        $statusPosition - $methodPosition
    );

    if (str_contains($methodSection, "'preferred_language'")) {
        echo "Already updated: {$file}\n";
        continue;
    }

    $lineStart = strrpos(
        substr($content, 0, $statusPosition),
        "\n"
    ) + 1;

    $newRule = "            'preferred_language'     => 'required|string|in:en,ar',\n";

    $content = substr_replace(
        $content,
        $newRule,
        $lineStart,
        0
    );

    if (file_put_contents($file, $content) === false) {
        throw new RuntimeException("Unable to write {$file}");
    }

    echo "Updated: {$file}\n";
}
PHP

#1787324250
php <<'PHP'
<?php

$views = [
    'resources/views/admin/sections/user-care/details.blade.php'
        => "admin.users.details.update",

    'resources/views/admin/sections/merchant-care/details.blade.php'
        => "admin.merchants.details.update",

    'resources/views/admin/sections/agent-care/details.blade.php'
        => "admin.agents.details.update",
];

$field = <<<'BLADE'
                    <div class="col-xl-6 col-lg-6 form-group">
                        <label>
                            {{ __("Preferred Communication Language") }}
                            <span>*</span>
                        </label>
                        <select name="preferred_language"
                                class="form--control nice-select"
                                required>
                            <option value="en"
                                @selected(old('preferred_language', $user->preferred_language ?? 'en') === 'en')>
                                {{ __("English") }}
                            </option>
                            <option value="ar"
                                @selected(old('preferred_language', $user->preferred_language ?? 'en') === 'ar')>
                                {{ __("Arabic") }}
                            </option>
                        </select>
                        <small class="text-muted">
                            {{ __("Emails, SMS messages, and account notifications will use this language.") }}
                        </small>
                        @error("preferred_language")
                            <span class="invalid-feedback d-block" role="alert">
                                <strong>{{ $message }}</strong>
                            </span>
                        @enderror
                    </div>

BLADE;

foreach ($views as $file => $route) {
    $content = file_get_contents($file);

    if ($content === false) {
        throw new RuntimeException("Unable to read {$file}");
    }

    if (str_contains($content, 'name="preferred_language"')) {
        echo "Already updated: {$file}\n";
        continue;
    }

    $formMarker = "action=\"{{ setRoute('{$route}',\$user->username) }}\"";
    $formPosition = strpos($content, $formMarker);

    if ($formPosition === false) {
        throw new RuntimeException("Admin update form not found in {$file}");
    }

    $switcherPosition = strpos(
        $content,
        "@include('admin.components.form.switcher'",
        $formPosition
    );

    if ($switcherPosition === false) {
        throw new RuntimeException("First switcher not found in {$file}");
    }

    $containerPosition = strrpos(
        substr($content, 0, $switcherPosition),
        '<div class="col-xl-3'
    );

    if ($containerPosition === false) {
        throw new RuntimeException("Switcher container not found in {$file}");
    }

    $content = substr_replace(
        $content,
        $field,
        $containerPosition,
        0
    );

    if (file_put_contents($file, $content) === false) {
        throw new RuntimeException("Unable to write {$file}");
    }

    echo "Updated: {$file}\n";
}
PHP

#1787324260
cp lang/ar.json lang/ar.json.backup-language-admin-20260821
#1787324260
php <<'PHP'
<?php

$file = 'lang/ar.json';

$data = json_decode(
    file_get_contents($file),
    true,
    512,
    JSON_THROW_ON_ERROR
);

$data['Preferred Communication Language'] = 'لغة التواصل المفضلة';
$data['English'] = 'الإنجليزية';
$data['Arabic'] = 'العربية';
$data['Emails, SMS messages, and account notifications will use this language.']
    = 'سيتم استخدام هذه اللغة في رسائل البريد الإلكتروني والرسائل النصية وإشعارات الحساب.';

file_put_contents(
    $file,
    json_encode(
        $data,
        JSON_UNESCAPED_UNICODE |
        JSON_UNESCAPED_SLASHES |
        JSON_PRETTY_PRINT
    ) . PHP_EOL
);

echo "Arabic translations updated.\n";
PHP

#1787324269
php -l app/Http/Controllers/Admin/UserCareController.php
#1787324269
php -l app/Http/Controllers/Admin/MerchantCareController.php
#1787324270
php -l app/Http/Controllers/Admin/AgentCareController.php
#1787324270
php -r 'json_decode(file_get_contents("lang/ar.json"), true, 512, JSON_THROW_ON_ERROR); echo "Valid JSON\n";'
#1787324270
grep -Rni "preferred_language" app/Http/Controllers/Admin/UserCareController.php app/Http/Controllers/Admin/MerchantCareController.php app/Http/Controllers/Admin/AgentCareController.php resources/views/admin/sections/user-care/details.blade.php resources/views/admin/sections/merchant-care/details.blade.php resources/views/admin/sections/agent-care/details.blade.php
#1787324271
php artisan optimize:clear
#1787324279
php artisan tinker --execute='$u=App\Models\User::where("email","basel.alyasin@gmail.com")->first(); dump($u?->only(["email","preferred_language"]));'
#1787324374
clear
#1787324376
cd /home/zoomride2022/public_html/syrpayment.com
#1787324377
php artisan tinker --execute='$u=App\Models\User::where("email","basel.alyasin@gmail.com")->firstOrFail(); dump(["email"=>$u->email,"stored"=>$u->preferred_language,"notification_locale"=>$u->preferredLocale()]);'
#1787324386
php artisan tinker --execute='$u=App\Models\User::where("email","basel.alyasin@gmail.com")->firstOrFail(); $u->notify(new App\Notifications\User\Auth\SendVerifyCode($u->email,"864219")); dump("Localized test email sent.");'
#1787341129
cd /home/zoomride2022/public_html/syrpayment.com
#1787341130
grep -nF '"Hello!"' lang/*.json
#1787341142
grep -Rni -B 15 -A 25 --exclude-dir=vendor "Duplicate Key Found" app routes
#1787341150
php -r '
foreach (glob("lang/*.json") as $file) {
    try {
        json_decode(
            file_get_contents($file),
            true,
            512,
            JSON_THROW_ON_ERROR
        );
        echo "VALID: {$file}\n";
    } catch (Throwable $e) {
        echo "INVALID: {$file} — {$e->getMessage()}\n";
    }
}
'
#1787341247
clear
#1787341251
grep -nE '"Hello!?":[[:space:]]*' lang/ar.json
#1787341260
cp lang/ar.json lang/ar.json.backup-flutter-language-20260821
#1787341267
php <<'PHP'
<?php

$file = 'lang/ar.json';

$data = json_decode(
    file_get_contents($file),
    true,
    512,
    JSON_THROW_ON_ERROR
);

$data['Hello'] = 'مرحباً';
$data['Hello!'] = 'مرحباً';

file_put_contents(
    $file,
    json_encode(
        $data,
        JSON_UNESCAPED_UNICODE |
        JSON_UNESCAPED_SLASHES |
        JSON_PRETTY_PRINT
    ) . PHP_EOL
);

echo "Aligned Hello translation keys.\n";
PHP

#1787341276
php -r 'json_decode(file_get_contents("lang/ar.json"), true, 512, JSON_THROW_ON_ERROR); echo "Valid JSON\n";'
#1787341277
php artisan optimize:clear
#1787341286
curl -sS -H "Accept: application/json" "https://syrpayment.com/api/app-settings/languages?lang=en" | head -c 300
#1787341287
echo
#1787342567
cd /home/zoomride2022/public_html/syrpayment.com
#1787342567
grep -n -B 15 -A 35 -E "credentials|function login|function sendCode|function forgot" app/Http/Controllers/Api/User/Auth/LoginController.php
#1787342578
Select-String `
  -Path lib\backend\services\api_services.dart `
#1787342578
  -Pattern "login_type|sendForgotOTPEmail|forget/password" `
  -Context 15,25

#1787342605
Get-Content lib\controller\auth\login\signin_controller.dart | Select-Object -Skip 220 -First 80

AnonSec - 2021