همان طور که ما در بررسی کدهای PHP که قالب beez2 را ایجاد کرده اند، به پیش می رویم، به کد زیر می رسیم:
Title
$app = JFactory::getApplication();
در خط کد بالا، دو آیتم به نام های JFactory و getApplication داریم که در ادامه می خواهیم آنها را بررسی کنیم.
کاربرد JFactory چیست؟
با استفاده از JFactory می توانیم به اشیای بسیاری در هسته ی جوملا دسترسی پیدا کنیم. هنگامی که از JFactory
استفاده می کنید،متغیر شما تبدیل به یک شیء خواهد شد و عموما تنظیمات سایت جوملا 2.5 را در بر دارد.
بر اساس اسناد رسمی جوملا ، اشیای بیشتری نیز وجود دارند که می توانید آنها را فراخوانی نمایید.
دستور ()getApplication چه چیزی را برمی گرداند؟
با استفاده از کد زیر می توانیم محتوای شیء app$ را ببینیم. همان طور که می دانید مقدار app$ برابر با کد
()JFactory::getApplication است.
Title
$app = JFactory::getApplication();
echo "<pre>"; print_r($app); echo "</pre>"; die();
همان طور که در کدهای زیر می بینید، هنگامی که متغیر app$ را برابر با ()JFactory::getApplication قرار می دهیم ،
اطلاعات زیادی درون این متغیر ذخیره می شوند:
در قالب از متغیر app$ چه استفاده ای می شود؟
اکنون می دانیم که متغیر app$ اطلاعات زیادی را دربر دارد اما می خواهیم بدانیم این اطلاعات چه کاربردی در قالب ما دارند؟
برای فهمیدن این نکته، به یک مثال که متغیر app$ در آن به کار رفته است توجه کنید:
Title
$templateparams = $app->getTemplate(true)->params;
به نظر می رسد که از متغیر app$ در کد بالا تنها برای گرفتن اطلاعاتی از فایل index.php در قالب beez2، استفاده می شود.
در این مورد، ما از app$ به همراه getTemplate params استفاده کرده ایم تا ظاهرا پارامتر های قالبمان را به دست بیاوریم.
با استفاده از کد زیر خواهیم دید که چه مقادیری در متغیر templateparams$ ذخیره شده است:
Title
$templateparams = $app->getTemplate(true)->params;
echo "<pre>"; print_r($templateparams); echo "</pre>"; die();
نتیجه ی خط کد بالا تایید می کند که متغیر templateparams$ مقادیر پارامترهای قالب را دربر دارد:
Title
JRegistry Object ( [data:protected] => stdClass Object ( [wrapperSmall] => 53 [wrapperLarge] => 72 [logo] => images/joomla_black.gif [sitetitle] => Joomla! [sitedescription] => Open Source Content Management [navposition] => left [templatecolor] => personal ) )
از مقادیر قرمز رنگ بالا در کدهای زیر استفاده می کنیم (که در مقاله ی قبلی از آنها استفاده نمودیم):
Title
// get params $color = $this->params->get('templatecolor'); $logo = $this->params->get('logo'); $navposition = $this->params->get('navposition');
در نهایت می توان گفت که از دستور templateparams$ به صورت زیر استفاده می شود:
Title
$templateparams->get('sitetitle');
$templateparams->get('sitedescription');
چرا از دستور JFactory::getApplication در قالب خود استفاده کنیم؟
در بالا به شما نشان دادیم که چطور از دستور JFactory::getApplication در قالب خود استفاده کنید، اکنون می خواهیم به شما نشان دهیم که چرا از آن استفاده کنیم:
1. از دستور JFactory::getApplication برای ایجاد متغیری به نام app$ استفاده می کنیم:
Title
$app = JFactory::getApplication();
2. سپس از متغیر app$ برای ایجاد متغیر templateparams$ استفاده می کنیم:
Title
$templateparams = $app->getTemplate(true)->params;
3. در آخر نیز از متغیر templateparams$ برای به دست آوردن مقادیر زیر استفاده می کنیم:
Title
$templateparams->get('sitetitle')
و ...
Title
$templateparams->get('sitedescription')
بنا براین در پایان، به نظر می رسد که از دستور getApplication برای به دست آوردن title(عنوان) سایت و description(توضیحات)سایت استفاده می شود.