Викимедиа Lockdown с существующими пространствами имен
Я использую Media Wiki для документации. После того, как я добавил много страниц с пространством имен, например INTERN:My Page
или же Public:My Page
и хотите ограничить доступ на чтение для этих существующих пространств имен.
Я нашел расширение "Lockdown" и могу использовать его для новых, пользовательских пространств имен:
define ("NS_CUSTOM", 110);
$wgExtraNamespaces[NS_CUSTOM] = "customNamespace";
$wgNamespacePermissionLockdown[NS_CUSTOM]['*'] = array('sysop');
Если я пытаюсь использовать тот же код для моих существующих пространств имен, старые страницы становятся недоступными - кажется, что страницы не существуют.
Есть ли способ ограничить доступ к существующим пространствам имен? Могу ли я найти идентификатор пространства имен где-нибудь в базе данных?
2 ответа
Согласно документации Lockdown, для уже существующего пространства имен, такого как NS_PROJECT, должно хватить одной строки:
$wgNamespacePermissionLockdown[NS_PROJECT]['*'] = array('sysop');
Из вашего вопроса и вашего собственного ответа недостаточно ясно, как выглядит ваша конфигурация (например, пытаетесь ли вы заблокировать несколько пространств имен и, возможно, допустили там какие-то ошибки). Тем не менее, вы не должны
- переопределить существующие пространства имен
- повторно использовать определение NS_CUSTOM для разных идентификаторов пространства имен (это вариант 1.)
Я создал новое пользовательское пространство имен
define ("NS_CUSTOM", 111);
$wgExtraNamespaces[NS_CUSTOM] = "customNamespace";
$wgNamespacePermissionLockdown[NS_CUSTOM]['*'] = array('sysop');
и изменил так ряды в page
Таблица базы данных для page_namespace = 111