Extension:Farmer/fr

À propos
Farmer est un outil qui vous permet d'administrer un ensemble de projets Mediawiki aussi bien qu'il modifie la configuration grâce à une interface Web.

Changelog

 * 0.0.2 : Gère l'apparence par défaut ainsi que les extensions grâce à l'interface Web. L'administrateur Farmer pour sélectionner les extensions disponibles pour l'ensemble des sites. Chaque wiki peut sélectionner les extensions qu'il veut activer.
 * 0.0.1 : Version initiale. Possiblité de créer un nouveau wiki grâce à une interface Web.  Peut aussi modifier les habilitations wiki par cette même interface.

Préfixe de la Table
Farmer impose que toutes les tables Mediawiki aient un préfixe, le wiki par défaut inclus. En l'absence de tel préfixe, chacune d'entre elles devra être renommée. Pour cela utiliser la requête SQL suivante :

En se basant sur la version 1.12alpha de Mediawiki, il est conseillé de déparer le préfix par _-_ afin d'éviter des problème de reconnaissance de la table. Si vous désirez ajouter le préfix admin, je conseille donc d'opérer de la façon suivante :

Répertoire accessible en écriture pour les fichiers de configuration des Wikis
Farmer écrit les configurations pour chaque wiki sur le disque. Le fichier permet l'accès au wiki grâces aux données écrite dans ces fichiers. Ceci signifie que le répertoire extensions/Farmer soit accessible en écriture. Ceci implique, notamment sous UNIX, ou LINUX, de lancer la commande chmod a+w extensions/Farmer -R.

Nettoyer LocalSettings.php
La configurration de LocalSettings.php doit être limitée au minimum. En effet, Farmer examine l'environnement globale de wiki par défaut, et ajuste les variables.

Ainsi, Farmer réduit LocalSettings.php au simple rôle de configuration globale de votre ensemble MediaWiki. Le code de ce fichier s'appliquera sur l'ensemble des wiki dépendant du site qui administrera tout l'ensemble. Vous pouvez continuer d'ajouter les extensions et les variables globales. En revanche, chaque variable propre à un sous projet ne devrait y figurer.

La liste des variables suivant ne devraient pas être définie dans votre LocalSettings.php.
 * $wgSitename
 * $wgDBprefix
 * $wgLogo
 * $wgGroupPermissions

En réalité, si quelques variables y sont définies, elles seront écrasées par Farmer. Cependant, une bonne pratique de la programmation est de ne pas définir des variables pour les sous-wikis dans ce fichier.

Choisir une stratégie d'hébergement
La stratégie d'hébergement consiste à savoir comment les wikis seront accessibles par une URL. En voici quelques exemples.

Wildcard DNS
La passerelle DNS se réfère à l'utilisation d'un hôte virtuel et d'une entrée DNS pour établir tous les sous-domaines d'un hôte vers un wiki unique.

Par exemple si votre wiki se trouve à  http://farm.mondomaine , les wikis seraient disponibles sur  http:// wiki1.farm.mondomaine,  http:// wiki2.farm.mondomaine, etc.

Le préfixe de l'URL
Le préfixe de l'URL se réfère à l'identification d'un wiki par une composante du lien. Si vous avez un site  http:// farm.mondomaine, les wikis seraient accessible par  http:// farm.mondomaine/wiki1/,  http:// farm.mondomaine/wiki2/

Si vous n'avez pas la possibilité de créer une entrée DNS, vous serez donc obligé d'utiliser cette méthode.

Autres possibilités
Parce que Farmer vous permet de définir votre propre fonction pour planifier une requête vers un wiki, il est possible de créer une telle planification qui ferait ce que vous voudriez. Ainsi, vous pourriez planifier différents niveaux de domaines pour les wikis qui seraient tous créés par une seule installation de Mediawiki. Vous pouvez même planifier vers un wiki différent sur votre navigateur, etc. Tout dépend de vous.

Patches
Farmer exisge que soient appliqués quelques patches pour qu'il fonctionne convenablement. Ils concernes quelques fichiers du répertoire includes/ de mediawiki.

Compte tenu des récentes modifications de mediawiki depuis la création de l'extensions, les patches ont été modifiés depuis.

Tables partagées
À l'origine, le rapport #2396 contenait un patch pour les tables partagées pour l'ensembles des wiki. Ce patche avait été publié sur my patch lequel est devenu obsolète.

Il est donc conseillé d'utiliser le patch suivant :

Une fois votre patch installé, indiquer les paramètres suivants dans LocalSettings.php :

Il serait encore mieux d'y écrire directement le nom complet de la table partagée. Plusieurs problèmes ont été relevés avec cette configuration. Si vous avez le préfix admin, à titre d'exemple, j'écrirai directement :

Ceci partagera les tables 'user', 'user_groups', 'interwiki', and 'math' sur l'ensemble des wikis de Farmer.

Il est possible que Farmer puisse supporter, un jour, des bases de données non partagées `user` et `user_group`. Il semble qu'il serait plus logique pour eux qu'ils demeurent partagés car ce serait désavantageux d'administrer plusieurs comptes sur le même site.

mysql_errno fix
Si vous tournez avec MediaWiki trunk, passez à l'étape suivante. En revanche, pour les versions 1.7.1 et précédentes, vous devrez modifier dans Database.php, les fonctions fetchObject, fetchRow, et numRows qui appellent mysql_errno directement.

Vous devez changer ceci pour la lecture :

Obtenir le code source
Le code source est disponible sur le site officiel Subversion sous extensions/Farmer

Copier les sources vers le répertoirs extensions/
Copiez le code source ainsi téléchargé vers extensions/Farmer.

Installation dans LocalSettings.php
À la fin du fichier LocalSettings.php, ajoutez :

Configurer Farmer
Farmer doit être configuré avant son lancement. Tant que Farmer ne sera pas configuré, votre wiki sera bloqué.

Le fonctionnement de Farmer est affecté par les paramètres dans la variable globale wgFarmerSettings laquelle est créée quand Farmer.php est incluse.

Comme il a été dit plus haut, cette variable doit être paramétrée entre la ligne  et celle comportant

Ceci vous donnera quelque chose comme :

Variables et définitions de $wgFarmerSettings
Ce qui suit sont les paramètres disponibles qui peuvent modifier le comportement de Farmer.


 * defaultWiki : Le nom du Wiki par défaut lequel correspond au préfixe de la table MySql du Wiki qui servira de site d'administration générale. Ce sera le seul site qui pourra créer d'autres sous-wikis. Ce wiki maître contient aussi des messages dans l'espace Mediawiki qui sont utilisés pour les autres projets. Quand un wiki ne peut être idenfifié par wikiIdentifierFunction (voir infra, le wiki accédé sera la valeur de cette variable. Cette-ci devra être rédigée en caractères minuscules. Cette variable doit être paramétrée.


 * configDirectory : Le répertoire où Farmer placera et lira les fichiers de configuration de chaque wiki. Ce répertoire doit être impérativement accessible en écriture par le serveur web. Il sera indiqué par défaut par le sous-répertoire configs où réside l'extension Farmer. Pour des raisons de sécurité, celui-ci ne devrait pas être accessible depuis Internet. C'est une bonne option pour que ce répertoire soit mis en dehors du répertoire racine de votre document.


 * wikiIdentifierFunction : Quand Farmer tourne, il appelle une fonction qui essaiera de trouver, en dehors du wiki accédé, à partir des variables d'environnement. Ce paramètre définit quelle fonction est appelée pour faire ceci. La valeur de cette option est en réalité le premier paramètre pour la fonction  de PHP. La classe MediaWikiFarmer à plusieurs méthodes de construction que vous pouvez utiliser : _matchByServerName, _matchByURLRegExp. Si vous avez besoin d'un comportement plus compliqué que les fonctions fournies pour déterminer le nom du wiki qui a été accédé, vous avez la possiblité d'écrire votre propre fonction pour effectuer la configuration et établir ce paramètre qui sera le nom de cette fonction. La valeur par défaut est


 * matchServerNameSuffix : En utilisant _matchByServerName comme wikiIdentifierFunction</tt>, ce paramètre établira le suffixe de chaque nom d'hôte qui représente un wiki. À titre d'exemple, si vous être en train d'utiliser un DNS pour identifier chaque wiki (wiki1.mondomaine.com, wiki2.mondomaine, etc), alors le suffixe sera mondomaine.com. Dans d'autre mots, _matchByServerName retournera chaque caractère jusqu'à la séquence précédant matchServerNameSuffix</tt>.


 * onUnknownWiki : Fonction à appeler quand un wiki inconnu a été accédé. La valeur de cette option est le premier paramètre de la fonction PHP . La fonction identifiée par cette variable est appelée quand   a identifié un wiki depuis l'environnement. Mais Farmer ne peut vérifier si ce wiki existe bel et bien. La valeur par défaut est  . Quand cette fonction est appelée, le premier paramètre sera le nom du wiki, tel qu'il est identifié par.


 * redirectToURL : Quand un onUnknownWiki est paramétré dans, cette option établisse l'adresse qui sera envoyée dans l'en-tête de la  .   dans cette adresse sera positionnée avec le nom du wiki, telle qu'elle a été passé dans la fonction établie par  . C'est une bonne idée pour cette adresse de pointer vers la page   de votre wiki principl ou bien de donner des instructions pour comment créer un wiki dans le cas d'utilisateur qui ne disposent pas des droits requis pour créer des wikis.


 * dbAdminUser : Nom de l'utilisateur ayant accès à la base de données pour créer des tables dans $wgDBname</tt>.


 * dbAdminPassword : Mot de passe pour dbAdminUser</tt>.


 * newDbSourceFile : Source du fichier SQL qui sera utilisé pour créer les tables de la base de donnée du wiki. Ce fichier doit être impérativement formaté comme maintenance/tables.sql</tt>. La variable par défaut pointe vers daughterwiki.sql lequel est distribué avec l'extension farmer mais qui est maintenant désuet. Il sera donc judicieux de recréer ce fichier en vous basant sur /maintenance/mysql5/tables.sql</tt> dont vous aurez bien soin d'enlever les tables . Si vous avez installé des extensions requérant leurs propres tables, il conviendra de les ajouter dans votre fichier.


 * dbTablePrefix : Préfixe pour toutes les table de votre base de donnée. Ceci n'est donc pas nécessaire en principe. Il est utilisé si vous n'avez la permission de créer des tables avec un préfixe spécifique.


 * dbTablePrefixSeparator : Chaîne de caractères à insérer entre le nom de votre wiki et le nom de la table Mediawiki. Ceci permet une lecture plus facile pour toutes manipulations ultérieurs. Si rien n'est indiqué, la table ne comportera que le nom du wiki plus le nom de la table.


 * defaultMessagesFunction : Fonction à appeler qui retourne un tableau de messages à insérer dans l'espace Mediwiki des wikis nouvellement créés. La valeur de ce paramètre est le premier argument vers la fonction call_user_func</tt>. Le tableau retourné devrait disposer du nom du message comme clef et le message proprement dit comme valeur de cette clef. S'il n'est pas défini, il utilisera $wgAllMessagesEn pour remplir les messages des espaces de nommage.


 * perWikiStorageRoot : répertoire supérieur où chaque document par wiki (images, téléchargements, etc) seront stockés. Ce répertoire trouve son chemin indiqué dans la variable globale $wgUploadDirectory. Ce répertoire doit être accessible en écriture sur votre serveur web.
 * defaultSkin : L'apparence à utiliser pour les nouveaux wikis ainsi créé. Il prend la même valeur que $wgDefaultSkin dont la valeur par défaut est monobook</tt>.

Lancer Farmer pour la première fois
Après l'installation de Farmer dans LocalSettings.php</tt>, celui-ci sera utilisable. La première requête à effectuer consister à procéder à plusieurs choses. Si vous accédez à votre Wiki principal, Farmer créera automatiquement son propre fichier de ocnfiguration et les autres fichiers nécessaires pour qu'il puisse tourner. Si le répertoire configDirectory</tt> n'est pas accessible en écriture, Farmer lancera un message critique et votre wiki ne sera pas utilisable. En l'absence de tout message d'erreur tandis que vous pouvez accéder à votre wiki, tout laissera à penser que tout a été convenablement configuré.

Personnaliser les Messages de Farmer
Avant de faire quoi que ce soit avec Farmer, vous aurez peut-être besoin de personnaliser les messages systèmes par défaut. Toutefois, une version multilangue est en cours de développement et devrait normalement voir le jour prochainement. Dans l'espace Mediawiki, tous les messages ont pour préfixe farmer</tt>. Cette espace Mediawiki devrait dont être protégé en écriture pour éviter tout vandalisme, comme cela est le cas dans toutes les interfaces Mediawiki par défaut.

Toutefois, deux messages systèmes doivent être personnalisés :  et

farmerwikiurl
est le modèle pour le liens pointant vers un wiki de votre ensembles de projet. $1</tt> represente no nom du wiki. Cette adresse doit être paramètrée en fonction de la configuration de votre projet principal.

farmerinterwikiurl
est le modèle pour l'adresse utilisée dans les liens interwikis. indique le nom du wiki. indique le titre de l'article. Il existe des chances pour que cette variable ressemble à.

Options de configuration pour le Wiki principal
Depuis que le fichier de configuration par défaut du wiki a été créé automatiquement quand Farmer a été lancé pour la première fois, plusieurs paramètres doivent être renseignés. Vous devrez donc aller sur  de votre site pour les préciser. De vilaines choses risquent de vous arriver si vous négligez ce détail. Vous devrez vous y connecter avec un nom d'utilisateur disposant des privilèges farmeradmin</tt> lesquels sont attribués d'office aux administrateur. Dans la page de cette fonction, vous verrez un lien vers Administrer ce Wiki. Cliquez dessus.

Configuration du titre
Dans, votre wiki doit disposer impérativement d'un titre. Ce titre est créé une fois pour toutes. Aussi, assurez-vous qu'il soit correct. Le titre en question est en réalité un alias de $wgSitename.Il est donc aussi le nom de l'espace de noms du projet.

Description
Description consiste en un texte décrivant le wiki. Il peut être modifié à tout moment. Il est utilisé dans le répertoire de Farm.

Permissions
Il établit les permissions de votre wiki principal. Toutes les habilitations dont désactivées par défaut. Vous devrez probablement les activer pour les personnes pour lesquels vous désirez leur donner accès. Set the permissions for your default wiki. All permissions default to closed. You will probably want to open up your wiki so people can actually edit it.

Utilisation de Farmer
Une des interfaces avec Farmer depuis. Depuis là, on peut lancer plusieurs tâches.



Créer un wiki
Des wikis peuvent être créés depuis le lien de la page. Ce lien n'est disponible que si les conditions suivantes sont réunies :
 * 1) Vous êtes actuellement sur le wiki principal.
 * 2) L'utilisateur doit disposer des privilèges createwiki privilege (droit donné par défaut aux administrateurs)

Quand vous cliquez sur le lien vous verrer un formulaire Web disposant de trois éléments.


 * Nom du Wiki : Le nom de votre wiki. Il sera utilisé comme une composante du lien internet.  Il sera, en outre, converti en caractères minuscules et les caractères non alphanumériques seront ôtés. Ceci inclut les accents.
 * Titre du Wiki : Le titre de votre wiki. Il correspond effectivement à $wgSitename. Les espaces et les accents sont supprimés pour cause de compatibilité des préfixes interwikis.
 * Description : La description de votre wiki apparaîtra dans le répertoire de votre ensemble.

Une fois les renseignements donnés, cliquez sur le bouton aux fins de vérifications. La page suivante vous montrera quelle seront les valeurs qui seront modifiées, le cas échéant. Ceci donnera aussi quelques informations de base sur la manière dont votre wiki travaillaira : l'adresse, les liens du projets, etc)

Pour confirmer que ces informations sont correctes, cliquez sur le bouton Confirmer</tt>.

Une fois la validation lancée, les opéarations suivantes seront effectuées :


 * 1) Le fichier de configuration de base de votre wiki sera créé avec les informations que vous avez fournies ;
 * 2) Le fichier SQLdans le fichier indiqué dans <tt>newDbSourceFile</tt> est exécuté, créant ainsi les tables requises.
 * 3) La page d'accueil est créée avec les données définis dans le message système <tt>farmernewwikimainpage</tt> ;
 * 4) Les messages systèmes sont incorporés ;
 * 5) La table <tt>interwiki</tt> est mise à jour avec la référence vers ce wiki ;
 * 6) La personne qui a créé le wiki est ajouté au groupe des noms [farmer][wikiname][admin] où <tt>wikiname</tt> est le nom du wiki.

Si tout ceci fonctionne, vous devriez voir un message vous informant que votre wiki est créé. Ce message contiendra un lien vers celui-ci.

Organiser les Wikis
Farmet autorise les administrateurs du projet principal ainsi que ceux des sous-wikis de contrôler la configuration des wikis individuels. Ces contrôles sont disponibles sur. Actuellement, ces contrôles vous autorise juste d'établir la description du wiki ainsi que de définir les permissions. Plus tard, on espère fournir d'autres interfaces pour d'autres variables.

Organiser les extensions
Farmer permets à ses administrateur de définir les extensions qui pourront être sélectionnées pour les autres wiki membres.

Définir les extensions disponibles
Les utilisateurs disposant des pouvoirs <tt>farmeadmin</tt> peut accéder à la fonctionnalité  afin de définir quelles sont les extensions qui pourront être utilisés par les wikis de l'ensemble.

Sur cette page, vous verrez une liste d'extensions qui sont actuellement chargés, une liste des chemins includes PHP, et un formulaire définissant une nouvelle extension.

Malheureusement, Mediawiki ne dispose pas d'une bonne interface pour résumer les extensions. Aussi, vous devez donner le nom des fichiers des extensions que vous désirez chargher. Si le nom est incorrect, ne vous inquiétez pas. Farmer vérifie si le fichier existe s'il est incorporable avant d'ajouter l'extension dans sa liste. Farmer indiquera aussi s'il détecte un problème lors de l'ajout de cette extension.

Organisation des extensions dans les Sous-Wikis
L'administrateur d'un sous-wiki peut aller dans  pour sélectionner les extensions disponibles à activer sur un wiki déterminé.

Voir aussi

 * Extension:Read Restrict
 * Manual:Wiki family