Javascript bei bestimmter View verwenden
Eingetragen von PaulchenPlump (55)
am 25.08.2009 - 21:12 Uhr in
am 25.08.2009 - 21:12 Uhr in
Hallo,
ich möchte die Auflistung eines bestehenden Inhaltstyp mit Javascript aufpimpen. Leider wird dieser mit Views2 dargestellt. Jetzt kann ich mittels einer views-view-fields--VIEWNAME.tpl.php die gesamte View themen. Ich will allerdings nur die JS-Funktion hinzufügen - da scheint mir der Aufwand recht groß zu sein. Gibt es eine bessere Methode? Wie binde ich das drupal_add_js nur innerhalb einer bestimmten View ein?
Danke für die Tipps - PaulchenPlump
- Anmelden oder Registrieren um Kommentare zu schreiben
Meinst du jetzt wie du dein
am 26.08.2009 - 07:16 Uhr
Meinst du jetzt wie du dein JS aufrufen kannst? Oder wie du die JS-Funktion zur Verfügung stellen musst?
-----------
Luca Curella
Kooperative Netze - Berlin
js hinzufügen
am 26.08.2009 - 07:20 Uhr
Wie binde ich das drupal_add_js nur innerhalb einer bestimmten View ein?
Entweder über das spezielle Template des Views oder (sofern es ein Page-View ist) über die Funktion template_preprocess_page() Deines Themes.
Dort fragst Du den aktuellen Pfad ab und rufst dann bei der gewünschten Übereinstimmung
drupal_add_js()
auf.hth,
Stefan
--
sei nett zu Deinem Themer
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Wenn ich die JS-Funktion
am 26.08.2009 - 11:03 Uhr
Wenn ich die JS-Funktion direkt in die views-view-fields--VIEWNAME.tpl.php schreibe erscheint der JS-Code auch mehrfach...
Aber das Template wollte ich ja auch unverändert lassen.
Habe es jetzt über die template_preprocess_page gemacht.
Die Funktion sieht im Moment so aus:
function fue_preprocess_page(&$variables) {
if ($variables['template_files'][0]=='page-VIEWNAME') {
drupal_add_js(
'$(document).ready(function() {
alert("ERFOLGREICH");
});',
'inline'
);
$variables['scripts'] = drupal_get_js();
}
}
Das ich die Variable scripts überschreiben muss, scheint ja richtig zu sein. Was mich jetzt noch interessiert ist, wie ich an den korrekten Pfad herankomme - so wie es jetzt läuft scheint es mir nicht korrekt?!
Und noch eine Frage - wie kann ich die Elemente abhängig vom Kontext ausblenden? Also $("p").hide(); blendet ja alle aus - ich will aber nur das p ausblenden auf dessen zugehörigen Link ich klicke... Ist das verständlich?!
Danke & Ciao, PaulchenPlump
template
am 26.08.2009 - 11:42 Uhr
Wenn ich die JS-Funktion direkt in die views-view-fields--VIEWNAME.tpl.php schreibe erscheint der JS-Code auch mehrfach...
Dann schreib es in die views-view--VIEWNAME.tpl.php.
Was mich jetzt noch interessiert ist, wie ich an den korrekten Pfad herankomme
Welchen Pfad? Die URL?
<?php $path = implode('/', arg()); ?>
oder
<?php $path = $_GET['q']; ?>
...ich will aber nur das p ausblenden auf dessen zugehörigen Link ich klicke...
Das hängt davon ab, wie Du "zugehörig" definierst.
hth,
Stefan
--
sei nett zu Deinem Themer
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
stBorchert schrieb Dann
am 26.08.2009 - 12:16 Uhr
Dann schreib es in die views-view--VIEWNAME.tpl.php.
Ahhh, da sollte es ja rein... Mein Fehler - Augen auf beim Codeschreiben.
Was mich jetzt noch interessiert ist, wie ich an den korrekten Pfad herankomme
Welchen Pfad? Die URL?
<?php $path = implode('/', arg()); ?>
oder
<?php $path = $_GET['q']; ?>
Wieder was gelernt - danke! Wobei ich da hätte draufkommen müssen. :(
...ich will aber nur das p ausblenden auf dessen zugehörigen Link ich klicke...
Das hängt davon ab, wie Du "zugehörig" definierst.
Das ist zugehörig:
<span id="thmr_2" class="thmr_call">
<div class="views-field-title">
<span class="field-content">
<span id="thmr_3" class="thmr_call"><a href="/Link" title="LinkTitle" alt="LinkAlt">LinkText</a></span>
</span>
</div>
<div class="views-field-teaser">
<div class="field-content">
<span id="thmr_4" class="thmr_call">Der lange auszublendende Text</span>
</div>
</div>
</span>
Ich will jetzt bei einem Klick auf LinkText den unteren Teil Der lange auszublendende Text ausblenden. Dieses Konstrukt habe ich aber durch die View mehrere male mit wechselnden thmr_id. Gibt es da einen Weg?
Derzeit lade ich den Langtext und blende ihn dann nur ein/aus - gibt es eine Möglichkeit den passenden Langtext richtig nachzuladen?
Vielen Dank, PaulchenPlump