Создание Access plugin в Views

Главные вкладки

Аватар пользователя strelkov.av strelkov.av 8 сентября 2020 в 14:08

Добрый день, помогите пожалуйста, пытаюсь создать свой access plugin во Views, цель которого проверка доступа к представлению на основе членства пользователя в указаном перечне групп OG модуля

Если подробнее, то на сайте установлен OG модуль, создано множество группы, и пользователи всячески размещены в данных группах. С помощью Views создаются определенные страницы представлений, и доступ к ним нужно разграничиватьна основе членства текущего пользователя в перечне групп указаных в настройках вьюхи

Модуль у меня представляет следующее:

intranet.info

<?php
name 
Intranet
description 
Main module of intranet sites
package 
Intranet
version 
7.x-1.0
core 
7.x
dependencies
[] = views
files
[] = intranet.views.inc
?>

intranet.module


<?php

function intranet_views_api() {
   return array(
      
'api' => 3,
   );
}

function 

intranet_og($account NULL) {
  global 
$user;
  
$gids explode(","$group_ids);
  foreach (
$gids as $gid) {
    if (
og_is_member('node'$gid'user'$user->uid)) {
      return 
TRUE;
    }
  }
}
?>

intranet.views.inc


<?php

function intranet_views_plugins() {
  
$plugins = array(
    
'access' => array(
      
'test' => array(
        
'title' => t('OG membership'),
        
'help' => t('Check access by user memberships of Organic group nodes.'),
        
'handler' => 'intranet_og_access_plugin',
      ),
    ),
  );
  return 
$plugins;
}

class 

intranet_og_access_plugin extends views_plugin_access {

  function 

summary_title() {
    return 
t('Intranet OG access plugin');
  }

  function 

access($account) {
    return 
intranet_og($account);
  }

  function 

get_access_callback() {
    return array(
'intranet_og', array());
  }

}

?>

Вопрос в том, как можно сделать так, чтобы в настройках доступа у вьюхи появилось ещё текстовое поле, в котором я бы мог перечислить через запятую NID-ы, которые в свою очередь бы поместились в переменную $group_ids и участвовали далее в коде плагина

p.s. почему то синтаксис бажит, перенос строк после function местами

Комментарии