Isoler les fichiers personnels
A l'usage et après diverses expériences, j'en suis arrivée à la conclusion qu'il est extrêmement pratique que le répertoire de l'application ne contienne aucun fichier personnel (c'est-à-dire ni le dossier public ni le dossier themes). Cela est vrai même si on ne veut qu'un seul blog sur son installation. Car ainsi, à chaque mise à jour il suffira de remplacer le répertoire du vieux dotclear par le nouveau, sans avoir à se soucier de préserver ses médias ou ses thèmes.
Bon, on les met où alors ces fichiers ? Il faut bien les mettre quelque part hein.
Créer les répertoires personnels
Ben ui. On va donc créer, à côté du répertoire dotclear qui contient l'application[1] deux autres répertoires. On a donc à la racine de l'espace web :
dotclear(l'installation de base)publicthemes
Note : dans themes vous placerez obligatoirement une copie du thème default. Puis ajoutez-y tous les thèmes que vous souhaitez avoir à disposition pour votre blog.
Modifier la configuration
Il faut maintenant que dotclear sache où se trouvent vos fichiers personnels. Dans le menu d'administration, rendez-vous sur about:config.
Il y a quatre champs à modifier :
- public_path :
../public - public_url :
/public - theme_path :
../themes - theme_url :
/themes
Et c'est tout.
Plusieurs blogs
Si vous avez plusieurs blogs, en remplissant pour tous de cette même façon le about:config, ils partageront les ressources des thèmes et des médias. Mais on peut sur le même principe créer un répertoire par blog contenant chacun ses propres répertoires public et themes.
Exemple pour deux blogs
Un répertoire par blog
Création des trois répertoires :
- dotclear (l'install de base de Dotclear)
- kozeries
- public
- themes
- dissitou
- public
- themes
(N'oubliez pas que chaque répertoire themes doit contenir au moins le thème par défaut.)
Modif du about:config
Pour le blog kozeries :
- public_path :
../kozeries/public - public_url :
/kozeries/public - theme_path :
../kozeries/themes - theme_url :
/kozeries/themes
Pour le blog dissitou :
- public_path :
../dissitou/public - public_url :
/dissitou/public - theme_path :
../dissitou/themes - theme_url :
/dissitou/themes
Partage partiel
On peut imaginer que vous souhaitiez isoler les ressources medias pour chaque blog mais partager les thèmes. Ça n'est pas compliqué :
Création des quatre répertoires
- dotclear (l'install de base de Dotclear)
- themes (tous les thèmes)
- kozeries
- public
- dissitou
- public
Modif du about:config
Pour le blog kozeries :
- public_path :
../kozeries/public - public_url :
/kozeries/public - theme_path :
../themes - theme_url :
/themes
Pour le blog dissitou :
- public_path :
../dissitou/public - public_url :
/dissitou/public - theme_path :
../themes - theme_url :
/themes
Et autres variantes
Sur ces deux exemples vous pouvez imaginer toutes déclinaisons possibles : celui-ci va sur le répertoire de thèmes partagés et celui-là a le sien propre, etc.
Notes
[1] Ou tout autre nom que vous aurez donné au répertoire de l'application.
Kozlika, 28/12/2006 - Lien permanent - Fil des commentaires de ce billet
Commentaires
Excellent comme toujours ! Merci pour ce billet :)
OK d'accord mais il faut remplacer l'ancienne url des images par les nouvelles dans la base de données, non ?
Précise ta question. Le billet ici concerne la création d'un nouveau blog, il n'y a donc pas d'"ancienne url" à modifier.
Oui effectivement pardon.
J'ai un blog actuel avec les dossiers public et thèmes dans la même répertoire que l'application or j'aimerais mettre en place la délocalisation des dossier publics et thèmes.
Du coup je me retrouve avec des chemins d'image actuel sur mon blog de la forme "/blog/public/image.jpg" en suivant ta méthode avec l'exemple pour 2 blogs il va y avoir de nouvelles urls pour les image et donc un soucis pour tous les posts déjà créés.
Il faudrait donc remplacer je suppose les urls des images des anciens posts dans la base sql.
Si oui comment le faire facilement sans avoir à tout faire à la main
J'espère que c'est plus clair
Merci
Aaaaaaaaah ! je comprends mieux :)
Je pense qu'une requête SQL peut être faite dans la base, ou un cherche/remplace sur le fichier d'export. Pour la requête, xave avait donné la syntaxe correcte sur le forum : elle peut te servir de piste et au besoin tu poursuis le fil avec tes questions supplémentaires.
Ai trouvé le message avec la requête qui va bien, ou presque merci kozlika
C'est fait et tout fonctionne à merveille.
Merci pour tes tutos :)
Guillaume, aurais-tu la gentillesse d'expliquer pas à pas ta manip dans les commentaires du billet sur la redirection des URL ? Ça pourrait servir à d'autres :)
J'ai l'impression que ce billet ne traite pas des fichiers PHP qui appelent les blogs. On apprend à créer des répertoires pour chaque blog mais pas comment on va accéder aux blogs, c'est bizarre non ?
Heureusement c'est tout simple : il suffit de copier le contenu de /dotclear/index.php n'importe où en mettant le bon chemin du fichier à inclure et c'est bon.
Hélas on voit sur le forum des gens galérer avec les .htaccess quand il suffit d'appeler le fichier blog.php pour que le blog soit accessible avec une URL comme celle-ci :
[http://example.com/blog/post/2007/06/05/plop]Ce billet ne traite pas de cela car il évoque le une install / un blog et l'utilité de tout de meme isoler les fichiers perso. Pour le multiblog il y a un tuto exeuprès pour :)