web-dev-qa-db-fra.com

Plugin pour changer l'URL entrante

Je crée un composant, mais je dois rediriger toutes les demandes entrantes vers le nouveau composant. L'URL ressemble à ceci actuellement: index.php? Option = com_component & view = xxx et lorsque cela se produit, je souhaite remplacer com_component par com_newcomponent, toutes les vues internes sont identiques.

Est-ce possible par un simple plugin?

1
Robert Dam
/**
 * Fucntionality which needs to be triggered on After the system has been loaded.
 *
 * @since 1.0.0
 */
public function onAfterInitialise()
{
    $app = JFactory::getApplication();

    // Frontend only, otherwise return.
    if(!$app->isClient('site'))
    {
        return false;
    }

    $router = $app->getRouter();
    $callback = array($this, 'buildRoute');

    $router->attachBuildRule($callback);
}

public function buildRoute($router, $uri)
{
    $routerClone = clone $router;
    $vars= $routerClone->parse($uri);

    if($vars['option'] == 'com_component1' && $vars['view'] == 'update')
    {
        $uri->setVar('option', 'com_component_new');

    }
}
1
Robert Dam

Vous pouvez utiliser un simple plug-in système, avec l'événement onAfterInitilization () pour effectuer des vérifications très simples, par exemple. isAdmin, est le composant utilisé par com_component et si c'est le cas la redirection

0