Удаление блога в WP MU

Как можно сделать ограничение от пользователей, чтобы они сами не могли удалять свои собственные блоги?

Могу предложить простенький вариант.

Найти эту ссылку в админке и заключить ее в условие

if (is_site_admin())
{
ссылка на удаление блога
}

Т.е. если попадется человек, знающий wp, то он может просто урл вбить, а для всех остальных прокатит.

Могу предложить простенький вариант. 

Найти эту ссылку в админке и заключить ее в условие

if (is_site_admin())
{
ссылка на удаление блога
}

Т.е. если попадется человек, знающий wp, то он может просто урл вбить, а для всех остальных прокатит.

подскажите, пожалуйста, в каком это файле искать?

и еще, вы не в курсе, как можно запретить использование некотрых плагинов для пользователей? к примеру FeedWordPress – чтобы я как админ мог пользоваться, а пользователи нет….

1. Файл wp-includes/wpmu-functions.php
Там во-первых, идет функция составления меню (строки 1652 – 1654 для WPMU 1.3.3), во-вторых функция формирования страницы-предупреждения при удалении блога (строки 1656 – 1709).

Удаление пункта меню для пользователей:

function admin_menu() {
    if (is_site_admin()){
        add_submenu_page('options-general.php', __('Delete Blog'), __('Delete Blog'), 'manage_options', 'delete-blog', array(&$this, 'plugin_content'));
    }
    }

Заодно такое же условие можно воткнуть и во вторую функцию (function plugin_content() ) и, например, для всех, кто не Администратор, выводить что-то вроде "Only Administrator can delete blog". Тогда вообще все правильно будет (не считая того, что это хак ядра :lol:)

2. http://wpmudev.org там найди плагин "plugincommander" – он как раз позволяет управлять настройками для плагинов. Или прописывать такое же условие (is_site_admin) в файлы плагинов

1. Файл wp-includes/wpmu-functions.php 

2. http://wpmudev.org там найди плагин "plugincommander" - он как раз позволяет управлять настройками для плагинов. Или прописывать такое же условие (is_site_admin) в файлы плагинов

С первым действительно вроде бы получилось… Спасибо!
я строку

function admin_menu() {
        add_submenu_page('options-general.php', __('Delete Blog'), __('Delete Blog'), 'manage_options', 'delete-blog', array(&$this, 'plugin_content'));
    }

заменил на ту что ты написал:

function admin_menu() {
    if (is_site_admin()){
        add_submenu_page('options-general.php', __('Delete Blog'), __('Delete Blog'), 'manage_options', 'delete-blog', array(&$this, 'plugin_content'));
    }
    }

Правильно?
Пункт в меню исчез.
Я даже попробывал ввести строку: http://****.*******.***/wp-admin/options-general.php?page=delete-blog – пишет: Невозможно загрузить delete-blog. 🙂

А вот насчет второго – я недавно ставил plugin commander – результат "0". Я под администратором отключил плагины, но потом вошел как обычный пользователь и смог их сам же включить…. может я что-то не так делал?

1. Если работает, значит все нормально 🙂

2. Plugin Commander’ом надо не просто отключить плагины, а еще и запретить управление ими для пользователей. А для ломовой гарантии – дописать в плагин if is_site_admin. У меня так в древовидных комментариях сделано (плагин портирован из wp, и настройки плагина одинаковы для всех блогов).

2. Plugin Commander'ом надо не просто отключить плагины, а еще и запретить управление ими для пользователей. А для ломовой гарантии - дописать в плагин if is_site_admin. У меня так в древовидных комментариях сделано (плагин портирован из wp, и настройки плагина одинаковы для всех блогов).

А случайно не подскажешь в каком именно файле и в какой строке? а то у меня с этим немного туговато…. 😉

Anonymous
Отправить
Ответ на: