تولید آدرس
در جالنوبرای تولید آدرس قابل دسترس در مرورگر از سه روش میتوان استفاده کرد که هر روش برای دسترسی به فایل های مختلفی استفاده میشود که به شرح زیر میباشد.
متد / تابع | دسترسی به فایل |
---|---|
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;
}
}
آرگومان دوم
آرگومان دوم یک آرایه key => value
دریافت میکند، که به وسیله آن پارامترهای آدرس مشخص میشوند.
مقدار کلید هر خانه از آرایه کلید پارامتر و مقدار آن، مقدار پارامتر میباشد.
مثال
use function packages\base\url;
// domain is domain.com
echo url("users", ["id" => 1]);
/**
* Output is:
* /en/users?id=1 or
* /users?id=1&lang=en or
* /users?id=1 // if the Site isn't multi languages
*/
در فریمورک ایندکس های @hostname
و @lang
و @encode
در این ارایه رزرو شدهاند که کاربرد آنها بجز تعریف پارامترهای آدرس میباشد. کاربرد هر کدام به شرج زیر است.