Source for file setdefaultlanguage.php
Documentation is available at setdefaultlanguage.php
* @package Joomla.Installation
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
* Controller class to set the default application languages for the Joomla Installer.
* @package Joomla.Installation
// Overrides application config and set the configuration.php file so tokens and database works
* Execute the controller.
/* @var InstallationApplicationWeb $app */
// Check for request forgeries.
// Get the languages model.
// Check for request forgeries in the administrator language
$admin_lang =
$this->input->getString('administratorlang', false);
// Check that the string is an ISO Language Code avoiding any injection.
if (!preg_match('/^[a-z]{2}(\-[A-Z]{2})?$/', $admin_lang))
// Attempt to set the default administrator language
if (!$model->setDefault($admin_lang, 'administrator'))
// Create a error response message.
$app->enqueueMessage(JText::_('INSTL_DEFAULTLANGUAGE_ADMIN_COULDNT_SET_DEFAULT'), 'error');
// Create a response body.
$app->enqueueMessage(JText::sprintf('INSTL_DEFAULTLANGUAGE_ADMIN_SET_DEFAULT', $admin_lang));
// Check for request forgeries in the site language
$frontend_lang =
$this->input->getString('frontendlang', false);
// Check that the string is an ISO Language Code avoiding any injection.
if (!preg_match('/^[a-z]{2}(\-[A-Z]{2})?$/', $frontend_lang))
$frontend_lang =
'en-GB';
// Attempt to set the default site language
if (!$model->setDefault($frontend_lang, 'site'))
// Create a error response message.
$app->enqueueMessage(JText::_('INSTL_DEFAULTLANGUAGE_FRONTEND_COULDNT_SET_DEFAULT'), 'error');
// Create a response body.
$app->enqueueMessage(JText::sprintf('INSTL_DEFAULTLANGUAGE_FRONTEND_SET_DEFAULT', $frontend_lang));
// Check if user has activated the multilingual site
$data =
$this->input->post->get('jform', array(), 'array');
$activeMultilanguage = (int)
$data['activateMultilanguage'];
if ($activeMultilanguage)
if (!$model->enablePlugin('plg_system_languagefilter'))
$app->enqueueMessage(JText::sprintf('INSTL_DEFAULTLANGUAGE_COULD_NOT_ENABLE_PLG_LANGUAGEFILTER', $frontend_lang));
// Activate optional ISO code Plugin
$activatePluginIsoCode = (int)
$data['activatePluginLanguageCode'];
if ($activatePluginIsoCode)
if (!$model->enablePlugin('plg_system_languagecode'))
$app->enqueueMessage(JText::_('INSTL_DEFAULTLANGUAGE_COULD_NOT_ENABLE_PLG_LANGUAGECODE'));
if (!$model->addModuleLanguageSwitcher())
$app->enqueueMessage(JText::_('INSTL_DEFAULTLANGUAGE_COULD_NOT_ENABLE_MODULESWHITCHER_LANGUAGECODE'));
$siteLanguages =
$model->getInstalledlangsFrontend();
foreach ($siteLanguages as $siteLang)
// Add Language Manager: Content Languages
$return =
$tableLanguage->load(array('lang_code' =>
$siteLang->language));
$sefLangString =
$model->getSefString($siteLang, $siteLanguages);
if (!$model->addLanguage($siteLang, $sefLangString))
$app->enqueueMessage(JText::sprintf('INSTL_DEFAULTLANGUAGE_COULD_NOT_CREATE_CONTENT_LANGUAGE', $siteLang->name));
if (!$error &&
!$model->addMenuGroup($siteLang))
$app->enqueueMessage(JText::sprintf('INSTL_DEFAULTLANGUAGE_COULD_NOT_CREATE_MENU', $siteLang->name));
if (!$error &&
!$model->addMenuItem($siteLang))
$app->enqueueMessage(JText::sprintf('INSTL_DEFAULTLANGUAGE_COULD_NOT_CREATE_MENU_ITEM', $siteLang->name));
if (!$error &&
!$model->addModuleMenu($siteLang))
$app->enqueueMessage(JText::sprintf('INSTL_DEFAULTLANGUAGE_COULD_NOT_CREATE_MENU_MODULE', $frontend_lang));
$tableCategory =
$model->addCategory($siteLang);
if ($tableCategory ===
false)
$app->enqueueMessage(JText::sprintf('INSTL_DEFAULTLANGUAGE_COULD_NOT_CREATE_CATEGORY', $frontend_lang));
$categoryId =
$tableCategory->id;
if (!$model->addArticle($siteLang, $categoryId))
$app->enqueueMessage(JText::sprintf('INSTL_DEFAULTLANGUAGE_COULD_NOT_CREATE_ARTICLE', $frontend_lang));
if (!$model->disableModuleMainMenu())
$app->enqueueMessage(JText::_('INSTL_DEFAULTLANGUAGE_COULD_NOT_UNPUBLISH_MOD_DEFAULTMENU'));
if (!$model->enableModule('mod_multilangstatus'))
$app->enqueueMessage(JText::_('INSTL_DEFAULTLANGUAGE_COULD_NOT_PUBLISH_MOD_MULTILANGSTATUS'));
// Redirect to the final page.
$app->sendJsonResponse($r);
Documentation generated on Tue, 19 Nov 2013 15:12:57 +0100 by phpDocumentor 1.4.3