it-swarm.com.de

Ändern Sie den Seitentitel der Ansicht und legen Sie den benutzerdefinierten Titel fest

Ich verwende Ansichten und drupal 7. Ich übergebe Argumente in der URL und möchte dies als Titel der Ansichtsseite. Dies ist möglich, indem das Kontrollkästchen Titel überschreiben verwendet wird. Ich möchte diesen Titel jedoch ändern dh einige Formatierungen und einige Kürzungen des Inhalts vornehmen und nur das zeigen, was ich als Titel benötige. Wie kann ich das tun?.

7
Hacker

Wenn ich mich nicht irre, können Sie das nicht über die Benutzeroberfläche tun. Sie können jedoch einen Hook in einem benutzerdefinierten Modul implementieren, die verfügbaren Variablen übernehmen, Ihre eigene Logik anwenden und den gewünschten Titel festlegen.

Ein Beispiel finden Sie unter Seitentitel für die Ansicht in Drupal festlegen .

function HOOK_views_pre_render(&$view) {
  if ($view->name == 'taxonomy_term' && $view->current_display == 'page') {
    drupal_set_title('Your Page Title');
  }
}
7
marcvangend

Ich habe eine gefunden, die funktioniert

function MYMODULE_views_pre_render(&$view) {
  if ($view->name == 'menu') {
    $view->build_info['title'] = "TEST TITLE";
  }
}
13
giorgio79

Ich hatte eine ähnliche Frage in einem etwas anderen Kontext: Wann und wo erhalten Panels den Titel aus einer Ansicht?

Meine Lösung war

function foo_views_pre_view (&$view, &$display_id, &$args)
{
  $view->display[$view->current_display]->display_options["title"] =
  $view->display[$view->current_display]->handler->options["title"] = "Foo";
}
8
mpdonadio

Sie können $view->set_title() verwenden.

function mymodule_preprocess_views_view(&$variables) {
  $view = $variables['view'];
  if ($view->name == 'machine_name' && $view->current_display == 'display_machine_name') {
    $view->set_title('New Display Title');
  }
}
5
eric.chenchao

Anstatt ein separates Modul zu verwenden, habe ich dem von mir verwendeten Thema den folgenden Code hinzugefügt.

/**
 * THEME_PREPROCESS_VIEWS_VIEW
 * @param type $vars
 * 
 */
function MYTHEME_preprocess_views_view(&$vars) {
  // view block 
  if ($vars['view']->name == 'viewName') {
      //update your title
      $vars['view']->build_info['title'] = '---Title---';
    }
}

Ersetzen Sie MYTHEM durch den Computernamen des von Ihnen verwendeten Themas. Fügen Sie den Code hinzu, den ich in der Datei template.php des Themas gezeigt habe.

2
allabakash.g

Sie können hook_views_pre_render() in einem Modul implementieren.

/**
 * Implements hook_views_pre_render
 */
function MYMODULE_views_pre_render(&$view) {
  switch ($view->name) {
    case 'VIEW_NAME':
      // Your code here         
      break;
  } 
}
1
JurgenR

Ich habe das gleiche Problem. Das Folgende ist der einzige Code, der für mich funktioniert hat.

function MYMODULE_NAME_preprocess_views_view(&$vars) {
  // If it is the view you want to change
  if ($vars['view']->name == 'MYMODULE_NAME') {
    // Override view's title, drupal_set_title() was not working
    $vars['view']->build_info['title'] = 'MY CUSTOM TITLE';
  }
}
1
purab

Ich gehe davon aus, dass Sie ein Modul "mymodule" erstellt und dann die Implementierung hook_views_pre_build() verwendet haben.

Ich bin nicht sicher, ob Sie den Titel der Ansicht in diesem Schritt ändern können, aber es gibt möglicherweise andere Möglichkeiten.

Wenn Sie versuchen, den Seitentitel (der derzeit von der Ansichtsseite generiert wird) zu ändern, können Sie zunächst versuchen, drupal_set_title('My new title'); hinzuzufügen.

function mymodule_views_pre_build(&$view) {
  if ($view->name == 'view_machine_name') {
    drupal_set_title('New title');
  }
}

Dies ändert den Ansichtstitel nicht wirklich, kann jedoch dazu beitragen, den Seitentitel zu überschreiben. Wenn es nicht funktioniert, bedeutet dies, dass Views den Seitentitel nach Ihrem Hook ausgibt und Sie einen anderen Hook finden müssen.

Eine andere Lösung könnte darin bestehen, die Views-Argumente als Titel zu verwenden. In Views ist diese Funktion integriert. In den Argumenteinstellungen gibt es dafür ein Feld. Sie können das erste Argument in der Standardansicht für die Taxonomie überprüfen, die von Ansichten bereitgestellt wird. Dies ist ein gutes Beispiel.

0