26/03/2012, 23:27:09
Bonjour à tous !
Ayant bien galéré depuis pas mal de temps sur l'upload de thème depuis Theme Manager, j'ai enfin trouvé d'où provenait mon problème.
Et ce que je ne comprends pas, c'est pourquoi ce système n'est pas déjà en place ? N'hésitez pas à me dire si "cette astuce" à déjà été donné, car j'ai beau avoir fouillé, mais rien ...
En fait, il existe un bug (enfin je l'appelle ainsi, car il n'en parle nulle part), qui fait que lorsqu'on essaye d'uploader un fichier XML (thème), suivant la configuration serveur, ce fichier se retrouve "indisponible".
Par exemple, sur la configuration de mon serveur, les fichiers envoyés par formulaire ne sont pas disponible tel quel, il faut les déplacer dans le bon dossier pour qu'Apache puisse y avoir accès et le lire (principe de sécurité de base)
Donc, pour résumer, si comme moi, vous galéré pour installer un simple thème, modifier le fichier "action.importtheme.php" disponible depuis cet emplacement "modules/ThemeManager/"
A la ligne 104 vous avez actuellement ceci :
Il faut le remplacer par ceci :
(Attention, la configuration du 'DOCUMENT_ROOT' varie suivant les serveurs, peut être que le slash / après la concaténation n'est pas nécessaire )
Et là, bingo, ça marche niquel, plus de foutu problème de DTD non valable (en fait le problème vient du fait que le fichier XML parsé est vide !)
N'hésitez surtout pas à m'indiquer si ce problème avait déjà été résolu, j'en serais heureux !
Lien de l'article original que j'ai écrit : http://www.grid-france.fr/forum/suivi361...tml#p36103
Ayant bien galéré depuis pas mal de temps sur l'upload de thème depuis Theme Manager, j'ai enfin trouvé d'où provenait mon problème.
Et ce que je ne comprends pas, c'est pourquoi ce système n'est pas déjà en place ? N'hésitez pas à me dire si "cette astuce" à déjà été donné, car j'ai beau avoir fouillé, mais rien ...
En fait, il existe un bug (enfin je l'appelle ainsi, car il n'en parle nulle part), qui fait que lorsqu'on essaye d'uploader un fichier XML (thème), suivant la configuration serveur, ce fichier se retrouve "indisponible".
Par exemple, sur la configuration de mon serveur, les fichiers envoyés par formulaire ne sont pas disponible tel quel, il faut les déplacer dans le bon dossier pour qu'Apache puisse y avoir accès et le lire (principe de sécurité de base)
Donc, pour résumer, si comme moi, vous galéré pour installer un simple thème, modifier le fichier "action.importtheme.php" disponible depuis cet emplacement "modules/ThemeManager/"
A la ligne 104 vous avez actuellement ceci :
Code :
[== PHP ==]
// $file['tmp_name'] is the file we have to parse
$xml = file_get_contents( $file['tmp_name'] );
Il faut le remplacer par ceci :
Code :
[== PHP ==]
// Define new name and move it to a good folder
$new_upload_file = $_SERVER['DOCUMENT_ROOT'].'/tmp/theme.xml';
if(!move_uploaded_file($file['tmp_name'], $new_upload_file))
{
$this->DisplayErrorPage( $id, $params, $returnid,
$this->Lang('error_nofilesuploaded'));
return;
}
// $file['tmp_name'] is the file we have to parse
$xml = file_get_contents($new_upload_file);
(Attention, la configuration du 'DOCUMENT_ROOT' varie suivant les serveurs, peut être que le slash / après la concaténation n'est pas nécessaire )
Et là, bingo, ça marche niquel, plus de foutu problème de DTD non valable (en fait le problème vient du fait que le fichier XML parsé est vide !)
N'hésitez surtout pas à m'indiquer si ce problème avait déjà été résolu, j'en serais heureux !
Lien de l'article original que j'ai écrit : http://www.grid-france.fr/forum/suivi361...tml#p36103