Vous n'êtes pas identifié(e).
13 février 2024 Sortie de Dotclear 2.29
bonjour,
J'ai cherché un peu mais je n'ai pas trouvé de solution à mon problème.
Petite explication :
J'ai une installation multiblog sur un serveur dédié. Chaque blog est hébergé dans le répertoire /home/<user>/public_html/index.php
Chaque blog a un virtual host dédié (en utilisant le mod_macro de apache) avec le document_root suivant /home/<user>/public_html
Exemple :
* toto.mondomaine.com pointe sur /home/toto/public_html/index.php (identifiant du blog : toto)
* roger.mondomaine.com pointe sur /home/roger/public_html/index.php (identifiant du blog : roger)
Le nom de l'utilisateur unix porte donc le nom de l'identifiant du blog et est identique à son virtual host.
Tout fonctionne très bien et j'en suis très satisfait.
J'ai juste un point qui me chagrinne (orthographe ?). Lorsque je crée un nouveau blog, je suis obligé de modifier le public_path et le themes_path via about:config pour y mettre :
/home/<user>/public_html/public et /home/<user>/public_html/themes
N'y aurait-il pas une variable dynamique contenant l'identifiant du blog à l'image des variables "{y}: year, {m}: month, {d}: day, {id}: post id, {t}: entry title" utilisées pour post_url_format ?
En supposant que cette variable existe et qu'elle se nomme {u}, je pourrais ainsi mettre de manière globale la valeur /home/{u}/public_html/public ?
Pour le moment, j'ai peu de blog mais si ça vient à grossir, cela me simplifierait la vie.
Peut-être avez-vous des conseils à me donner dans l'organisation de mon système de fichiers.
Merci,
Hors ligne
Il y a un handler appelé coreBlogConstruct qui permet (entre autre) de changer les settings d'un blog juste après son initialisation.
Le mieux c'est de mettre cette behavior dans le fichier config.php (ou un fichier que celui-ci inclura). Comme $core n'existe pas encore à ce moment, il existe $__top_behaviors. Dans la conf, ça donnerai environ ça :
$__top_behaviors[] = array('coreBlogConstruct','maFonction');
function maFonction($blog) {
$blog->themes_path = '/home/blogs/'.$blog->id.'/themes';
$blog->public_path = '/home/blogs/'.$blog->id.'/public';
}
La seule difference entre un fou et moi, c'est que je ne suis pas fou. (Dali)
Hors ligne
Merci Olivier pour ta réponse. Je viens de tester. Cela fonctionne très bien.
Dans mon cas, j'ai utilisé le code suivant dans le fichier config.php
$__top_behaviors[] = array('coreBlogConstruct','modifConfig');
function modifConfig($blog) {
$blog->themes_path = '/home/'.$blog->id.'/public_html/themes';
$blog->public_path = '/home/'.$blog->id.'/public_html/public';
}
Par contre, c'est un peu déroutant car la configuration de themes_path et public_path dans "about:config" n'est pas modifiée.
De plus, Je peux modifier les valeurs dans about:config mais elles ne sont pas prises en compte (et c'est compréhensible).
Merci,
Hors ligne
C'est peut-être possible de mettre les bons chemins dans les paramètres avec adminAfterBlogCreate ?
- les règles du forum : http://forum.dotclear.net/viewtopic.php?id=39494
- la galaxie de Dotclear 2 : http://fr.dotclear.org/documentation/2.0/links
Hors ligne
Vous n'êtes pas identifié(e).