web-dev-qa-db-fra.com

Erreur fatale: require_once (): Echec de l'ouverture | Utilisation de la constante non définie DS - supposé "DS"

J'essaie de transférer un site Joomla 1.5 en série 3x

C'est avoir

// Set the table directory
JTable::addIncludePath(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_newtoy'.DS.'tables');
$controllerName = JRequest::getCmd( 'c', 'category' );


$task = JRequest::getCmd('task');
require_once( JPATH_COMPONENT.DS.'controllers'.DS.$controllerName.'.php' );
$controllerName = 'NewtoyController'.$controllerName;

Dans la vue administration - sa création ci-dessous avis et erreur

(!) Remarque: Utilisation de la constante non définie DS - suppose 'DS' dans Warning: require_once (): impossible d'ouvrir le flux


Erreur fatale: require_once (): Echec de l'ouverture requise ''

Comment résoudre ce problème pour la série Joomla 3.6?

4
Ruchika

Cela ne provient pas du noyau de Joomla, mais d'un composant tiers (probablement développé sur mesure) existant sur votre site.

Commencez par vérifier si vous avez vraiment besoin de/utilisez ce composant, ou vous pouvez simplement le désinstaller. Si vous en avez besoin, recherchez toutes les informations que vous pouvez collecter pour ce composant - recherchez le développeur et son site/email et demandez-lui s'il existe une mise à jour pour Joomla 3. Ces informations, que vous pourrez peut-être trouver dans les fichiers du composant, par exemple le fichier newtoy.xml dans le répertoire du composant du site administrateur.

S'il n'y a pas de telles informations ou de mise à jour, vous devrez les mettre à jour.

En ce qui concerne cette erreur spécifique concernant la constante DS, vous devez remplacer toutes les occurrences "DS" par la barre oblique "/" Dans l'extension.

* La constante DS n'est plus utilisée dans Joomla.

Comme solution rapide, vous pouvez définir la constante DS à votre façon:

A. Créez un defines.php Dans le répertoire racine de votre site Joomla.

<?php
defined('_JEXEC') or die;

// Custom definitions

define('DS', '/');

Joomla chargera ce fichier defines.php Et la constante DS sera définie dans l’application de site.

B. En haut du fichier index.php principal avec (il sera écrasé lors de la prochaine mise à jour de Joomla):

defined('DS') or define('DS', '/');

C. En haut de votre script:

defined('DS') or define('DS', 'DIRECTORY_SEPARATOR');

Cela résoudra temporairement cette erreur, mais cette modification sera perdue lors de la prochaine mise à jour de Joomla.

Mais il y aura probablement d'autres modifications à faire pour mettre à niveau le composant et le rendre compatible avec Joomla 3.

Si vous n'avez aucune expérience en programmation, cette tâche ne sera pas très facile et il peut être judicieux d'engager quelqu'un.

Vous pouvez trouver les ressources suivantes utiles:

9
FFrewin

Je vous recommande d'utiliser ce plugin:

http://extensions.joomla.org/extension/ds-constant

il réintroduira la constante obsolète DS constante pour faciliter la migration des sites 2.5.x dont les extensions utilisent toujours DS jusqu'à ce qu'elles soient réparées par ses développeurs.

3
Piero Marsilio