Problème plugins et media Dotclear 2 (et solution)

Publié le 1 juin 2007

Tags : Technique

L’interface d’administration de Dotclear 2 a sacrément de la gueule, mais elle comporte des subtilités… J’ai longtemps cherché où se trouvait l’administration des plugins et des medias, sans comprendre pourquoi je ne l’avais pas. En désespoir de cause, j’ai regardé le code et trouvé la solution suivante.

Les plugins

Si l’administration n’apparaissait pas, c’est parce que je n’avais pas donné les droits (chmodé) le dossier plugins. Ne pouvant pas y écrire, Dotclear avait la discrétion de ne pas me proposer d’en ajouter. Poussons cette amabilité jusqu’au bout.

Ne pas proposer d’effacer les plugins

Lorsque l’utilisateur peut ajouter ou supprimer des plugins, une case à cocher précède leur nom. Pour faire bien, le bouton “Supprimer les plugins sélectionnés” ne devrait pas être visible si le logiciel n’a pas les droits. Dans le fichier admin/plugins.php, remplacer les lignes 171 à 174 :

    echo
    ''.
    ''.
    '';

Par :

    echo
    '';
    if ($is_writable) {
        echo
        '';
    }
    echo
    '';

Afficher un message quand le répertoire plugins n’est pas modifiable.

Ligne 218 du fichier admin/plugins.php, remplacer l’accolade fermante "}" par ce qui suit :

} else {
    echo
    ''.__('The "Plugins" folder is not writable. You cannot add or remove plugins.').'';
}

Afficher un message quand le dossier media n’est pas modifiable

Ligne 276 du fichier admin/media.php, remplacer l’accolade fermante "}" par ce qui suit :

} else {
    echo
    ''.__('The "Public" folder is not writable. You cannot add or remove media.').'';
}

Traduire les messages

Vous l’aurez remarqué, les deux messages sont en anglais (pour rester cohérent avec Dotclear). Pour patcher une installation destinée à une autre langue, vous pouvez traduire le message en attendant que le patch et la traduction soient inclus dans une prochaine version de Dotclear. (Les fichiers de traductions se trouvent dans le répertoire “locales”).

Rendre un répertoire modifiable pour Dotclear

Je vous ai montré comment afficher un message si le script ne peut pas modifier un dossier. Tant qu’à faire, autant vous expliquer comment éviter totalement le problème !
Les “droits” d’un fichier ou d’un répertoire sont répartis en : droit de lecture, d’écriture, et d’exécution. Et ce, pour le propriétaire du dossier, les utilisateurs appartenant au même groupe, et enfin les autres utilisateurs. Si vous avez installé Dotclear en l’uploadant par FTP, les dossiers vous “appartiennent”. En général, les serveurs respectent la propriété privé et vous devrez autoriser PHP à réécrire vos fichiers.

Pour cela, reprenez votre logiciel FTP favori FileZilla par exemple) et faites un clic droit sur le fichier ou dossier dont vous devez changer les droits. Dans FileZilla, cela s’appelle les “Attributs” du fichier ou dossier. Cochez la case “Ecriture” (souvent abrégé en “W” pour “Write”) pour tous [le propriétaire du dossier, son groupe ou les autres (sachant que comme le fait justement remarquer Bysus il vaut mieux n’attribuer que le minimum de droits, pour des raisons de sécurité)]{.underline}, et appliquez. En général ça suffit, et je vais m’arreter là parce que sinon je pourrais continuer longtemps…

4 commentaires

Bysus le 22 mai 2008

Bonjour,
Cela ne pose pas de problème de sécurité de rendre certains dossiers accessibles en écriture pour tous?

Goulven le 23 mai 2008

@Bysus : Si, en pratique il vaut mieux ne donner les droits en écriture qu'au processus PHP ou Apache. Mais comme ça change suivant la configuration du serveur, j'ai préféré être générique. Mais j'ai inclus ta remarque dans l'article.

Merci pour cette intervention.

conseil juridique le 4 mai 2009

c quoi les solutions de ces problèmes?

Goulven le 6 mai 2009

@conseil juridique : Les solutions sont expliquées dans le corps de l'article : donner les droits d'écriture à l'utilisateur Apache/PHP sur les dossiers plugins et media.
Page précédente Page précédente Page suivante Page suivante