【问题标题】:Drupal 8 fetch content and serve without header/footerDrupal 8 获取内容并在没有页眉/页脚的情况下提供服务
【发布时间】:2016-10-27 17:29:54
【问题描述】:

我正在开发一个 Drupal 8 站点,其中有一个自定义模块/块,可以从另一台服务器获取内容并将其注入 div。 当用户从注入的内容中单击链接(如阅读更多内容)时,我需要在没有模板页眉和页脚的情况下提供内容(完整的 html 页面)(从服务器获取)。

我的问题是如何在没有模板页眉和页脚的情况下提供页面?

谢谢。

【问题讨论】:

  • 您是在模式还是在单独的页面上打开内容?如果它是一个单独的页面,您是否可以让模块将内容拉入具有特定于注入内容的内容类型的页面上。然后你可以为每个内容类型的页面模板编写一个钩子并删除页眉/页脚。
  • 这是一个单独的页面。你能给我一些关于内容类型和钩子的方向吗?谢谢
  • drupal.org/node/2521876 应该能够在那里复制代码并更改为您的主题。
    所以基本上,创建一个只用于这个内容的内容类型。将您的块设置为仅显示在此类页面的内容区域中。然后添加删除页眉/页脚的页面模板并清除缓存。

标签: templates twig fetch drupal-8


【解决方案1】:

您可以创建一个自定义页面,然后在 admin/structure/block 中删除该 url 的页眉和页脚中的块。

或者您制作自定义页面模板,然后删除页眉和页脚的打印。

文件名: 节点--[内容类型].html.twig 例如:节点--article.html.twig node--[content-type]--[display-format].html.twig,例如:node--article--full.html.twig

https://www.drupal.org/node/2282025

希望我对您有所帮助,如果您需要更多详细信息,请询问。

【讨论】:

    【解决方案2】:

    这是一个老问题,但它正在搜索中出现,我想发布一个解决方案。如果您只想提供一些自定义 HTML,请包含 Symfony HTML 响应类并调用返回一个 Response 对象。这将仅输出您提供的 HTML。

    use Symfony\Component\HttpFoundation\Response;
    
    Class YourController extends ControllerBase {
      public function pageFunction() {
        return new Response('<html><div>test</div></html>');
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2022-01-15
      • 1970-01-01
      • 2011-02-26
      • 1970-01-01
      • 1970-01-01
      • 2013-04-14
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多