2016-04-14 5 views
2

Wie ändere ich dieses Markup aus meiner .theme-Datei?Drupal 8 - Kernsuchmodul, Änderungsmarkierung

Linie 119 in \ core \ Module \ Suche \ src \ Controllers \ SearchController.php

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

Ich möchte die "Suchergebnisse" H2 von meiner Suchseite entfernen.

Das Suchformular oben und die Ergebnisliste unter H2 können mit der Funktion _preprocess_form im Suchformular und preprocess_search_result in den Suchresluts geändert werden.

Gibt es eine Vorverarbeitungsfunktion fehlt oder kann ich eine benutzerdefinierte Zweigvorlage verwenden?

{%- if title is not empty -%} 
    <h3>{{ title }}</h3> 
    {%- endif -%} 

einfach, dass h3 entfernen: search-results.html.twig und den Titel ersetzen, hier -

Antwort

-1

Sie können Artikel-Liste außer Kraft setzen.

+0

Sie sind über eine andere Vorlage zu sprechen. Der Thread-Starter möchte tatsächlich wissen, wie er die Ausgabe des Suchseiten-Controllers manipuliert. Da das Render-Array mit dem Schlüssel 'search_results_title' ein einfaches Markup ist und keinen Theme- oder Type-Key hat, muss man die Controller-Ausgabe direkt manipulieren. –

0

Sie müssen die vom Suchmodul definierte Route ändern. Um dies zu tun:

  1. in Ihrer mymodule.services.yml Datei definieren folgende:
 

    services: 
     mymodule.route_subscriber: 
     class: Drupal\mymodule\Routing\RouteSubscriber 
     tags: 
     - { name: event_subscriber } 

  1. Erstellen Sie eine Klasse, die die RouteSubscriberBase Klasse auf/mymodule erstreckt/src/Routing/RouteSubscriber.php, wie folgend:
 

    /** 
    * @file 
    * Contains \Drupal\mymodule\Routing\RouteSubscriber. 
    */ 

    namespace Drupal\mymodule\Routing; 

    use Drupal\Core\Routing\RouteSubscriberBase; 
    use Symfony\Component\Routing\RouteCollection; 

    /** 
    * Listens to the dynamic route events. 
    */ 
    class RouteSubscriber extends RouteSubscriberBase { 

     /** 
     * {@inheritdoc} 
     */ 
     public function alterRoutes(RouteCollection $collection) { 
     // Replace dynamically created "search.view_node_search" route's Controller 
     // with our own. 
     if ($route = $collection->get('search.view_node_search')) { 
      $route->setDefault('_controller', '\Drupal\mymodule\Controller\MyModuleSearchController::view'); 
     } 
     } 
    } 

  1. Schließlich ist die Steuerung selbst befindet sich auf /mymodule/src/Controller/MyModuleSearchController.php
 

    namespace Drupal\mymodule\Controller; 

    use Drupal\search\SearchPageInterface; 
    use Symfony\Component\HttpFoundation\Request; 
    use Drupal\search\Controller\SearchController; 

    /** 
    * Override the Route controller for search. 
    */ 
    class MyModuleSearchController extends SearchController { 

     /** 
     * {@inheritdoc} 
     */ 
     public function view(Request $request, SearchPageInterface $entity) { 
     $build = parent::view($request, $entity); 
     // Unset the Result title. 
     if (isset($build['search_results_title'])) { 
      unset($build['search_results_title']); 
     } 

     return $build; 
     } 

    }