web-dev-qa-db-fra.com

Erreur Joomla sur Phoca Gallery

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.

2
Babak.Abad

Contexte

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.

Ton problème

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.

Solutions

Il y a plusieurs façons de résoudre ce problème:

  1. 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.

  2. 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.

  3. 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.

1
johanpw