0

I'm new to Drupal and don't really know what to look for.

I need to achieve behavior like this:

  • I create content of type X
  • Content of X may and will contain user names of my portal in it
  • User U logs to my portal and lists all of X (using a view)
  • I want to filter all X to only these, on which U is mentioned.

I don't want to use groups for this, because there will be like 100s of users and using groups and permissions will be really annoying.

EDIT Available context filters: enter image description here

4

2 回答 2

2

请按照以下步骤操作:

  1. 在您的视图设置页面中,在“高级”部分下,单击以添加新的“上下文参数”。

  2. 从字段列表中,选择内容类型 X 中包含“用户名”的字段。

  3. 从“当过滤器值不可用”部分中,选择“提供默认值”,对于类型,选择“来自登录用户的用户 ID”。

这就是全部。

于 2013-06-03T06:52:01.713 回答
0

我以非常讨厌和丑陋的方式修复了它。我已将node.tpl.php主题更改为<article>有条件地渲染部分:

<?php 
    $renderContent = TRUE;
    $fieldname = 'field_fulltext_user_search';
    if (property_exists($node, $fieldname) && array_key_exists($node->language, $node->{$fieldname})) {
        $fieldValue = $node->{$fieldname}[$node->language][0]['value'];
        if (isset($fieldValue) && $fieldValue) {
            // check if content contains current user's name
            $safeBody = $body[0]['safe_value'];
            $theUser = $user->name;
            $renderContent = strpos($safeBody, $theUser)!==false;
        }
    }

    if ($renderContent):
?>

所以现在,当一个节点有field_fulltext_user_search字段并且它的值是true然后节点内容搜索当前用户名。如果它不存在,则不渲染节点。

这项任务可能有更好的解决方案,但这对我来说很好。如果你能想到更好的,请告诉我。

于 2013-06-05T08:24:15.657 回答