web-dev-qa-db-fra.com

Erreur: erreur 404 Catégorie non trouvée avec le script personnalisé PHP

Je travaille avec Joomla depuis un certain temps et je travaille maintenant avec une version 3.1.5. Je crée souvent mes propres scripts PHP à utiliser pour les callbacks AJAX et autres. Je les mets dans un dossier appelé scripts qui isn ' t fait partie de l’installation normale de Joomla.

Pour cette raison, je dois utiliser un code de configuration pour que les scripts fonctionnent correctement lorsque vous y accédez depuis Joomla. J'utilise ce code:

define( '_JEXEC', 1 );
define('JPATH_BASE', dirname(dirname(__FILE__)));
define( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );

/* Create the Application */
$mainframe = JFactory::getApplication('site');

Récemment, j'essaie d'appeler ce script pour AJAX et j'obtiens cette erreur suivante:

404 (catégorie non trouvée)

La seule raison pour laquelle je peux penser à cela est que Joomla pense que l'utilisateur ne dispose pas des privilèges pour lire le script en raison d'une raison quelconque de faire avec une catégorie? Je ne suis pas sûr et je cherche de l'aide. J'ai créé toutes les catégories pour cette installation Joomla et je ne les utilise pas.

3
jeffery_the_wind

Lorsque vous appelez Independent PHP scripts) pour AJAX callbacks, vous devez vérifier comment ils vivent sur le site Web Joomla! Standard.

Dans une configuration commune Apache-Joomla, d'abord .htaccess applique plusieurs règles pour définir les restrictions de sécurité, le traitement des fichiers SEF, etc. Ensuite, index.php prend le contrôle, initialise le CMS, achemine l'appel vers le bon composant et finalement génère le résultat .

Dans votre cas, il semble qu'Apache délègue l'appel au composant com_content au lieu d'appeler votre script .

2
Anibal

Je les gars. Dans mon cas, je l'avais parce que la "tâche" n'était pas passée à la page. J'ai eu un champ de formulaire caché qui avait

<input type="hidden" name="jform[task]" value="myCustomTask">

au lieu de

<input type="hidden" name="task" value="myCustomTask">

C'était principalement parce que j'avais la tâche dans le fichier XML d'un formulaire.

0
asiby