【问题标题】:passing cck field as an argument in views在视图中将 cck 字段作为参数传递
【发布时间】:2011-04-19 09:00:42
【问题描述】:

我有一个名为 event 的内容类型,它有一个名为 event id 的 cck 字段。这个想法是,一旦用户访问具有该 id 的 url,则仅显示与该事件 id 相关的信息。在我看来,我尝试创建一个块视图并将事件 ID 作为参数传递,一旦我这样做,以前显示在实时预览中的结果就会消失。不太确定我做错了什么,或者如果我应该是块视图。这应该是页面视图吗?请帮忙。

【问题讨论】:

    标签: drupal drupal-6 drupal-views content-type cck


    【解决方案1】:

    我认为您应该创建页面视图而不是块视图。你必须通过一个论点。 Event ID 是否等于 NodeID?如果是,那么您应该添加类型为 Node:NID 的参数,然后将“提供默认参数”设置为等于“来自 URL 的节点 ID”。

    如果 EventId 不是 NID,那么你应该将 Default Argument 设置为 PHP 并给出以下 PHP:

    $path = drupal_get_path_alias($_GET["q"]); //get the URL alias
    $path = explode("/", $path); //break path into an array
    if ($path[0] == "events" && $path[1] != "")
    {
      return $path[1];
    }
    

    以上代码将从 URL 中获取参数(URL 应类似于 www.example.com/events/14555

    我使用 drupal_get_path_alias 的原因是您可能启用了 pathauto 模块。如果没有,您可以提供以下 php

    if (arg(0) == ‘events’ && arg(1) != ”) return arg(1);
    

    【讨论】:

    • 感谢您的出色解释。不过,在发布此内容之前,我确实在上面指定的页面视图上添加了 Node:NID 作为参数,但我始终没有运行任何查询。现在我尝试了另一个实际上是我想要的选项,即使用不等于 nid 的事件 id。但是没有运气,因为我得到了相同的“没有运行查询”
    • 您是否在实时预览中选择了正确的显示?您是否在实时预览中提供测试参数?尝试保存视图并将其作为页面访问。
    • 我已经设法让它工作了,但我想知道是否可以再问你一个与此相关的问题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多