wie man es macht, damit die gesamte Seite nicht neu geladen wird
Guten Tag.
Ich erstelle ein Theme für Drupal 7, bisher scheint alles gut zu laufen. Ich habe ein paar Fragen.
Ein wenig über mein Theme.
Es gibt ein Hauptmenü im Bereich primari_link (wo der Inhaltstyp ausgewählt wird) (und im Header-Bereich)
es gibt ein Navigationsmenü für Artikel eines bestimmten Typs, das sich vom Hauptmenü unterscheidet. (im Bereich linke_spalte) und (im Bereich main-wrapper)
und es gibt eine Inhaltskolonne, in der der bestimmte Inhaltstyp je nach Hauptmenü ausgegeben wird. (im Bereich rechte_spalte) und (im Bereich main-wrapper)
Frage eins.
Wie kann ich es so einrichten, dass beim Auswählen im primari_link nur der darunter liegende Bereich neu geladen wird? Entsprechend dem Bereich main-wrapper
und dann, wenn im Bereich linke_spalte ausgewählt wird, nur der Bereich rechte_spalte neu geladen wird.
Ich verstehe, dass hier AJAX verwendet werden muss, aber ich habe nichts Verständliches zu diesem Thema gefunden.
Frage zwei
Wie kann ich es erreichen, dass in der linken Spalte ein bestimmter Inhaltstyp angezeigt wird? (eine spezielle Art - Formular) Die Listen sind unterschiedlich für jeden Punkt des Hauptmenüs und entsprechend in der rechten Spalte abhängig vom gewählten Element in der linken Spalte.
Frage drei
Ich habe 3 Spalten erstellt und sie haben unterschiedliche Höhen. Ich möchte, dass sie die gleiche Höhe haben. Ich benutze Div zur Formatierung.
In page.tpl.php verwende ich Drupal 7
den folgenden Codeausschnitt
<script language="JavaScript" type="text/javascript"> function setEqualHeight(columns){ var tallestcolumn = 0; columns.each(function(){ currentHeight = $(this).height(); if(currentHeight > tallestcolumn){ tallestcolumn = currentHeight; } } ); columns.height(tallestcolumn); } $(document).ready(function() { setEqualHeight($(".container > div")); }); </script>
Mit diesem Problem habe ich endlich nach dem Abendessen aufgeräumt :) Es stellt sich heraus, dass Drupal 7 es nicht mag, wenn man $
es muss durch jQuery ersetzt werden und schon hat es mit einem Klick funktioniert.
Wie ich gelesen habe, liegt der Grund darin dass jQuery im noConflict-Modus arbeitet.
jQuery(document).ready(function() { setEqualHeight(jQuery(".container > div")); });
Nun und entsprechend überall $ durch jQuery ersetzen und ihr werdet glücklich sein.
Ich hoffe, diese Informationen sind für jemanden nützlich.
Die ersten beiden Fragen bleiben offen.
- Anmelden oder Registrieren, um Kommentare verfassen zu können