Back to SiteApplication class

Method initialiseApp

protected void
initialiseApp
(mixed $options = array())
Initialise the application.
Parameters
  • array $options An optional associative array of configuration settings.
Returns
  • void
Since
  • 3.2

Method initialiseApp - Source code

/**
 * Initialise the application.
 *
 * @param   array  $options  An optional associative array of configuration settings.
 *
 * @return  void
 *
 * @since   3.2
 */
protected function initialiseApp($options = array())
{
    $user = Factory::getUser();
    // If the user is a guest we populate it with the guest user group.
    if ($user->guest) {
        $guestUsergroup = ComponentHelper::getParams('com_users')->get('guest_usergroup', 1);
        $user->groups = array($guestUsergroup);
    }
    if ($plugin = PluginHelper::getPlugin('system', 'languagefilter')) {
        $pluginParams = new Registry($plugin->params);
        $this->setLanguageFilter(true);
        $this->setDetectBrowser($pluginParams->get('detect_browser', 1) == 1);
    }
    if (empty($options['language'])) {
        // Detect the specified language
        $lang = $this->input->getString('language', null);
        // Make sure that the user's language exists
        if ($lang && LanguageHelper::exists($lang)) {
            $options['language'] = $lang;
        }
    }
    if (empty($options['language']) && $this->getLanguageFilter()) {
        // Detect cookie language
        $lang = $this->input->cookie->get(md5($this->get('secret') . 'language'), null, 'string');
        // Make sure that the user's language exists
        if ($lang && LanguageHelper::exists($lang)) {
            $options['language'] = $lang;
        }
    }
    if (empty($options['language'])) {
        // Detect user language
        $lang = $user->getParam('language');
        // Make sure that the user's language exists
        if ($lang && LanguageHelper::exists($lang)) {
            $options['language'] = $lang;
        }
    }
    if (empty($options['language']) && $this->getDetectBrowser()) {
        // Detect browser language
        $lang = LanguageHelper::detectLanguage();
        // Make sure that the user's language exists
        if ($lang && LanguageHelper::exists($lang)) {
            $options['language'] = $lang;
        }
    }
    if (empty($options['language'])) {
        // Detect default language
        $params = ComponentHelper::getParams('com_languages');
        $options['language'] = $params->get('site', $this->get('language', 'en-GB'));
    }
    // One last check to make sure we have something
    if (!LanguageHelper::exists($options['language'])) {
        $lang = $this->config->get('language', 'en-GB');
        if (LanguageHelper::exists($lang)) {
            $options['language'] = $lang;
        } else {
            // As a last ditch fail to english
            $options['language'] = 'en-GB';
        }
    }
    // Finish initialisation
    parent::initialiseApp($options);
}