web-dev-qa-db-fra.com

Comment intercepter une erreur dans Joomla 3.5 (alternative à JError)

J'ai lu les méthodes Exception afin de remplacer les obsolètes JError, mais je ne peux pas résoudre le problème suivant:

J'ai un plug-in qui redirige un utilisateur vers une page de connexion s'il tente d'accéder à une page destinée à un utilisateur connecté (au lieu de recevoir le message "Vous n'êtes pas autorisé à afficher cette ressource.").

Cela fonctionnait quand JError était toujours là (avant J3), le code était le suivant:

Error::setErrorHandling(E_ERROR, 'callback', array(
    'plgSystemCustom_Redirects',
    'handleError'
));

Et dans le reste du script, j'avais la fonction handleError.

Mon doute ici est (contrairement à tous les autres exemples que j'ai lus) comment capter l'erreur (je ne suis pas en mesure d'émettre un try); autrement dit, comment remplacer le code obsolète par quelque chose qui fonctionne dans Joomla 3.5?

4
jackJoe

Il n'y a pas d'alternative aux classes JError et JException, le développement de Joomla a donc décidé de supprimer ces classes et d'utiliser l'exception php à la place. Jetez un coup d'œil à la table obsolète JError .

Donc, à mon avis, vous avez deux possibilités:

  • Réécrivez votre plugin avec le gestionnaire d'exceptions php
  • Repensez votre plugin en utilisant classe JLog

Voici quelques discussions et ressources intéressantes sur ce sujet:

J'espère que ceci vous aidera.

3
Kitase88

Depuis Joomla 2.5 et dans Joomla 3.5, vous pouvez utiliser les méthodes décrites dans https://docs.joomla.org/Auto_redirect_guests_to_login pour gérer votre fonctionnalité, il n'est pas nécessaire d'ajouter un plugin! J'utilise ceci sur mon site https://www.loytec.com , voir Menu Support> ProductReturn (RMA) https://www.loytec.com/support-en/rma avec les outils Joomla Core uniquement.

0
Tom Kuschel