【问题标题】:Drupal 8 form and view in blockDrupal 8 表单和块中的视图
【发布时间】:2016-08-04 20:02:37
【问题描述】:

我是一个非常新的 Drupal,在一个块中我想要一个带有选择框和提交按钮的表单。链接中的每个选项都是内容页面的链接。也就是说,当用户选择一个选项并单击提交按钮时,它将重定向到其他节点页面。

对于上述需求,客户使用了 Drupal 7 的 Web 表单,我想克隆 Drupal 8 的需求。我尝试了 EForm,我能够创建一个表单,但我无法在块布局中显示该表单,并且查看。

我不确定 Eform 模块是否适合我的要求。 你们能帮我在 Drupal 8 中为上述要求安装哪些模块。

【问题讨论】:

  • 我不明白。你能用一个例子来解释你需要它吗?因为对我来说,使用表单链接到另一个页面听起来没有必要复杂。
  • 我的要求很简单,有一个带有选择框和按钮的表单。选择框将具有作为内容页面链接的值,用户选择一个选项并单击按钮,然后加载页面。例如,在一个国家下拉列表中,我有亚洲、澳大利亚、欧洲等选项列表。如果用户选择一个国家,那么它将加载适当的国家页面。必须从管理面板管理选项值(添加国家或编辑国家)。选择框中的每个国家页面都是简单的内容页面。

标签: forms view block drupal-8


【解决方案1】:

好的,我不知道是否有任何模块可以完全满足您的需求,但您可以构建自己的自定义解决方案。在我看来主要有两种可能:

  • 创建一个带有 HTML 正文字段的自定义块类型,将你的 HTML 放在那里,你就完成了。 优点:容易做到,缺点:硬编码

  • 干净的方式:创建一个新的节点类型和/或一个新的类别,您将用于您的国家节点。然后,您将以编程方式创建一个块并查询该特定国家类型的所有节点或具有“国家页面”类别的节点,无论您使用什么来组织这些节点。然后,您只需使用该数据创建一个表单并呈现它。 优势:动态,无论何时添加或删除该类型/类别的新节点,选择列表都会自行更新。 缺点:初期费力

我个人建议使用选项 2。选项 1 更适合非常简单和“愚蠢”的要求,例如在您网站的多个位置显示一些硬编码的文本/图像,或者如果它是临时的,比如一些活动预告片,这将是1 周内结束,然后你会扔掉它。

编辑:

实体查询:https://api.drupal.org/api/drupal/core!lib!Drupal.php/function/Drupal%3A%3AentityQuery/8

如何在 Drupal 8 中构建表单: https://www.drupal.org/node/2117411

【讨论】:

  • 好的。谢谢。如果您推荐任何在 Drupal 8 中创建表单和查询的教程,将会更有帮助。:)
  • 我添加了两个链接,应该对您有所帮助。第一个向您展示如何查询实体(例如节点),第二个向您展示如何在 Drupal 8 中构建表单。试试吧,您应该能够构建它:)
  • 不错的教程,在提交表单时我想将页面重定向到内容类型的节点页面,我尝试了 $form_state->setRedirectUrl('node/1');但它不工作。我没有节点页面 url 的路由配置,所以我不确定如何在表单模块中将页面重定向到节点页面。请帮帮我。
  • 它正在使用这篇文章 - api.drupal.org/api/drupal/…
【解决方案2】:

为了在模板中只显示你的块,最好的方法是:

$block = \Drupal\block\Entity\Block::load('my_block_id');
$variables['My_region'] = \Drupal::entityManager()
      ->getViewBuilder('block')
      ->view($block);

在您的 page.html.twig 或 node.html.twig 或 xxx.html.twig 中使用您的变量 My_region ,如下所示:

{% if page.My_region %}
{{ page.My_region }}
{% endif %}

详情查看:

https://drupal.stackexchange.com/questions/171686/how-can-i-programmatically-display-a-block

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-23
    • 2023-03-12
    • 2017-12-03
    • 1970-01-01
    • 1970-01-01
    • 2018-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多