【问题标题】:Drupal: display views page instead of default node/%Drupal:显示视图页面而不是默认节点/%
【发布时间】:2014-12-06 17:44:59
【问题描述】:

案例是我使用视图来显示每种内容类型。

例如。 q=?news/12 用于 nid 的新闻 q=?pro​​duct/13 用于 nid 的产品

问题是当我创建(或编辑)新内容时,它会自动显示(或引用)?node/14 而不是?product/14。在 node/14 链接下也创建了菜单链接。

如何将每个视图设置为引用内容类型?

提前致谢。

【问题讨论】:

    标签: drupal drupal-7 drupal-views drupal-theming


    【解决方案1】:

    您可以为每种内容类型创建一个视图(显示模式:页面),该视图显示来自您的节点(字段或您需要的任何内容)的数据。为此,请在您的视图中添加一个上下文过滤器,在内容 nid 上,提供默认值:来自 url 的内容 nid。然后给这个视图一个像“/news/%”这样的url。所以“/news/12”会点击这个视图并从 id 为 12 的新闻内容类型中获取数据。然后您可以手动修改菜单链接,或使用 pathauto 指定 /news/[node:nid] 作为所有新闻节点的模式(我从未尝试过所有这些东西,但它应该可以工作)。

    其他解决方案:https://www.drupal.org/project/contemplate(似乎已弃用...)

    其他解决方案:为您的内容类型节点创建一个 .tpl:node--news.tpl.php,但没有更多视图...

    其他解决方案:创建一个显示一个特定节点数据的视图(就像我首先使用上下文过滤器解释的那样),该视图创建一个块(显示模式:块),您将此块分配给一个区域(带有块接口),并将此块设置为仅针对新闻内容类型显示(块配置页面左侧的最后一个菜单)。然后使用 Display Suite,您可以在完整内容显示上隐藏此内容类型的所有内容。因此,在每个引用“新闻”节点的节点页面上,您的页面中除了您的块(以及节点标题,我猜您可以使用显示套件附加功能将其删除)之外什么都没有。

    祝你好运

    【讨论】:

    • 尝试了最后一个解决方案。奇迹般有效!谢谢!
    • 嗯,我尝试了一个 contentType,其中 url 是 /node/%。但它不适用于多种类型。所以我将视图的路径设置为 /node/%/products 或视图。我尝试了最后一个解决方案,但没有奏效。我将 Exposed 表单设置为阻止,并将该块分配给块接口中的一个区域。但似乎它没有显示任何分配的块。
    • 您也可以尝试 Display Suite extras 中的“block region”选项,它允许您在显示套件中定义一个字段包装器,它将呈现为一个块,在块界面中可用:@ 987654322@。我最近使用它,它非常有用(而且简单)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-05
    • 1970-01-01
    相关资源
    最近更新 更多