J'utilise Joomla 3.5.1. Récemment j'ai installé phoca gallery
sur mon joomla. Cela ne fonctionne pas et malheureusement je ne peux pas le désinstaller à partir d’extensions ou de menu de plugins. Lorsque je clique sur le menu gestion des extensions, le message d'erreur suivant s'affiche:
Avertissement: require_once () [function.require-once]: impossible d'accéder à /home/aiprogra/public_html/administratorDScomponentsDScom_phocagalleryDSlibrariesDSloader.php dans /home/aiprogra/public_html/plugins/plugins/content/phocal
Warning: require_once (/home/aiprogra/public_html/administratorDScomponentsDScom_phocagalleryDSlibrariesDSharger.php) [function.require-once]: échec de l'ouverture du flux: Aucun fichier ou répertoire dans /home/aiprogra/public_html/plugins à la ligne 20
Erreur fatale: require_once () [function.require]: ouverture impossible: '/home/aiprogra/public_html/administratorDScomponentsDScom_phocagalleryDSlibrariesDSloader.php' (include_path = '.:/Usr/lib/php:/usr/php:/usr/local/lib/php') dans /home/aiprogra/public_html/plugins/content/phocagallery/phocagallery.php à la ligne 20
Comment puis-je réparer cette erreur? J'ai noté que je ne suis pas un progammer php. Je préfère le désinstaller.
DS
est une constante qui signifie Directory Separator
, et était utilisé dans les versions précédentes de Joomla afin de différencier les barres obliques /
et barre oblique inverse \
. En bref, cela est dû au fait que les systèmes Linux (tels que les serveurs Apache) utilisent une barre oblique pour séparer les répertoires, tandis que Windows utilise la barre oblique inversée comme séparateur de répertoires. Cependant, Windows est tout aussi satisfait de la barre oblique: la constante DS
n'est plus définie par défaut dans Joomla. Cela provoque des erreurs dans les extensions qui utilisent toujours la constante.
Le plug-in Phoca utilise le code suivant pour inclure un fichier du composant principal de Phoca Gallery:
require_once( JPATH_ADMINISTRATOR.DS.'components'.DS.'com_phocagallery'.DS.'libraries'.DS.'loader.php');
Puisque DS
n'a pas été défini, PHP se traduit par:
require_once('/home/aiprogra/public_html/administratorDScomponentsDScom_phocagalleryDSlibrariesDSloader.php')
Ce fichier n'existe pas et le chemin réel aurait dû être:
/home/aiprogra/public_html/administrator/components/com_phocagallery/libraries/loader.php
D'où l'erreur.
Il y a plusieurs façons de résoudre ce problème:
Téléchargez un petit plugin appelé DS Constant pour Joomla! 3.0 qui définit la constante. Je n'ai pas testé le plugin moi-même, mais cela devrait fonctionner correctement.
Changer le code du plugin (dans ce cas, le fichier est ROOT/plugins/content/phocagallery/phocagallery.php
, ligne 20), remplaçant toute occurrence de DS
par une barre oblique. Cela nécessite des connaissances de base PHP) pour obtenir les citations correctes.
Définissez vous-même la constante en ajoutant la ligne suivante dans le fichier ROOT/index.php
:
define('DS', DIRECTORY_SEPARATOR);
Cependant, ceci est un piratage de base et n'est pas recommandé, car votre site va casser quand vous mettez à jour Joomla.