gpt4 book ai didi

php - Drupal 8 - 核心搜索模块,更改标记

转载 作者:行者123 更新时间:2023-12-04 14:29:52 26 4
gpt4 key购买 nike

如何从我的 .theme 文件更改此标记?

\core\modules\search\src\Controller\SearchController.php 中的第 119 行

if (count($results)) {
$build['search_results_title'] = array(
'#markup' => '<h2>' . $this->t('Search results') . '</h2>',
);
}

我想从我的搜索页面中删除“搜索结果”H2。

我可以使用搜索表单上的 _preprocess_form 函数和搜索结果上的 preprocess_search_result 更改上面的搜索表单和 H2 下方的结果列表。

是否缺少预处理功能,或者我可以使用自定义 Twig 模板吗?

最佳答案

您必须更改搜索模块定义的路线。
为此:

  • 在您的 mymodule.services.yml 中定义文件如下:

  • 服务:
    mymodule.route_subscriber:
    类:Drupal\mymodule\Routing\RouteSubscriber
    标签:
    - { 名称:event_subscriber }

  • 创建一个扩展 RouteSubscriberBase 的类/mymodule/src/Routing/RouteSubscriber.php 上的类如下:

  • /**
    * @文件
    * 包含\Drupal\mymodule\Routing\RouteSubscriber。
    */

    命名空间 Drupal\mymodule\Routing;

    使用 Drupal\Core\Routing\RouteSubscriberBase;
    使用 Symfony\Component\Routing\RouteCollection;

    /**
    * 监听动态路由事件。
    */
    类 RouteSubscriber 扩展 RouteSubscriberBase {

    /**
    * {@inheritdoc}
    */
    公共(public)函数alterRoutes(RouteCollection $collection) {
    //替换动态创建的“search.view_node_search”路由的 Controller
    //用我们自己的。
    if ($route = $collection->get('search.view_node_search')) {
    $route->setDefault('_controller', '\Drupal\mymodule\Controller\MyModuleSearchController::view');
    }
    }
    }

  • 最后, Controller 本身位于/mymodule/src/Controller/MyModuleSearchController.php

  • 命名空间 Drupal\mymodule\Controller;

    使用 Drupal\search\SearchPageInterface;
    使用 Symfony\Component\HttpFoundation\Request;
    使用 Drupal\search\Controller\SearchController;

    /**
    * 覆盖路由 Controller 进行搜索。
    */
    类 MyModuleSearchController 扩展了 SearchController {

    /**
    * {@inheritdoc}
    */
    公共(public)功能 View (请求 $request,SearchPageInterface $entity){
    $build = parent::view($request, $entity);
    //取消设置结果标题。
    如果 (isset($build['search_results_title'])) {
    未设置($build['search_results_title']);
    }

    返回 $build;
    }

    }

    关于php - Drupal 8 - 核心搜索模块,更改标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36625840/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com