web-dev-qa-db-fra.com

Quoi utiliser à la place de Jinput dans Joomla 1.5?

J'ai le code suivant:

defined( '_JEXEC' ) or die;

class plgSystemTemplateSwitcher extends JPlugin
    {
        function onAfterInitialise()
            {
                $input = JFactory::getApplication()->input;
                $session = JFactory::getSession();
                $template = $input->getCmd( 'template', '' );
                if ( $template !== '' ) {
                $session->set( 'templateChanged', $template );
                }
                if ( $session->get( 'templateChanged', '' )!== '' ) {
                $input->set( 'template', $session->get( 'templateChanged', '' ) );
                }
            }
    }

Ce code est utilisé comme plugin pour changer le modèle pour l'utilisateur actuel. Ils cliquent sur un lien qui contient le paramètre GETtemplate=mytemplate Et le modèle est enregistré dans la session de l'utilisateur et s'affiche.

J'ai changé:

$template = $input->getCmd( 'template', '' );

à

$template = JRequest::getVar('template');

Mais j'ai un site Joomla 1.5 qui ne supporte pas ce qui suit:

$input = JFactory::getApplication()->input; 

J'ai eu une erreur quand essayez de définir $input->set().

Tout le monde peut m'aider à porter ce code en version 1.5?

1
Dimm

Pour définir quelque chose sur Joomla 1.5, vous devrez utiliser setVar, comme suit:

$template = JRequest::getVar('template');
JRequest::setVar('template', $template); 

Disclaimer:

Joomla 1.5 est extrêmement ancien et n'est plus officiellement supporté. Vous trouverez également des personnes ici moins disposées à vous soutenir. Veuillez envisager de migrer votre site Web vers la dernière version de Joomla, principalement pour des raisons de sécurité.

2
Lodder