Drupal модуль для управления веб-мастером? - PullRequest
1 голос
/ 16 сентября 2009

Человек, управляющий сайтом, над которым я работаю, хочет решить, какие блоки куда и куда направить. В Drupal уже есть хороший интерфейс для этого (выбор региона из выпадающего списка), но я хотел бы скрыть определенные блоки от этого пользователя. Это блоки, по которым он не должен двигаться.

Afaik это невозможно через разрешения. Есть ли модуль, который позволяет детально контролировать, какими блоками может управлять кто? Я бы лучше не писал пользовательский интерфейс ...

Спасибо, Stef

Ответы [ 3 ]

3 голосов
/ 17 сентября 2009

Ну, вы можете создать простой пользовательский модуль, подобный этому (замените my_module на имя вашего пользовательского модуля, очевидно):

    function my_module_perm()
    {
        return array('view special blocks');
    }   



    function my_module_form_alter(&$form, &$form_state, $form_id) {
      if ($form_id == 'block_admin_display_form') {
        if(!user_access('view special blocks')) {
            $special_blocks = array( ); // Specially hidden blocks go here

            foreach($special_blocks as $block) {
                unset($form[$block]);
            }
        }
      }
    }

А потом:

  1. Добавьте блоки, которые вы хотите скрыть, в массив $special_blocks (в основном это идентификатор div блока минус block_)
  2. Создать новую учетную запись и, возможно, новую роль для этого парня
  3. В зависимости от разрешения, роль нового пользователя должна иметь access administration pages и administer blocks, но не должна иметь view special blocks

Протестировано на Drupal 6.6, должно работать на других версиях 6.x (и, возможно, 5.x с несколькими модификациями)

0 голосов
/ 16 сентября 2009

Может быть, дать Blockqueue попробовать? Я никогда не использовал его, но, похоже, он покрывает ваш случай использования.

0 голосов
/ 16 сентября 2009

Извлеките эти блоки из регионов и вставьте их в шаблон вручную, используя module_invoke().

$block = module_invoke('module_name', 'block', 'view', 'block name or ID');

print '<h2>' . $block['subject'] . '</h2>';
print $block['content'];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...