As we dig deeper into the PHP code that makes up the Joomla 2.5 Beez2 template, we come to the following line of code:

$app                = JFactory::getApplication();

We have two items here that we need to review, JFactory and getApplication.

 

What is JFactory used for?

You can use JFactory to get access to several core Joomla objects. When you use JFactory, your variable will be an object and generally contains your Joomla 2.5 site settings.

According to official documentation, there are many other objects that you can call.

 

What data is returned with getApplication() ?

Using the following code, we can look at the contents of the $app object, which is assigned its values by JFactory::getApplication().

$app                = JFactory::getApplication();
echo "<pre>"; print_r($app); echo "</pre>"; die();

As you can see in the table below, there is quite a bit of information put into the $app variable by JFactory::getApplication().

Actual Data in $app variable Screenshot of our testing code
JSite Object
(
    [template:private] => stdClass Object
        (
            [id] => 4
            [home] => 1
            [template] => beez_20
            [params] => 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
                        )

                )

        )

    [_language_filter:private] => 
    [_detect_browser:private] => 
    [clientId:protected] => 
    [_clientId:protected] => 0
    [messageQueue:protected] => Array
        (
        )

    [_messageQueue:protected] => Array
        (
        )

    [name:protected] => 
    [_name:protected] => site
    [scope] => 
    [requestTime] => 2012-07-12 15:36
    [startTime] => 1342107374.8458
    [input] => JInput Object
        (
            [options:protected] => Array
                (
                )

            [filter:protected] => JFilterInput Object
                (
                    [tagsArray] => Array
                        (
                        )

                    [attrArray] => Array
                        (
                        )

                    [tagsMethod] => 0
                    [attrMethod] => 0
                    [xssAuto] => 1
                    [tagBlacklist] => Array
                        (
                            [0] => applet
                            [1] => body
                            [2] => bgsound
                            [3] => base
                            [4] => basefont
                            [5] => embed
                            [6] => frame
                            [7] => frameset
                            [8] => head
                            [9] => html
                            [10] => id
                            [11] => iframe
                            [12] => ilayer
                            [13] => layer
                            [14] => link
                            [15] => meta
                            [16] => name
                            [17] => object
                            [18] => script
                            [19] => style
                            [20] => title
                            [21] => xml
                        )

                    [attrBlacklist] => Array
                        (
                            [0] => action
                            [1] => background
                            [2] => codebase
                            [3] => dynsrc
                            [4] => lowsrc
                        )

                    [_errors:protected] => Array
                        (
                        )

                )

            [data:protected] => Array
                (
                    [SESSf61997c271b5d7e7cd0e3d4d2cc7fed5] => oQ8nNIkJD-4hEdP-MWN7foEq6jN2SC6Ww19I9Q26zv8
                    [jpanesliders_menu-sliders-543] => 0
                    [jpanesliders_plugin-sliders-433] => 0
                    [jpanesliders_permissions-sliderscom_users] => 0
                    [jpanesliders_sliders] => 1
                    [jpanesliders_plugin-sliders-10067] => 0
                    [jpanesliders_content-sliders-] => 0
                    [jpanesliders_permissions-sliders-] => 0
                    [jpanesliders_menu-sliders-435] => 0
                    [jpanesliders_content-sliders-79] => 0
                    [jpanesliders_permissions-sliders-79] => 0
                    [jpanesliders_permissions-sliderscom_content] => 0
                    [jpanesliders_menu-sliders-] => 0
                    [fb8d050fa6edfad9f07b1fb40c8266d0] => 400ef7499e634eb4e7c9cb0d763b22e1
                    [037affe80d78b62a827b593db7df4c3b] => 91e8e99991ce9f146a26eab8c67f551e
                    [jpanesliders_module-sliders] => 0
                    [jpanesliders_panel-sliders] => 0
                    [jpanesliders_position-icon] => 0
                    [__utma] => 256822360.1859812311.1342025884.1342039063.1342100374.5
                    [__utmc] => 256822360
                    [__utmz] => 256822360.1342025884.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
                    [jpanesliders_template-sliders-4] => 0
                    [option] => com_content
                    [view] => featured
                    [Itemid] => 435
                )

            [inputs:protected] => Array
                (
                    [request] => JInput Object
                        (
                            [options:protected] => Array
                                (
                                )

                            [filter:protected] => JFilterInput Object
                                (
                                    [tagsArray] => Array
                                        (
                                        )

                                    [attrArray] => Array
                                        (
                                        )

                                    [tagsMethod] => 0
                                    [attrMethod] => 0
                                    [xssAuto] => 1
                                    [tagBlacklist] => Array
                                        (
                                            [0] => applet
                                            [1] => body
                                            [2] => bgsound
                                            [3] => base
                                            [4] => basefont
                                            [5] => embed
                                            [6] => frame
                                            [7] => frameset
                                            [8] => head
                                            [9] => html
                                            [10] => id
                                            [11] => iframe
                                            [12] => ilayer
                                            [13] => layer
                                            [14] => link
                                            [15] => meta
                                            [16] => name
                                            [17] => object
                                            [18] => script
                                            [19] => style
                                            [20] => title
                                            [21] => xml
                                        )

                                    [attrBlacklist] => Array
                                        (
                                            [0] => action
                                            [1] => background
                                            [2] => codebase
                                            [3] => dynsrc
                                            [4] => lowsrc
                                        )

                                    [_errors:protected] => Array
                                        (
                                        )

                                )

                            [data:protected] => Array
                                (
                                    [SESSf61997c271b5d7e7cd0e3d4d2cc7fed5] => oQ8nNIkJD-4hEdP-MWN7foEq6jN2SC6Ww19I9Q26zv8
                                    [jpanesliders_menu-sliders-543] => 0
                                    [jpanesliders_plugin-sliders-433] => 0
                                    [jpanesliders_permissions-sliderscom_users] => 0
                                    [jpanesliders_sliders] => 1
                                    [jpanesliders_plugin-sliders-10067] => 0
                                    [jpanesliders_content-sliders-] => 0
                                    [jpanesliders_permissions-sliders-] => 0
                                    [jpanesliders_menu-sliders-435] => 0
                                    [jpanesliders_content-sliders-79] => 0
                                    [jpanesliders_permissions-sliders-79] => 0
                                    [jpanesliders_permissions-sliderscom_content] => 0
                                    [jpanesliders_menu-sliders-] => 0
                                    [fb8d050fa6edfad9f07b1fb40c8266d0] => 400ef7499e634eb4e7c9cb0d763b22e1
                                    [037affe80d78b62a827b593db7df4c3b] => 91e8e99991ce9f146a26eab8c67f551e
                                    [jpanesliders_module-sliders] => 0
                                    [jpanesliders_panel-sliders] => 0
                                    [jpanesliders_position-icon] => 0
                                    [__utma] => 256822360.1859812311.1342025884.1342039063.1342100374.5
                                    [__utmc] => 256822360
                                    [__utmz] => 256822360.1342025884.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
                                    [jpanesliders_template-sliders-4] => 0
                                    [option] => com_content
                                    [view] => featured
                                    [Itemid] => 435
                                )

                            [inputs:protected] => Array
                                (
                                )

                        )

                )

        )

    [_errors:protected] => Array
        (
        )

)
data-in-app-variable

 

How is the $app variable used in the template?

We now know that the $app variable contains a lot of information, but how is this information used within our template? To find out, we'll look at an example where $app is used:

$templateparams     = $app->getTemplate(true)->params;

The above appears to be the only use of the $app variable within the Beez2 index.php file. In this case, we are using $app with getTemplate params to apparently get the parameters of our template (which we've apparently already done within the template?).

We'll see what values are stored in $templateparams by using the following code:

$templateparams     = $app->getTemplate(true)->params;
echo "<pre>"; print_r($templateparams); echo "</pre>"; die();

The results of that line of code confirm that the $templateparams variable contains the values of our template's parameters:

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
        )

)

Again, we have already accessed these same values using the following code (which appeared earlier in the template):

// get params
$color              = $this->params->get('templatecolor');
$logo               = $this->params->get('logo');
$navposition        = $this->params->get('navposition');

In the end, the $templateparams variable is ultimately used in the following context:

  1. $templateparams->get('sitetitle')
  2. $templateparams->get('sitedescription')

 

Why is the JFactory::getApplication() used in this template?

Above we showed you how JFactory::getApplication is used in the template, now we will show you WHY it was used:

  1. JFactory::getApplication was used to create the $app variable:

    $app = JFactory::getApplication();
  2. The $app variable was then used to create the $templateparams variable:

    $templateparams = $app->getTemplate(true)->params;
  3. Finally, $templateparams is used to get the following values:

    $templateparams->get('sitetitle')

    and...

    $templateparams->get('sitedescription')


    So, in the end it appears that getApplication is used to get the site's title and the site's description:

    Test code to see the value of sitetitle and sitedescription What are the values of sitetitle and sitedescription?
    $app                = JFactory::getApplication();
    $doc        = JFactory::getDocument();
    $templateparams     = $app->getTemplate(true)->params;
    echo "                  templateparams->get('sitetitle') = " . $templateparams->get('sitetitle') . "
                    templateparams->get('sitedescription') = " . $templateparams->get('sitedescription') . "
            
     "; die();
    values-taken-from-templateparams
    Where are these values used within the template? Where are these values defined?
    sitetitle-and-sitedescription-in-the-template Where are these values defined? That's a really good question! After further research, they do not appear to be set anywhere within the Global Configuration settings, anywhere within the configuration.php file, nor do they appear to be anywhere within the site's language files. They are actually set in the template's configuration (which means they're stored in the database), as seen in the screenshot below:

    sitetitle-and-sitedescription-in-template-config 
Continued Education in Course 219: Joomla 2.5 Template Development Tutorial
You are viewing Section 5: Joomla 2.5 Templates - JFactory::getApplication()
Section 4: Joomla 2.5 Templates - $this->params->get('templatecolor');
Section 6: Joomla 2.5 Templates - JFactory::getDocument()
Did you find this article helpful?

We value your feedback!

Why was this article not helpful? (Check all that apply)
The article is too difficult or too technical to follow.
There is a step or detail missing from the instructions.
The information is incorrect or out-of-date.
It does not resolve the question/problem I have.
How did you find this article?
Please tell us how we can improve this article:
Email Address
Name

new! - Enter your name and email address above and we will post your feedback in the comments on this page!

Post a Comment

Name:
Email Address:
Phone Number:
Comment:
Submit

Please note: Your name and comment will be displayed, but we will not show your email address.

0 Questions & Comments

Post a comment

Back to first comment | top

Need more Help?

Search

Ask the Community!

Get help with your questions from our community of like-minded hosting users and InMotion Hosting Staff.

Current Customers

Chat: Click to Chat Now E-mail: support@InMotionHosting.com
Call: 888-321-HOST (4678) Ticket: Submit a Support Ticket

Not a Customer?

Get web hosting from a company that is here to help. Sign up today!