【问题标题】:Drupal- create new block content everytime new content createdDrupal - 每次创建新内容时创建新的块内容
【发布时间】:2013-12-02 16:40:11
【问题描述】:

我可能要求很多,但任何帮助都会很棒!我想做的就是每次 Drupal 中的用户(不是管理员)创建像博客这样的内容时,某些区域中的 predefined 块将允许用户添加新内容(广告/横幅)。这可能吗?

我看过节点级块,但我不太清楚如何使用它?这行得通吗?怎么样?

这是我上面所问的一个例子。假设用户有权创建博客。他们将向博客添加内容,以及将新内容添加到 predefined 块的选项,例如名为 RightSideBarBlock 的右侧栏块。每个块的此内容将仅对从博客内容类型创建的新节点可见。如果他们不向预定义的块添加内容,则该块将不会显示该节点的任何内容。

这有意义吗?

【问题讨论】:

  • 您是在寻找有关如何处理为块创建相关内容的建议,还是只是在显示相关内容块?
  • 如何创建允许在每次创建新内容(如新博客)时将新内容放入其中的块。基本上用户(非管理员)可以在块中创建新内容,但是块位于页面上的位置,请勿更改(除非管理员更改),并且只有在创建/编辑博客等内容时才能编辑块中的内容. Nodeblock 可能工作,但我不明白如何使用它来做我想做的事情。
  • 也许盒子可以工作? drupal.org/documentation/modules/boxes意见?

标签: drupal block blogs


【解决方案1】:

您的请求的显示部分相当简单。您不必为每个博客条目创建新块,您可以使用视图模块为每个条目显示相关广告。

开始之前,请确保您已安装 views moduleentity reference 模块。

首先您需要一种新的内容类型,称为博客广告。它将需要一个名为 Owner 的字段,该字段将是一个指向父博客条目的实体引用字段。

接下来,创建一个新视图并确保您选择创建一个块变体并将要显示的条目数设置为 1。将过滤条件设置为 Content Type = Blog Ad。向视图添加上下文过滤器。从选项列表中选择内容:所有者(这将允许您按拥有节点 ID 过滤博客广告条目)。由于块视图不能直接接受参数,因此您必须选择提供默认值的选项。从选项列表中选择来自 URL 的内容 ID。保存您的视图并转到“块”页面。

您现在将在您的“块”页面中有一个名为“视图”的块:。将该块添加到适当的区域,并在设置下,将其过滤为仅在内容类型为博客时显示。

现在您可以创建一个博客条目,保存它,创建一个博客广告条目,在所有者字段中选择刚刚创建的博客条目,然后查看该博客条目。您将在区块中看到您的博客广告。创建一个新的博客条目,当您查看它时,您不会在博客广告块中看到任何内容。

可以使用Node Reference CreateInline Entity Form 之类的模块来允许从博客创建页面创建相关的博客广告。我没有亲自使用过这些模块,所以我不能保证它们的质量或易用性,但它们会做你想做的。

【讨论】:

  • 我明白了。但是,如果我只想让创建基本页面等内容类型的用户可以编辑该块。示例 UserX 创建 BlogY 并可以编辑 blockz,但 UserW 可以看到 BlogY 但只能查看 blockz。我将如何使用视图?
  • 还有你说我可以创建博客广告条目的地方,我不希望只是管理员为他们创建的博客内容创建博客广告。
  • 这是一个权限问题。为用户授予博客和博客广告内容类型的创建新内容和编辑自己的内容权限。这是多用户博客的标准。
  • 抱歉 - 错过了您的第二点。该指令只是关于创建一些内容以查看最终结果,而不是关于未来管理内容的声明。
猜你喜欢
  • 2011-07-08
  • 2012-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-24
  • 2013-06-18
  • 2012-09-07
  • 2015-12-15
相关资源
最近更新 更多