我有一个D7网站,用户可以在其中制作内容(显然......)。所以每个节点都有自己的作者。每个作者都是组织的成员。但他可以成为一个以上组织的成员。到目前为止的事实。
我想创建一个在Author上过滤内容的视图。非常简单,在“内容的作者”上设置视图的关系,并选择当前用户作为过滤器。
但我想要的是过滤作者的组织。所以实际上它是一个嵌套的关系。过滤当前登录用户的节点(这很简单),但如何过滤当前登录用户的组织?
答案 0 :(得分:0)
好的,面板没有用,所以我写了自己的钩子: - )
function mymodule_views_pre_view (&$view, &$display_id, &$args) {
// Only execute this script when the view 'fiches_my_thema' is called
if ('fiches_my_thema' == $view->name) {
// Get users thema
global $user;
$userRoles = $user->roles;
$user_themas = array();
// Filter roles so you end up with the "Thema's".
foreach ($userRoles as $key) {
if(strpos($key,'edacteur')) {
$key = str_replace('Redacteur - ','', $key);
$key = str_replace('Eindredacteur - ','', $key);
$user_themas[] = $key;
}
}
// Resolve tid
$terms = taxonomy_get_tree(5);
$allRoles = array();
$arguments = array();
// Assign the 'tid' to a variable
foreach ($terms as $key) {
$singleRoles = $key->name;
$allRoles[] = $singleRoles;
if(in_array($singleRoles, $user_themas)) {
$arguments[] = $key->tid;
}
}
// Only when the arguments are NOT empty, set the arguments
if(!empty($arguments)) {
$finalArguments = implode("+", $arguments);
$args[] = "$finalArguments";
$view->set_arguments($args);
}
}
}