От макушки головы должен работать следующий подход:
- Подключитесь к событию
userCan
для действия "edit", проверьте существование страницы (то есть $title->exists()
), а если нет, обратитесь к некоторому сохраненному количеству (см. Ниже), и если принято решение запретить создание, установите $result
на false
и верните false
, чтобы остановить дальнейшие перехваты, отменяющие решение.
- Подключитесь к событию
ArticleInsertComplete
и обновите некоторые сохраненные данные, чтобы отразить, что пользователь ($user
) создал еще одну страницу.
Решение в # 1 может быть расширено с помощью дополнительной логики для поддержки нескольких политик в сочетании, например, с. автоматическое назначение прав; например, чтобы позволить пользователям создавать более одной страницы после того, как они достигли так называемого «автоматически подтвержденного» статуса, или игнорировать проверку для администраторов или других пользователей с определенными правами.