Skip to content
Merged
20 changes: 0 additions & 20 deletions modules/mod_languages/mod_languages.php

This file was deleted.

2 changes: 1 addition & 1 deletion modules/mod_languages/mod_languages.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<description>MOD_LANGUAGES_XML_DESCRIPTION</description>
<namespace path="src">Joomla\Module\Languages</namespace>
<files>
<filename module="mod_languages">mod_languages.php</filename>
<folder module="mod_languages">services</folder>
<folder>src</folder>
<folder>tmpl</folder>
</files>
Expand Down
41 changes: 41 additions & 0 deletions modules/mod_languages/services/provider.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<?php

/**
* @package Joomla.Site
* @subpackage mod_languages
*
* @copyright (C) 2024 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/

\defined('_JEXEC') or die;

use Joomla\CMS\Extension\Service\Provider\HelperFactory;
use Joomla\CMS\Extension\Service\Provider\Module;
use Joomla\CMS\Extension\Service\Provider\ModuleDispatcherFactory;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;

/**
* The language switcher module service provider.
*
* @since __DEPLOY_VERSION__
*/
return new class () implements ServiceProviderInterface {
/**
* Registers the service provider with a DI container.
*
* @param Container $container The DI container.
*
* @return void
*
* @since __DEPLOY_VERSION__
*/
public function register(Container $container)
{
$container->registerServiceProvider(new ModuleDispatcherFactory('\\Joomla\\Module\\Languages'));
$container->registerServiceProvider(new HelperFactory('\\Joomla\\Module\\Languages\\Site\\Helper'));

$container->registerServiceProvider(new Module());
}
};
47 changes: 47 additions & 0 deletions modules/mod_languages/src/Dispatcher/Dispatcher.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
<?php

/**
* @package Joomla.Site
* @subpackage mod_languages
*
* @copyright (C) 2024 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/

namespace Joomla\Module\Languages\Site\Dispatcher;

use Joomla\CMS\Dispatcher\AbstractModuleDispatcher;
use Joomla\CMS\Helper\HelperFactoryAwareInterface;
use Joomla\CMS\Helper\HelperFactoryAwareTrait;

// phpcs:disable PSR1.Files.SideEffects
\defined('_JEXEC') or die;
// phpcs:enable PSR1.Files.SideEffects

/**
* Dispatcher class for mod_languages
*
* @since __DEPLOY_VERSION__
*/
class Dispatcher extends AbstractModuleDispatcher implements HelperFactoryAwareInterface
{
use HelperFactoryAwareTrait;

/**
* Returns the layout data.
*
* @return array
*
* @since __DEPLOY_VERSION__
*/
protected function getLayoutData()
{
$data = parent::getLayoutData();

$data['headerText'] = $data['params']->get('header_text');
$data['footerText'] = $data['params']->get('footer_text');
$data['list'] = $this->getHelperFactory()->getHelper('LanguagesHelper')->getLanguages($data['params']);

return $data;
}
}
31 changes: 26 additions & 5 deletions modules/mod_languages/src/Helper/LanguagesHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,21 +28,24 @@
*
* @since 1.6
*/
abstract class LanguagesHelper
class LanguagesHelper
{
/**
* Gets a list of available languages
*
* @param \Joomla\Registry\Registry &$params module params
*
* @return array
*
* @since __DEPLOY_VERSION__
*/
public static function getList(&$params)
public function getLanguages(&$params)
{
$user = Factory::getUser();
$lang = Factory::getLanguage();
$languages = LanguageHelper::getLanguages();
$app = Factory::getApplication();
$user = $app->getIdentity();
$lang = $app->getLanguage();
$languages = LanguageHelper::getLanguages();

$menu = $app->getMenu();
$active = $menu->getActive();

Expand Down Expand Up @@ -134,4 +137,22 @@ public static function getList(&$params)

return $languages;
}

/**
* Gets a list of available languages
*
* @param \Joomla\Registry\Registry &$params module params
*
* @return array
*
* @deprecated __DEPLOY_VERSION__ will be removed in 7.0
* Use the non-static method getLanguages
* Example: Factory::getApplication()->bootModule('mod_languages', 'site')
* ->getHelper('LanguagesHelper')
* ->getLanguages($params)
*/
public static function getList(&$params)
{
return (new self())->getLanguages($params);
}
}