2016-06-07 1 views
1

Je construis un site Mediawiki qui inclura quelques milliers d'articles générés par Bot. Je souhaite que les utilisateurs puissent modifier les sections inférieures de chaque article, mais pas modifier les sections générées par le bot.Comment est-ce que je protège seulement une partie d'un article de Mediawiki de l'édition?

J'ai trouvé une extension abandonnée appelée ProtectSection qui l'a fait, mais je n'ai pas les compétences pour la mettre à jour pour fonctionner avec la version actuelle de Mediawiki.

Je songe à protéger les articles générés par Bot, puis à les transposer dans des articles éditables par l'utilisateur. Si je fais cela, puis-je cacher les articles originaux générés par Bot à partir des moteurs de recherche, et d'être navigable dans le wiki? En outre, j'aimerais que les utilisateurs puissent référencer des versions antérieures des articles générés par le bot, car leur texte sera mis à jour de temps en temps par le bot. Si je transclude et cache les articles générés par le bot, je suppose que leur histoire sera alors inaccessible. Ce ne serait pas un problème si je pouvais garder les articles générés par le bot, avec des sections modifiables par l'utilisateur.

Répondre

1

J'ai une mauvaise nouvelle. C'est vraiment difficile de protéger une partie de l'article. L'architecture mediawiki actuelle ne le permet pas à partir de zéro.

Ce que je vous suggère de faire est de créer custom namespase et y placer tous les articles de bot.

// Define constants for my additional namespaces. 
define("NS_FOO", 3000); // This MUST be even. 
define("NS_FOO_TALK", 3001); // This MUST be the following odd integer. 

// Add namespaces. 
$wgExtraNamespaces[NS_FOO] = "Foo"; 
$wgExtraNamespaces[NS_FOO_TALK] = "Foo_talk"; // Note underscores in the namespace name. 

Resrict utilisateurs ordinaires modifier cet espace de noms personnalisé, here is some info. Mais permettre aux utilisateurs de regarder l'histoire de ces pages.

# Only allow autoconfirmed users to edit Project namespace 
$wgNamespaceProtection[NS_PROJECT] = array('autoconfirmed'); 

# Don't allow anyone to edit non-talk pages until they've confirmed their 
# e-mail address (assuming we have no custom namespaces and allow edits 
# from non-emailconfirmed users to start with) 
# Note for 1.13: emailconfirmed group and right were removed from default 
# setup, if you want to use it, you'll have to re-enable it manually 
$wgNamespaceProtection[NS_MAIN]  = $wgNamespaceProtection[NS_USER] = 
$wgNamespaceProtection[NS_PROJECT] = $wgNamespaceProtection[NS_IMAGE] = 
$wgNamespaceProtection[NS_TEMPLATE] = $wgNamespaceProtection[NS_HELP] = 
$wgNamespaceProtection[NS_CATEGORY] = array('emailconfirmed'); 

# Only allow sysops to edit "Policy" namespace 
$wgGroupPermissions['sysop']['editpolicy'] = true; 
$wgNamespaceProtection[NS_POLICY] = array('editpolicy'); 

Dernière étape vous savez déjà - utiliser Tranclution.