[gelöst] Back-Link mit myTheme_preprocess_views_view und myTheme_preprocess_node
am 05.02.2014 - 23:29 Uhr in
Ich habe eine View mit Facetten zum Filtern der angezeigten Nodes. Die View wird mit verlinktem Titel zu dem jeweiligen Node dargestellt.
Sobald ich über den verlinkten Titel den Node aufrufe, möche ich einen Zurück-Link zu meiner View.
Da die URL der View durch betätigen der Filter erweitert wird, bringt mir der Breadcrumb nichts.
Ebenso möchte ich keinen Zurück-Link via Javascript einbinden, da ich kontrollieren möchte, wann bzw. ob dieser Zurück-Link angezeigt wird.
Mein bisheriger Ansatz in der template.php:
Ich lasse mir nur bei Aufruf dieser speziellen View (myView) die Url auslesen und speichere diese in einer neu deklarierten Variablen.
function myTheme_preprocess_views_view(&$variables) {
if ($variables['view']->name == 'myView') {
$variables['path_view_with_filter'] = check_plain(request_uri());
}
}
In der views-view-myView.tpl.php wird mir durch Aufruf der Variablen $path_view_with_filter auch das richtige Ergebnis angezeigt.
Beispiel: /pflanzen?f[0]=field_pflanzen_verwendung%3A3&f[1]=field_pflanzen_standort%3A33
Jetzt wähle ich einen der angezeigten Nodes und möchte bei Vollansicht dieses Nodes einen Zurück-Link zu der View anzeigen lassen.
function myTheme_preprocess_node(&$variables) {
global $base_url, $path_view_with_filter;
if ($variables['type'] == 'myContentType' && node_is_page($variables['node'])) {
$back_to_view_url = $base_url . $path_view_with_filter;
$options = array(
'attributes' => array(
'class' => array('go-back'),
),
);
$variables['link_to_filtered_view'] = l(t('Back to filtered View'), $back_to_view_url, $options);
}
}
In der node--myContentType.tpl.php wird mir durch Aufruf der Variablen $link_to_filtered_view auch der Link angezeigt.
Allerdings ist $path_view_with_filter ohne Wert (obwohl als global deklariert), denn als Ziel des Links ist jetzt nur die Domain ($base_url) enthalten.
Denke, ich sehe gerade vor lauter Bäumen den Wald nicht mehr und bin für jegliche Hilfe dankbar.
Gruß und vielen Dank im Voraus.
- Anmelden oder Registrieren um Kommentare zu schreiben
Tunnelblick?
am 05.02.2014 - 23:32 Uhr
Ist Dir am Editor der Code-Button aufgefallen oder ist Dein Tunnelblick so eng das Du nur das erkennst was Du gerade schreibst?
PS
Ist nicht bös gemeint.
Da geht noch was.
Tunnelblick !!
am 05.02.2014 - 23:36 Uhr
Tja, wie gesagt... zuviele Bäume !! Danke
dsm()
am 05.02.2014 - 23:45 Uhr
Aktiviere das Devel Modul und lass Dir $variables anzeigen. Ev. ist etwas verwendbares bereits vorhanden.
<?php
function myTheme_preprocess_node(&$variables) {
dsm($variables); // <<-- Devel im Einsatz
global $base_url, $path_view_with_filter;
}
?>
Und, wieso ist $path_view_with_filter global?
Da geht noch was.