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 
Like this Article?

Login to comment.

Your Opinion Matters

... but we need to know what you're thinking!

I'm Brad Markle, your friendly Community Support technician, and I wrote the article you're looking at now. I like to think it's perfect, but I'm sure you have some suggestions. Please, let me know what they are!

Feedback
Your Email Address
Because we'd like to talk with you!

Latest Questions

If you need some help, submit your question to our Community!
We guarantee a response within 60 minutes (8am - 9pm EST, Monday - Friday)
Ask a Question!
Recent Questions
  1. i would like to know how to set up phpmailer to email from a mysql database
  2. I can't access my website
  3. we-creation.com server down

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!