Ich habe eine Ansicht auf meiner Site, die einen bestimmten Klassennamen hat. Ich möchte wissen, wie ich in der template.php-Datei eines Themas feststellen kann, ob auf der angeforderten Seite eine Ansicht mit einem bestimmten Klassennamen verfügbar ist.
Dies ist sehr wichtig für mich, da ich spezifisches JavaScript und CSS einbinden muss, wenn eine Ansicht mit einem spezifischen Klassennamen (wie z. B. eine Bildergalerie) in einer Seite verwendet wird.
views
theming
javascript
Mehrdad201
quelle
quelle
if($view->name == 'your-view-name' && $view->display_id == 'your-display-id')
Mit der Funktion views_get_page_view können Sie herausfinden, welche Ansicht auf der Seite bereitgestellt wird. Es gibt das Objekt views zurück. Beachten Sie, dass Sie im folgenden Code-Snippet den maschinenlesbaren Namen von Ansichten vergleichen sollten. Sie können jedoch auch einen eigenen Vergleich auf der Grundlage des von views_get_page_view zurückgegebenen Ansichtsobjekts erstellen
quelle
Nur für den Fall, dass dies für andere nützlich ist, die über diese Frage stolpern und wie ich nach JavaScript für eine Drupal-Ansicht suchen . In Bezug auf D7 & Views 3.7 hat Folgendes für mich am besten funktioniert:
Dies war von Vorteil, da ich den Code in meinem Modul behalten wollte und nicht das Thema - da die durch JavaScript vorgenommenen Verbesserungen nichts mit dem visuellen Erscheinungsbild zu tun hatten.
quelle
HOOK_views_pre_process
( api.drupal.org/api/views/views.api.php/7 ) es sei denn , Sie sind also den Grund , warum diese über verwendenTHEME_preprocess_views_view
- in diesem Fall ist es nur aus der Präferenz von wo Sie möchten Ihre Code-Änderungen hinzufügen.HOOK_views_pre_render
kann von einem Modul aus eingebunden werden,THEME_preprocess_views_view
sollte aber in Ihre Theme- / Template-Datei passen. Sie könnten auch verwenden,HOOK_views_post_render
wenn Sie es vorziehen.THEME_preprocess_views_view
, ja ... ich bin sicher, ich habe das schonhook_preprocess_views_view
in Modulen gemacht.Wenn Sie mit Drupal 6 oder 7 arbeiten, können Sie auch Javascript-Assets in den Modulkontext einbeziehen und Assets hinzufügen. Was Kontext erfordert, aber Sie können sicher sein, dass er immer enthalten ist, wenn die Ansicht gerendert wird.
https://drupal.org/project/context_addassets
Auf der Projektseite des Moduls:
quelle
Schreiben Sie mithilfe von hasClass () von jQuery JavaScript-Code, der in der Ansicht nach einer bestimmten Klasse sucht , und fügen Sie Ihre JavaScript-Datei hinzu, wenn die Bedingung erfüllt ist.
Eine andere Möglichkeit besteht darin, eine Vorlage für Ihre Ansicht zu erstellen und mithilfe von drupal_add_js () JavaScript-Code über diese Vorlage hinzuzufügen .
quelle