AJax-Link API
Eingetragen von JenneMander (112)
am 25.09.2013 - 08:59 Uhr in
am 25.09.2013 - 08:59 Uhr in
Hallo Forum,
ich möchte gerne die Ajax-Link API benutzen. Mein Ziel ist es, das meine Nodes geladen werden ohne dass die Blocks etc. neu geladen werden müssn. Ich verwende das Omega Theme und das Superfish Menü-jetzt scheitert leider die Konfiguration.
Beim Default Target DIV habe ich "region-content" eingetragen, aber was muss ich im jQeury-Selector eingeben, ich habe es mit ".block-superfish-1 a" versucht, es wird auch etwas geladen, nur leider nicht ausgetauscht. Vielleicht kann mir jemand von euch weiterhelfen.
mit besten Grüßen
Jens
Also mit Firebug habe ich überprüft ob ein Inhalt geladen wird, das wird er, aber es passiert eben nichts.
- Anmelden oder Registrieren um Kommentare zu schreiben
Okay, es fehlte natürlich
am 25.09.2013 - 09:03 Uhr
Okay, es fehlte natürlich einfach nur der"." vor Region-content. Jedoch habe ich jetzt das Problem, dass auch die bestehenden Blocks hinzugeladen werden und nicht nur die "reinen" Nodes.
Dann mußt Du ein spezielles
am 25.09.2013 - 09:30 Uhr
Dann mußt Du ein spezielles html- und page-Template bauen und mittels einer preprocess-Funktion im Theme registrieren. Dieses Template gibt dann nur das aus, was Du brauchst. Du brauchst dann für die AJAX-Ausgabe eine spezifische URL, die diesen Mechanismus auslöst. Hier ein Beispiel, das ich mal für ein Popup in einer Colorbox benutzt habe:
Zunächst in der template.php des Themes
<?php
function MYTHEME_preprocess_html(&$variables) {
if (substr(strtolower($_SERVER['REQUEST_URI']), 0, 14) == '/markendetails' &&
strpos($_SERVER['REQUEST_URI'], 'iframe') !== false) {
$variables['theme_hook_suggestions'][] = 'html__ajax';
}
function MYTHEME_preprocess_page(&$variables) {
if (substr(strtolower($_SERVER['REQUEST_URI']), 0, 14) == '/markendetails' &&
strpos($_SERVER['REQUEST_URI'], 'iframe') !== false) {
$variables['theme_hook_suggestions'][] = 'page__ajax';
}
} ?>
und dann die beiden Template Dateien
html--ajax.tpl.php:
<?php print $page; ?>
und page--ajax.tpl.php:
<?php print render($page['content']); ?>
Bei mir ist die URL /markendetails ein View, der zusätzlich noch eine Node-ID bekommt und dann diesen Node aufruft. Danach wird das ganze noch mit etwas CSS aufgehübscht.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Super besten Dank, jetzt muss
am 26.09.2013 - 07:51 Uhr
Super besten Dank, jetzt muss ich den Spaß nur noch fürs Suchformular basteln und dann kann ich mich das ganze Wochenende freuen.
vielen Dank und beste Grüße