تخفیف ویژه هفته کتاب و کتاب خوانی، فرصت یادگیری با 40٪ تخفیف (کد تخفیف: Ketab)
زمان باقی مانده تخفیف ویژه (تمدید شد)
سبد (0)

تبلیغات

دستور ()JFactory::getApplication

همان طور که ما در بررسی کدهای 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(توضیحات)سایت استفاده می شود.  

منبع مقاله

تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehi مجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامی پرداخت آنلاین -  بانک ملت معرفی بیاموز در شبکه سه پرداخت آنلاین - بانک اقتصاد نوین پرداخت آنلاین - بانک سامان
 
دوره های آموزشی راه اندازی کسب و کارهای اینترنتی
تبلیغات اینترنتی