Скройте меню других доменов от формы редактирования узла на доступе домена использования сайта Drupal

Я нахожусь в процессе создания некоторых улучшений живого сайта Drupal, это использует Доменный модуль Доступа для выполнения многих микросайтов. Я пытаюсь найти способ ограничить меню, на которые пользователь может отправить содержание с экрана редактирования узла. Пользователь на одном из доменов должен только смочь отправить содержание на меню, связанные с тем доменом.

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

1
задан drmonkeyninja 14 June 2010 в 09:55
поделиться

2 ответа

В конце концов нашел способ исправить это для конкретного проекта, над которым я работал: в module_form_alter я добавил следующее: -

global $_domain;
if (isset($_domain['domain_id'])) { // only display domain's primary links
  $menus[domain_conf_variable_get($_domain['domain_id']
    ,'menu_primary_links_source')] = $_domain['sitename'].' Primary links';
}
if ( isset($menus) ) {
  $options = menu_parent_options($menus, $form['menu']['#item']);
  $form['menu']['parent']['#options'] = $options;
}

Это ограничивает параметры меню только основным меню ссылок текущего домена, что и есть мы хотели.

Спасибо Фабиану , который указал мне правильное направление ранее .

0
ответ дан 2 September 2019 в 23:46
поделиться

Согласно readme для модуля, вам необходимо установить некоторые специальные разрешения в управлении пользователями:

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

Из моего опыта работы с модулем много лун назад, вы можете проверить глобальный объект $user и выяснить, к каким доменам пользователь должен иметь доступ. Затем вы можете использовать изменение формы, чтобы удалить все опции из поля выбора, которые вы не хотите, чтобы они видели. Как всегда в Drupal, лучше позволить кому-то другому писать код - так что если модуль Domain предоставляет такую функциональность, используйте его!

1
ответ дан 2 September 2019 в 23:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: