★ Ferme de blogs
– Osku , Dotclear - Lien permanent
L'idée générale que je me suis faite d'une ferme de blogs est la suivante : un quidam souhaite avoir un blog sans installer quoi que ce soit. Il se met donc à la recherche d'un tiers service qui se propose de créer le blog et configurer les paramètres techniques. Il choisit simplement le nom de son blog, l'URL et son identifiant. Le mot de passe est automatiquement généré par l'application puis changé à la première connexion sur le tableau de bord.
Cependant, afin d'éviter les abus, les patrons du service ont un droit de regard sur l'acceptation ou refus des créations de blogs : à chaque demande soumise, il suffit à un super administrateur de valider ou refuser la création et le cas échéant enclencher le processus de création de blog et de l'utilisateur administrateur de ce blog.
Les possibilités sont vastes avec Dotclear et j'ai du faire les choix suivants :
- créer un plugin configurable afin de gérer les demandes de nouveaux blogs avec utilisateurs administrateurs.
- la ferme est mono-domaine. Très peu ont une structure digne de Gandi sous la main.
- Les dossiers
publicdes blogs sont tous rangés dans un sous domaine dédiée et administrable via le gestionnaire de médias du blog principal de la plateforme. Cependant, le volume total de chaque dossierpublicn'est pas limité.
Nouveau plugin Dotclear : dafarm
Cette extension ne s'adresse pas aux débutants. L'extension s'active via about:config.
Présentation
- Message : vous pouvez éditer le message affiché au dessus du formulaire.
Paramètres
- Schéma de l'URL d'un blog : par exemple
http://%s.mondomaine.tld/où%ssera remplacé par l'identifiant du blog. Le/est obligatoire à la fin de l'adresse. A adapter à votre nom de domaine. - Imposer les minuscules dans l'identifiant du blog : oui/non
- Liste des identifiants de blog exclus : admin, www, demo, media, etc.
- Thème par défaut des nouveaux blogs créés : identifiant du thème.
- Schéma de l'URL des médias :
http://media.mondomaine.tld/<blog_id>/l'idéal est de retenir un sous-domaine dédiée pour stocker les médias. - Schéma du chemin des médias : mettre le chemin absolu, ça semble mieux fonctionner...
- Mails d'avertissement : lors de nouvelles demandes, un mail sera envoyé à chacun des destinataires de cette liste.
En coulisses chez votre hébergeur
Arborescence serveur :
- répertoire
www - répertoire
dotclear- tout le contenu de l'application Dotclear
- répertoire
publicavec les droits en lecture et écriture.- fichier
.htaccess
- fichier
Gestion des sous-domaines :
- (vide) pointe sur le répertoire
wwwdu serveur. - * (pour tous les sous-domaines différents de vide ) pointé également vers le même répertoire
wwwdu serveur. - public à pointer sur le répertoire
publicdu serveur. - admin à pointer sur le réperetoire
dotclear/admindu serveur.
Thèmes Dotclear aka l'apparence du blog :
Il est nécessaire d'avoir un lien symbolique themes pointant vers le répertoire themes de Dotclear. Pour se faire, connectez-vous chez votre hébergeur (en SSH par exemple) et dans un terminal, exécutez la commande suivante :
cd www ln -s /dotclear/themes themes
Fichier index.php dans www
Il s'agit du fichier index.php de Dotclear à recopier en ajustant le chemin vers le répertoire de l'application.
<?php
if (isset($_SERVER['DC_BLOG_ID'])) {
define('DC_BLOG_ID',$_SERVER['DC_BLOG_ID']);
} elseif (isset($_SERVER['REDIRECT_DC_BLOG_ID'])) {
define('DC_BLOG_ID',$_SERVER['REDIRECT_DC_BLOG_ID']);
}else {
# Define your blog here
define('DC_BLOG_ID','default');
}
require dirname(__FILE__).'/../dotclear/inc/public/prepend.php';
?>
Fichier .htaccess dans www
La directive Apache mod_setenvif permet de définir à la volée la constante DC_BLOG_ID en fonction du sous-domaine. Quant à la directive mod_rewrite, on ne la présente plus...
Options -MultiViews -Indexes
<IfModule mod_setenvif.c>
SetEnvIf Host "^(.*)\.mondomaine\.tld$" DC_BLOG_ID=$1
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteRule ^$ /index.php/ [L]
</IfModule>
</IfModule>
Fichier .htaccess dans public
Options -MultiViews -Indexes -ExecCGI RemoveHandler .php .py .pl .rb cgi shtml
Vous êtes libres de réaliser ce que vous voulez avec l'extension. Sachez juste que cette extension ne sera pas remontée sous Dotaddict.org.. Le suivi est réalisé pour le moment seulement ici.


16 commentaires
Great !!
— Silvyn!, mardi 22 février 2011, 13:21.Peut-être masquer comme tu l'as fait les identifiants aussi sur la capture
Super initiative ! Je teste ça dès que j'ai un peu de temps.
Merci beaucoup.
Pierre
— Pierre, mercredi 30 mars 2011, 12:36.Super bien!
J'ai rencontré un problème cependant: il faut créer le dossier public de chaque utilisateur manuellement?
Et est-il possible de contribuer au développement?
— Siegfried, lundi 4 avril 2011, 02:25.Curieux ton problème. Tu as les bons droits sur les dossiers ? Normalement la création est automatique.
Comment souhaites-tu contribuer ?
— Osku, lundi 4 avril 2011, 08:32.Oui pourtant j'ai les bons droits, peut-être ai-je mal configuré le plugin, j'ai mis ../public comme path et quand je me logue avec le nouvel utilisateur, cela me dit que ../public/utilisateur n'existe pas (et il n'existe pas).
Je ne suis pas un grand programmeur, et je n'ai jamais codé de plugin, mais je voudrais aider (pourquoi pas) à ajouter des choses. Je voudrais également aider financierement avec mes modestes ressources
— Siegfried, lundi 4 avril 2011, 18:48.Ops je n'ai jamais codé de plugin POUR dotclear*
— Siegfried, lundi 4 avril 2011, 18:49.Mais j'ai déjà fait quelques plugins pour d'autres apps comme wordpress et des cms.
Ok ca marche en fait en mettant le chemin absolu, ça m'apprendra à lire trop vite! (j'avais surtout regardé le screenshot).
— Siegfried, lundi 4 avril 2011, 20:46.Ah, super
Petite précision, le dossier
— Osku, lundi 4 avril 2011, 21:04.publicqui se créé estpublic/<blog_id>et nonpublic/utilisateurBonjour
— mendoz, samedi 9 avril 2011, 15:40.Très intéressant !!
Est-ce que ça fonctionne en mode multiblog (http://fr.dotclear.org/documentatio...), ou justement, l’intérêt est d'y arriver sans rien toucher au code ?
Utiliser un sous-domaine pour les médias n'est pas sécurisé : cela ne protège pas contre le XSS.
— dolmen, dimanche 10 avril 2011, 15:41.Il vaut mieux utiliser un autre domaine de premier niveau (TLD).
@mendoz : une ferme de blogs est en multiblogs par définition...
@dolmen : tu aurais des ressources sur le sujet ? Merci.
— Osku, lundi 11 avril 2011, 17:24.@ Siegfried : tu peux déjà aider en parlant de Kynä autour de toi (plateforme ayant servi de développement à DaFarm), si tu connais une association, n'hésite pas, merci.
— Sylvain, mardi 12 avril 2011, 09:36.J'ai pas encore mis de système de don en place, mais c'est sympa d'avoir proposé pour Greg !
Excellent module, je l'ai intégré sur les deux plateform multi-blog qur je gère :
Cette extension j'y avait pensé, mais je n'ai jamais pris le temps de rentrer assez dans le code de dotclear, pour y a arriver, j'tutiliser un ensemble de script perso pour faire la même chose en moins bien. Grâce à toi c'est désormais chose faite et cela me simplifie grandement les tâche d’administrations. Grand Merci.
— simc, dimanche 29 avril 2012, 15:54.Merci pour ton retour
— Osku, mercredi 2 mai 2012, 09:02.A quelle adresse le quidam doit aller pour faire la demande d'un nouveau blog ?
— Sim, jeudi 17 mai 2012, 22:34.Tout simplement sur http://url-blog/request
J'ai oublié de mentionner que l'extension fournit un widget.
— Osku, lundi 21 mai 2012, 08:20.