2012-07-25 5 views
2

Je gère des données en utilisant un mediawiki et je me demande s'il est possible d'avoir des pages standardisées générées à partir de données wiki existantes sans avoir à créer une charge de pages très similaires. Dans une situation idéale, j'aurais un backend de base de données et des gabarits de pages dynamiquement remplis par CGI, et je me demande si le système de gabarit mediawiki peut être forcé à remplir ce rôle.Modèles Mediawiki et génération de pages standardisées

C'est ce que je voudrais faire:

page de données

name:  banana 
colour: yellow 
tastiness: extremely high 
extra:  some more stuff, potentially with complicated wiki formatting 
links:  www.banana.com; www.iheartbananas.org 
image:  banana.jpg 

name:  apple 
colour: red, green 
tastiness: variable 
extra:  some more stuff 
links:  www.apple-fruit.com 

et pour chaque élément dans la base de données, générer une page standardisée:

<name> Info 

It is generally <colour> 
Its tastiness rating is <tastiness> 
Read more about <name> at <links> 

<image> 

Est-ce possible avec les modèles mediawiki?

+1

Il existe des extensions pour charger des données externes dans des modèles wiki. Voir par exemple, [Extension: DataTransclusion] (http://www.mediawiki.org/wiki/Extension:DataTransclusion). Vous auriez quand même besoin d'un moyen de générer automatiquement les pages. Peut-être utiliser cette extension en combinaison avec [une extension de préchargement de page] (http://www.mediawiki.org/wiki/Manual:Creating_pages_with_preloaded_text). – Christian

Répondre

2

C'est possible avec les templates, même si ce n'est pas forcément une bonne solution. Vous devez créer un modèle de données pour chaque élément, quelque chose comme ça (disons, Template:FruitData/banana):

{{ {{{template}}} 
| name =  banana 
| colour = yellow 
| tastiness = extremely high 
| extra =  some more stuff, potentially with complicated wiki formatting 
| link =  www.banana.com 
| image =  banana.jpg 
}} 

et un modèle d'affichage (par exemple Template:StandardFruitDisplay):

[[File:{{{image}}}|thumb|right]] 
The {{{name}}} is a {{{colour}}} fruit with {{{tastiness}}} taste. {{extra|}}} See [http://{{{link}}} {{{{link}}}]. 

puis l'afficher sur la réelle page comme ceci: {{ Template:FruitData/banana | template = StandardFruitDisplay }}

Mais vous êtes mieux avec une extension centrée sur les données, probablement (sauf si votre objectif est une flexibilité extrême ou le contrôle de l'utilisateur).

+0

Merci, c'est génial. Comme vous le dites, les modèles ne sont pas la meilleure solution, mais c'est un moyen pratique de résoudre ce problème. –

Questions connexes