Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
2c7728e
Introduce router service
laoneo May 10, 2018
e94cc78
CS
laoneo May 10, 2018
2f64e1d
Merge branch '4.0-dev' into j4/router/service
laoneo May 10, 2018
092c026
Merge branch '4.0-dev' into j4/router/service
wilsonge May 10, 2018
5ebf3b3
Merge remote-tracking branch 'remotes/upstream/4.0-dev' into j4/route…
laoneo May 31, 2018
665b6cf
CS
laoneo May 31, 2018
afd9c73
Changed types
laoneo May 31, 2018
156a388
Only support site application
laoneo May 31, 2018
b44e8ad
Types
laoneo May 31, 2018
329a20c
Adapt legacy component
laoneo May 31, 2018
0cdfc17
Merge branch '4.0-dev' into j4/router/service
laoneo May 31, 2018
99550a7
Merge branch '4.0-dev' into j4/router/service
laoneo Jun 15, 2018
dbf7300
Merge remote-tracking branch 'remotes/upstream/4.0-dev' into j4/route…
laoneo Jul 17, 2018
73d9098
Merge remote-tracking branch 'origin/j4/router/service' into j4/route…
laoneo Jul 17, 2018
625f730
Merge branch '4.0-dev' into j4/router/service
laoneo Jul 17, 2018
df49591
fix conflicts
laoneo Aug 6, 2018
6fd4f9f
Merge remote-tracking branch 'origin/j4/router/service' into j4/route…
laoneo Aug 6, 2018
76d5c06
Merge branch '4.0-dev' into j4/router/service
laoneo Aug 7, 2018
ac82176
Merge conflicts
laoneo Aug 15, 2018
a9d5e6e
Merge branch '4.0-dev' into j4/router/service
laoneo Aug 20, 2018
6d50d75
Merge branch '4.0-dev' into j4/router/service
laoneo Aug 21, 2018
868895c
Merge branch '4.0-dev' into j4/router/service
laoneo Aug 22, 2018
eed26f9
Merge branch '4.0-dev' into j4/router/service
laoneo Aug 23, 2018
36769de
Merge branch '4.0-dev' into j4/router/service
laoneo Aug 24, 2018
afae590
fix conflicts
laoneo Sep 3, 2018
531b693
Merge remote-tracking branch 'origin/j4/router/service' into j4/route…
laoneo Sep 3, 2018
9722661
Merge branch '4.0-dev' into j4/router/service
laoneo Sep 13, 2018
9f0298c
Merge branch '4.0-dev' into j4/router/service
laoneo Sep 19, 2018
2499795
fix conflicts
laoneo Oct 1, 2018
085953e
Merge remote-tracking branch 'origin/j4/router/service' into j4/route…
laoneo Oct 1, 2018
80bd410
Add namespaced factory
laoneo Oct 1, 2018
dd75148
Merge remote-tracking branch 'remotes/upstream/4.0-dev' into j4/route…
laoneo Oct 1, 2018
1cfca61
revert
laoneo Oct 1, 2018
111a333
default to empty section
laoneo Oct 1, 2018
404991f
organize
laoneo Oct 1, 2018
df353dc
contact router
laoneo Oct 1, 2018
4085469
finder
laoneo Oct 1, 2018
d8f196c
newsfeeds
laoneo Oct 1, 2018
c1eaca8
users
laoneo Oct 1, 2018
5b25d40
finder
laoneo Oct 1, 2018
c956108
Save
laoneo Oct 1, 2018
f6ab98c
stabilize
laoneo Oct 1, 2018
550de78
Merge remote-tracking branch 'remotes/upstream/4.0-dev' into j4/route…
laoneo Oct 1, 2018
8ea0ada
fixes
laoneo Oct 1, 2018
5621d7c
Merge remote-tracking branch 'remotes/upstream/4.0-dev' into j4/route…
laoneo Oct 2, 2018
bc69b61
Merge remote-tracking branch 'origin/j4/router/service' into j4/route…
laoneo Oct 2, 2018
9dcd4c2
alpha order imports
laoneo Oct 2, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -16,30 +16,34 @@
use Joomla\CMS\Association\AssociationServiceInterface;
use Joomla\CMS\Categories\CategoryServiceInterface;
use Joomla\CMS\Categories\CategoryServiceTrait;
use Joomla\CMS\Component\Router\RouterServiceInterface;
use Joomla\CMS\Component\Router\RouterServiceTrait;
use Joomla\CMS\Extension\BootableExtensionInterface;
use Joomla\CMS\Extension\MVCComponent;
use Joomla\CMS\Factory;
use Joomla\CMS\Fields\FieldsServiceInterface;
use Joomla\CMS\Form\Form;
use Joomla\CMS\HTML\HTMLRegistryAwareTrait;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Workflow\WorkflowServiceInterface;
use Joomla\CMS\Workflow\WorkflowServiceTrait;
use Joomla\Component\Content\Administrator\Helper\ContentHelper;
use Joomla\Component\Content\Administrator\Service\HTML\AdministratorService;
use Joomla\Component\Content\Administrator\Service\HTML\Icon;
use Psr\Container\ContainerInterface;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Factory;

/**
* Component class for com_content
*
* @since __DEPLOY_VERSION__
*/
class ContentComponent extends MVCComponent implements
BootableExtensionInterface, CategoryServiceInterface, FieldsServiceInterface, AssociationServiceInterface, WorkflowServiceInterface
BootableExtensionInterface, CategoryServiceInterface, FieldsServiceInterface, AssociationServiceInterface,
WorkflowServiceInterface, RouterServiceInterface
{
use CategoryServiceTrait;
use AssociationServiceTrait;
use RouterServiceTrait;
use HTMLRegistryAwareTrait;
use WorkflowServiceTrait;

Expand Down
4 changes: 4 additions & 0 deletions administrator/components/com_content/services/provider.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,13 @@

use Joomla\CMS\Association\AssociationExtensionInterface;
use Joomla\CMS\Categories\CategoryFactoryInterface;
use Joomla\CMS\Component\Router\RouterFactoryInterface;
use Joomla\CMS\Dispatcher\DispatcherFactoryInterface;
use Joomla\CMS\Extension\ComponentInterface;
use Joomla\CMS\Extension\Service\Provider\CategoryFactory;
use Joomla\CMS\Extension\Service\Provider\DispatcherFactory;
use Joomla\CMS\Extension\Service\Provider\MVCFactoryFactory;
use Joomla\CMS\Extension\Service\Provider\RouterFactory;
use Joomla\CMS\HTML\Registry;
use Joomla\CMS\MVC\Factory\MVCFactoryFactoryInterface;
use Joomla\Component\Content\Administrator\Extension\ContentComponent;
Expand Down Expand Up @@ -46,6 +48,7 @@ public function register(Container $container)
$container->registerServiceProvider(new CategoryFactory('\\Joomla\\Component\\Content'));
$container->registerServiceProvider(new MVCFactoryFactory('\\Joomla\\Component\\Content'));
$container->registerServiceProvider(new DispatcherFactory('\\Joomla\\Component\\Content'));
$container->registerServiceProvider(new RouterFactory('\\Joomla\\Component\\Content'));

$container->set(
ComponentInterface::class,
Expand All @@ -57,6 +60,7 @@ function (Container $container)
$component->setMvcFactoryFactory($container->get(MVCFactoryFactoryInterface::class));
$component->setCategoryFactory($container->get(CategoryFactoryInterface::class));
$component->setAssociationExtension($container->get(AssociationExtensionInterface::class));
$component->setRouterFactory($container->get(RouterFactoryInterface::class));

return $component;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@

defined('JPATH_PLATFORM') or die;

use Joomla\CMS\Component\Router\RouterServiceInterface;
use Joomla\CMS\Component\Router\RouterServiceTrait;
use Joomla\CMS\Extension\BootableExtensionInterface;
use Joomla\CMS\Extension\MVCComponent;
use Joomla\CMS\HTML\HTMLRegistryAwareTrait;
Expand All @@ -24,8 +26,9 @@
*
* @since __DEPLOY_VERSION__
*/
class FinderComponent extends MVCComponent implements BootableExtensionInterface
class FinderComponent extends MVCComponent implements BootableExtensionInterface, RouterServiceInterface
{
use RouterServiceTrait;
use HTMLRegistryAwareTrait;

/**
Expand Down
4 changes: 4 additions & 0 deletions administrator/components/com_finder/services/provider.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,12 @@

defined('_JEXEC') or die;

use Joomla\CMS\Component\Router\RouterFactoryInterface;
use Joomla\CMS\Dispatcher\DispatcherFactoryInterface;
use Joomla\CMS\Extension\ComponentInterface;
use Joomla\CMS\Extension\Service\Provider\DispatcherFactory;
use Joomla\CMS\Extension\Service\Provider\MVCFactoryFactory;
use Joomla\CMS\Extension\Service\Provider\RouterFactory;
use Joomla\CMS\HTML\Registry;
use Joomla\CMS\MVC\Factory\MVCFactoryFactoryInterface;
use Joomla\Component\Finder\Administrator\Extension\FinderComponent;
Expand All @@ -39,13 +41,15 @@ public function register(Container $container)
{
$container->registerServiceProvider(new MVCFactoryFactory('\\Joomla\\Component\\Finder'));
$container->registerServiceProvider(new DispatcherFactory('\\Joomla\\Component\\Finder'));
$container->registerServiceProvider(new RouterFactory('\\Joomla\\Component\\Finder'));

$container->set(
ComponentInterface::class,
function (Container $container)
{
$component = new FinderComponent($container->get(DispatcherFactoryInterface::class));
$component->setMvcFactoryFactory($container->get(MVCFactoryFactoryInterface::class));
$component->setRouterFactory($container->get(RouterFactoryInterface::class));
$component->setRegistry($container->get(Registry::class));

return $component;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,11 @@
use Joomla\CMS\Association\AssociationServiceInterface;
use Joomla\CMS\Categories\CategoryServiceInterface;
use Joomla\CMS\Categories\CategoryServiceTrait;
use Joomla\CMS\Component\Router\RouterServiceInterface;
use Joomla\CMS\Component\Router\RouterServiceTrait;
use Joomla\CMS\Extension\BootableExtensionInterface;
use Joomla\CMS\Extension\MVCComponent;
use Joomla\CMS\HTML\HTMLRegistryAwareTrait;
use Joomla\CMS\MVC\Factory\MVCFactoryServiceInterface;
use Joomla\Component\Newsfeeds\Administrator\Service\HTML\AdministratorService;
use Psr\Container\ContainerInterface;

Expand All @@ -28,11 +29,12 @@
* @since __DEPLOY_VERSION__
*/
class NewsfeedsComponent extends MVCComponent implements
BootableExtensionInterface, CategoryServiceInterface, AssociationServiceInterface
BootableExtensionInterface, CategoryServiceInterface, AssociationServiceInterface, RouterServiceInterface
{
use CategoryServiceTrait;
use AssociationServiceTrait;
use HTMLRegistryAwareTrait;
use RouterServiceTrait;

/**
* Booting the extension. This is the function to set up the environment of the extension like
Expand Down
4 changes: 4 additions & 0 deletions administrator/components/com_newsfeeds/services/provider.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,13 @@

use Joomla\CMS\Association\AssociationExtensionInterface;
use Joomla\CMS\Categories\CategoryFactoryInterface;
use Joomla\CMS\Component\Router\RouterFactoryInterface;
use Joomla\CMS\Dispatcher\DispatcherFactoryInterface;
use Joomla\CMS\Extension\ComponentInterface;
use Joomla\CMS\Extension\Service\Provider\CategoryFactory;
use Joomla\CMS\Extension\Service\Provider\DispatcherFactory;
use Joomla\CMS\Extension\Service\Provider\MVCFactoryFactory;
use Joomla\CMS\Extension\Service\Provider\RouterFactory;
use Joomla\CMS\HTML\Registry;
use Joomla\CMS\MVC\Factory\MVCFactoryFactoryInterface;
use Joomla\Component\Newsfeeds\Administrator\Extension\NewsfeedsComponent;
Expand Down Expand Up @@ -46,6 +48,7 @@ public function register(Container $container)
$container->registerServiceProvider(new CategoryFactory('\\Joomla\\Component\\Newsfeeds'));
$container->registerServiceProvider(new MVCFactoryFactory('\\Joomla\\Component\\Newsfeeds'));
$container->registerServiceProvider(new DispatcherFactory('\\Joomla\\Component\\Newsfeeds'));
$container->registerServiceProvider(new RouterFactory('\\Joomla\\Component\\Newsfeeds'));

$container->set(
ComponentInterface::class,
Expand All @@ -57,6 +60,7 @@ function (Container $container)
$component->setMvcFactoryFactory($container->get(MVCFactoryFactoryInterface::class));
$component->setCategoryFactory($container->get(CategoryFactoryInterface::class));
$component->setAssociationExtension($container->get(AssociationExtensionInterface::class));
$component->setRouterFactory($container->get(RouterFactoryInterface::class));

return $component;
}
Expand Down
26 changes: 26 additions & 0 deletions administrator/components/com_users/Extension/UsersComponent.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<?php
/**
* @package Joomla.Administrator
* @subpackage com_users
*
* @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/

namespace Joomla\Component\Users\Administrator\Extension;

defined('JPATH_PLATFORM') or die;

use Joomla\CMS\Component\Router\RouterServiceInterface;
use Joomla\CMS\Component\Router\RouterServiceTrait;
use Joomla\CMS\Extension\MVCComponent;

/**
* Component class for com_users
*
* @since __DEPLOY_VERSION__
*/
class UsersComponent extends MVCComponent implements RouterServiceInterface
{
use RouterServiceTrait;
}
9 changes: 7 additions & 2 deletions administrator/components/com_users/services/provider.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,14 @@

defined('_JEXEC') or die;

use Joomla\CMS\Component\Router\RouterFactoryInterface;
use Joomla\CMS\Dispatcher\DispatcherFactoryInterface;
use Joomla\CMS\Extension\ComponentInterface;
use Joomla\CMS\Extension\MVCComponent;
use Joomla\CMS\Extension\Service\Provider\DispatcherFactory;
use Joomla\CMS\Extension\Service\Provider\MVCFactoryFactory;
use Joomla\CMS\Extension\Service\Provider\RouterFactory;
use Joomla\CMS\MVC\Factory\MVCFactoryFactoryInterface;
use Joomla\Component\Users\Administrator\Extension\UsersComponent;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;

Expand All @@ -38,12 +40,15 @@ public function register(Container $container)
{
$container->registerServiceProvider(new MVCFactoryFactory('\\Joomla\\Component\\Users'));
$container->registerServiceProvider(new DispatcherFactory('\\Joomla\\Component\\Users'));
$container->registerServiceProvider(new RouterFactory('\\Joomla\\Component\\Users'));

$container->set(
ComponentInterface::class,
function (Container $container)
{
$component = new MVCComponent($container->get(DispatcherFactoryInterface::class));
$component = new UsersComponent($container->get(DispatcherFactoryInterface::class));
$component->setMvcFactoryFactory($container->get(MVCFactoryFactoryInterface::class));
$component->setRouterFactory($container->get(RouterFactoryInterface::class));

return $component;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,36 +7,61 @@
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/

namespace Joomla\Component\Contact\Site\Service;

defined('_JEXEC') or die;

use Joomla\CMS\Application\CMSApplication;
use Joomla\CMS\Application\SiteApplication;
use Joomla\CMS\Categories\CategoryFactoryInterface;
use Joomla\CMS\Component\ComponentHelper;
use Joomla\CMS\Component\Router\RouterView;
use Joomla\CMS\Component\Router\RouterViewConfiguration;
use Joomla\CMS\Component\Router\Rules\MenuRules;
use Joomla\CMS\Component\Router\Rules\NomenuRules;
use Joomla\CMS\Component\Router\Rules\StandardRules;
use Joomla\CMS\Menu\AbstractMenu;
use Joomla\CMS\Categories\Categories;
use Joomla\CMS\Factory;
use Joomla\Database\DatabaseInterface;

/**
* Routing class from com_contact
*
* @since 3.3
*/
class ContactRouter extends RouterView
class Router extends RouterView
{
protected $noIDs = false;

/**
* Search Component router constructor
* The category factory
*
* @var CategoryFactoryInterface
*
* @since __DEPLOY_VERSION__
*/
private $categoryFactory;

/**
* The db
*
* @param CMSApplication $app The application object
* @param AbstractMenu $menu The menu object to work with
* @var DatabaseInterface
*
* @since __DEPLOY_VERSION__
*/
private $db;

/**
* Content Component router constructor
*
* @param SiteApplication $app The application object
* @param AbstractMenu $menu The menu object to work with
* @param CategoryFactoryInterface $categoryFactory The category object
* @param DatabaseInterface $db The database object
*/
public function __construct($app = null, $menu = null)
public function __construct(SiteApplication $app, AbstractMenu $menu, CategoryFactoryInterface $categoryFactory, DatabaseInterface $db)
{
$this->categoryFactory = $categoryFactory;
$this->db = $db;

$params = ComponentHelper::getParams('com_contact');
$this->noIDs = (bool) $params->get('sef_ids');
$categories = new RouterViewConfiguration('categories');
Expand Down Expand Up @@ -67,7 +92,7 @@ public function __construct($app = null, $menu = null)
*/
public function getCategorySegment($id, $query)
{
$category = Categories::getInstance($this->getName())->get($id);
$category = $this->categoryFactory->createCategory()->get($id);

if ($category)
{
Expand Down Expand Up @@ -113,14 +138,13 @@ public function getContactSegment($id, $query)
{
if (!strpos($id, ':'))
{
$db = Factory::getDbo();
$dbquery = $db->getQuery(true);
$dbquery = $this->db->getQuery(true);
$dbquery->select($dbquery->quoteName('alias'))
->from($dbquery->quoteName('#__contact_details'))
->where('id = ' . $dbquery->quote((int) $id));
$db->setQuery($dbquery);
$this->db->setQuery($dbquery);

$id .= ':' . $db->loadResult();
$id .= ':' . $this->db->loadResult();
}

if ($this->noIDs)
Expand All @@ -145,7 +169,7 @@ public function getCategoryId($segment, $query)
{
if (isset($query['id']))
{
$category = Categories::getInstance($this->getName(), array('access' => false))->get($query['id']);
$category = $this->categoryFactory->createCategory(['access' => false])->get($query['id']);

if ($category)
{
Expand Down Expand Up @@ -197,15 +221,14 @@ public function getContactId($segment, $query)
{
if ($this->noIDs)
{
$db = Factory::getDbo();
$dbquery = $db->getQuery(true);
$dbquery = $this->db->getQuery(true);
$dbquery->select($dbquery->quoteName('id'))
->from($dbquery->quoteName('#__contact_details'))
->where('alias = ' . $dbquery->quote($segment))
->where('catid = ' . $dbquery->quote($query['id']));
$db->setQuery($dbquery);
$this->db->setQuery($dbquery);

return (int) $db->loadResult();
return (int) $this->db->loadResult();
}

return (int) $segment;
Expand Down
Loading