تولید آدرس
در جالنوبرای تولید آدرس قابل دسترس در مرورگر از سه روش میتوان استفاده کرد که هر روش برای دسترسی به فایل های مختلفی استفاده میشود که به شرح زیر میباشد.
| متد / تابع | دسترسی به فایل |
|---|---|
| packages\base\url | لینک به صفحات |
| packages\base\frontend\theme::url | لینک به فایل های استاتیک قالب |
| packages\base\package::url | لینک به فایل های استاتیک پکیج |
تنظیمات زبان
ابتدا باید در فایل config.php که در مسیر packages/base/libraries/config قرار دارد تنظیمات زبان پیشفرض و تغییر زبان و امکان مخفف وارد کردن زبان را انجام دهیم.
توجه : اگر تنظیمات زبان انجام شده باشد، در تولید آدرس ، زبان فعال در آدرس قرار داده میشود.
زبان پیش فرض
با استفاده از آپشن packages.base.translator.defaultlang میتوانیم زبان پیش فرض سایت را مشخص کنیم. مقدار وارد شده باید کد زبان کامل باشد.
اگر این آپشن مقدار دهی نشود, هر کد زبان کاملی را میپذیرد.
کد زبان کامل از کد زبان دو حرفی_کد کشور دو حرفی تشکیل میشود
'packages.base.translator.defaultlang' => 'fa_IR' // or en_US
زبان های مجاز برای تغییر زبان
با استفاده از آپشن packages.base.translator.active.langs زبان های مجاز برای تغییر در پروژه معرفی میشوند.
کاربرد آن زمانی است که پروژه ی شما دارای ۳ زبان فایل ترجمه است ولی شما قصد دارید فقط ۲ زبان از آن فعال باشد. با تعریف زبان ها در این آپشن از باز شدن سایت در زبان سوم جلوگیری میشود.
توجه : زبان پیشفرض جزو زبان های مجاز برای تغییر زبان در نظر گرفته میشود حتی اگر در این آپشن تعریف نشود.
مثال :
'packages.base.translator.defaultlang' => 'en_US',
'packages.base.translator.active.langs' => array(
"fa_IR",
)
تغییر زبان
با استفاده از آپشن packages.base.translator.changelang مشخص میکنیم کاربر از چه روشی زبان را مشخص کند.
سه مقدار میتواند داشته باشد :
| مقدار | کاربرد |
|---|---|
| uri | زبان در ابتدای ادرس اضافه میشود |
| parameter | انتهای آدرس اضافه میشود |
| خالی باشد | کاربر نمیتواند بطور مستقیم زبان را تغییر دهد |
مثال uri :
/fa/contactus
مثال parameter :
/contactus?lang=fa
مثال از خالی بودن : زبان در آدرس اضافه نمیشود
/contactus
مخفف وارد کردن زبان
با استفاده از آپشن packages.base.translator.changelang.type امکان مخفف وارد کردن زبان را در آدرس میدهد .
آپشن مقادیر short , complete میگیرد.
مثال
'packages.base.translator.changelang.type' => 'short' // fa
'packages.base.translator.changelang.type' => 'complete' //fa_IR
نمونه فایل config.php
'packages.base.translator.defaultlang' => 'fa_IR',
'packages.base.translator.changelang' => 'parameter', //uri, parameter
'packages.base.translator.changelang.type' => 'complete', //short, complete
لینک به صفحات
برای ادرس دهی و لینک شدن به صفحات مختلف از تابع packages\base\url استفاده میشود .
این تابع سه ارگومان ورودی میگیرد;
آرگومان اول
آرگومان اول ادرس صفحه مورد نظری را میگیرد که در فایل routing.json تعریف شده است.
برای اطلاعات بیشتر به صفحه مسیریابی مراجعه کنید.
نمونه فایل routing.json
[
{
"path": "/",
"controller": "controllers/Main@index"
},
{
"path": "about-us",
"controller": "controllers/Main@aboutus"
}
]
میتوان url را بصورت function packages\base\url در فایل مورد استفاده معرفی کرد.
مثال 1
<?php
namepsacep packages\packagename\controllers;
use function packages\base\url;
use packages\base\{Controller, Response};
class Main extends Controller {
public function index(): Response {
$response = new Response(true);
$response->Go(url("about-us")); // redirect to about us page
return $response;
}
}
مثال 2
همچنین میتوان packages\base را use کرده و url را بصورت base\url() فراخوانی کرد.
<?php
namepsacep packages\packagename\controllers;
use packages\base;
use packages\base\{Controller, Response};
class Main extends Controller {
public function index(): Response {
$response = new Response(true);
$response->Go(base\url("about-us")); // redirect to about us page
return $response;
}
}