diff --git a/src/administrator/components/com_weblinks/script.php b/src/administrator/components/com_weblinks/script.php
index f4a710b..aa255fb 100644
--- a/src/administrator/components/com_weblinks/script.php
+++ b/src/administrator/components/com_weblinks/script.php
@@ -48,6 +48,7 @@ class Com_WeblinksInstallerScript
'/language/en-GB/en-GB.mod_weblinks.sys.ini',
'/language/en-GB/en-GB.pkg_weblinks.sys.ini',
'/modules/mod_weblinks/helper.php',
+ '/modules/mod_weblinks/mod_weblinks.php',
];
$folders = [
diff --git a/src/modules/mod_weblinks/mod_weblinks.php b/src/modules/mod_weblinks/mod_weblinks.php
deleted file mode 100644
index 3da3d4a..0000000
--- a/src/modules/mod_weblinks/mod_weblinks.php
+++ /dev/null
@@ -1,24 +0,0 @@
-get('moduleclass_sfx'));
-
-require ModuleHelper::getLayoutPath('mod_weblinks', $params->get('layout', 'default'));
diff --git a/src/modules/mod_weblinks/mod_weblinks.xml b/src/modules/mod_weblinks/mod_weblinks.xml
index e7fe725..9e5077b 100644
--- a/src/modules/mod_weblinks/mod_weblinks.xml
+++ b/src/modules/mod_weblinks/mod_weblinks.xml
@@ -12,7 +12,6 @@
Joomla\Module\Weblinks
##MODULE_FILES##
- mod_weblinks.php
##LANGUAGE_FILES##
diff --git a/src/modules/mod_weblinks/services/provider.php b/src/modules/mod_weblinks/services/provider.php
new file mode 100644
index 0000000..75815ef
--- /dev/null
+++ b/src/modules/mod_weblinks/services/provider.php
@@ -0,0 +1,41 @@
+
+ * @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 weblinks module services 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\\Weblinks'));
+ $container->registerServiceProvider(new HelperFactory('\\Joomla\\Module\\Weblinks\\Site\\Helper'));
+
+ $container->registerServiceProvider(new Module());
+ }
+};
diff --git a/src/modules/mod_weblinks/src/Dispatcher/Dispatcher.php b/src/modules/mod_weblinks/src/Dispatcher/Dispatcher.php
new file mode 100644
index 0000000..9df4bd2
--- /dev/null
+++ b/src/modules/mod_weblinks/src/Dispatcher/Dispatcher.php
@@ -0,0 +1,50 @@
+
+ * @license GNU General Public License version 2 or later; see LICENSE.txt
+ */
+
+namespace Joomla\Module\Weblinks\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_weblinks
+ *
+ * @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['list'] = $this->getHelperFactory()->getHelper('WeblinksHelper')->getWeblinks(
+ $data['params'],
+ $this->getApplication()
+ );
+
+ $data['moduleclass_sfx'] = htmlspecialchars($data['params']->get('moduleclass_sfx', ''));
+
+ return $data;
+ }
+}
diff --git a/src/modules/mod_weblinks/src/Helper/WeblinksHelper.php b/src/modules/mod_weblinks/src/Helper/WeblinksHelper.php
index 4c58f1a..c476ea9 100644
--- a/src/modules/mod_weblinks/src/Helper/WeblinksHelper.php
+++ b/src/modules/mod_weblinks/src/Helper/WeblinksHelper.php
@@ -29,14 +29,13 @@ class WeblinksHelper
* @param Registry $params The module parameters
* @param CMSApplicationInterface $app The application
*
- * @return mixed Null if no weblinks based on input parameters else an array containing all the weblinks.
+ * @return array Array containing all the weblinks.
*
- * @since 1.5
+ * @since __DEPLOY_VERSION__
**/
- public static function getList($params, $app)
+ public function getWeblinks($params, $app)
{
// @var \Joomla\Component\Weblinks\Site\Model\CategoryModel $model
-
$model = $app->bootComponent('com_weblinks')->getMVCFactory()
->createModel('Category', 'Site', ['ignore_request' => true]);
@@ -73,7 +72,7 @@ class WeblinksHelper
$case_when1 .= $query->charLength('a.alias', '!=', '0');
$case_when1 .= ' THEN ';
$a_id = $query->castAs('CHAR', 'a.id');
- $case_when1 .= $query->concatenate(array($a_id, 'a.alias'), ':');
+ $case_when1 .= $query->concatenate([$a_id, 'a.alias'], ':');
$case_when1 .= ' ELSE ';
$case_when1 .= $a_id . ' END as slug';
@@ -81,7 +80,7 @@ class WeblinksHelper
$case_when2 .= $query->charLength('c.alias', '!=', '0');
$case_when2 .= ' THEN ';
$c_id = $query->castAs('CHAR', 'c.id');
- $case_when2 .= $query->concatenate(array($c_id, 'c.alias'), ':');
+ $case_when2 .= $query->concatenate([$c_id, 'c.alias'], ':');
$case_when2 .= ' ELSE ';
$case_when2 .= $c_id . ' END as catslug';
@@ -120,4 +119,21 @@ class WeblinksHelper
return [];
}
+
+ /**
+ * Retrieve list of weblinks
+ *
+ * @param Registry $params The module parameters
+ * @param CMSApplicationInterface $app The application
+ *
+ * @return mixed Null if no weblinks based on input parameters else an array containing all the weblinks.
+ *
+ * @since 1.5
+ *
+ * @deprecated 5.0 Use the none static function getWeblinks
+ **/
+ public static function getList($params, $app)
+ {
+ return (new self())->getWeblinks($params, $app);
+ }
}