Ergebnis 1 bis 19 von 19

Thema: Kalender-Modul "springt"

  1. #1
    anton_meier
    Gast

    Standard Kalender-Modul "springt"

    Ich verwende Contao 2.10.1

    Mein Kalender-Modul befindet sich rechts in der Sidebar.
    Insgesamt liegen 740px zwischen Kopfzeile und Anfang des Kalender-Moduls.

    Sobald ein Monat mit den Navigations-Pfeilen ausgewählt wird, übergibt das Modul folgende URL ?month=.
    Somit wird die Seite neu geladen und das Modul rutscht (springt) samt Inhalt wieder nach oben.

    Ist jemandem dieses Problem bekannt?
    Gibt es eine Möglichkeit dies zu beheben?

  2. #2
    Contao-Fan Avatar von marcos
    Registriert seit
    09.02.2011.
    Ort
    Schweiz
    Beiträge
    575
    User beschenken
    Wunschliste

    Standard

    was meinst du mit "rutscht nach oben"? Der Abstand von 740px ist nicht mehr vorhanden?

    Kannst du mal einen Link zur Seite posten...

  3. #3
    Contao-Fan Avatar von Russe
    Registriert seit
    23.10.2009.
    Beiträge
    729

    Standard

    Willkommen im Forum,

    gibt es einen Link zu der Seite bei der man dieses Verhalten sehen kann?
    Russe

  4. #4
    anton_meier
    Gast

    Standard

    Link: http://fjn.typografix-design.de/

    Rechts in der Sidebar ist das Kalender-Modul.
    Mit "springt" meine ich, dass die Seite durch die Übergabe der URL neugeladen wird.

  5. #5
    Contao-Fan Avatar von Russe
    Registriert seit
    23.10.2009.
    Beiträge
    729

    Standard

    Das ist ein ganz normales Verhalten und du kannst das nur umgehen in dem du die neuen Daten per Ajax nachlädst, was aber nicht trivial ist. Musst mal hier im Forum nach Ajax suchen.
    Russe

  6. #6
    anton_meier
    Gast

    Standard

    Ok - Danke dir.
    Eventuell erzeuge ich eine Liste statt Mini-Kalender.

  7. #7
    Contao-Fan Avatar von lomex
    Registriert seit
    03.07.2009.
    Ort
    Werne
    Beiträge
    791
    User beschenken
    Wunschliste

    Standard

    Ich dachte schon, ich wäre der Einzige, den das stört :-)

    Versuche es mal hiermit. Habe mein 2.9er Script gerade mal umgeschrieben für 2.10/2.11. Ist aber ungetestet (bin gerade unterwegs).
    Lege ein neues Template von cal_default an und hänge das hinten dran. Dann könnte das Nachladen via Ajax klappen.
    Viel Glück :-)

    <code>
    <script type="text/javascript">
    window.addEvent('domready', function() {
    document.getElements('.mod_calendar .head a').addEvent('click', function(event)
    {
    var month = event.target.get('href').match('month=[0-9]{6}');
    new Request.JSON({
    method:'get',
    data:'g=1&action=cte&id=<?php echo $this->id; ?>&' + month,
    url:'ajax.php',
    onComplete: function(responseText){
    event.target.getParent('.mod_calendar').set('html' , responseText.content);
    }).send();
    return false;
    });
    </script>
    </code>

  8. #8
    anton_meier
    Gast

    Standard

    Nope. Leider funzt das nicht. Aber du hast mich da auf eine Idee gebracht.

  9. #9
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.559
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hast Du denn auch die [ajax] Erweiterung installiert? Die Extension legt im Contao Hauptverzeichnis das Hilfsskript "ajax.php" ab.
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  10. #10
    Contao-Fan Avatar von lomex
    Registriert seit
    03.07.2009.
    Ort
    Werne
    Beiträge
    791
    User beschenken
    Wunschliste

    Standard

    Ok, das hätte ich noch erwähnen können :-)

  11. #11
    Contao-Fan Avatar von lomex
    Registriert seit
    03.07.2009.
    Ort
    Werne
    Beiträge
    791
    User beschenken
    Wunschliste

    Standard

    Damit läuft es so halb. Der AJAX-Request klappt. ABER: Das umschließende DIV wird bei jedem Aufruf dupliziert. Man müsste den responseText.content so filtern, dass das umschließende DIV entfernt wird.

    Jemand eine Idee?

    Code:
    <script type="text/javascript">
    function ajaxCalendar() {
      document.getElements('.mod_calendar .head a').addEvent('click', function(event)
      {
         var month = event.target.get('href').match('month=[0-9]{6}');
         new Request.JSON({
           method:'get',
           data:'g=1&action=cte&id=53&' + month,
           url:'ajax.php',
           onComplete: function(responseText){
             event.target.getParent('.mod_calendar').set('html' , responseText.content);
             ajaxCalendar();
           }
         }).send();
         return false;
      });
    }
    window.addEvent('domready', function() {
       ajaxCalendar();
    });
    </script>

  12. #12
    Contao-Nutzer
    Registriert seit
    28.08.2009.
    Beiträge
    192

    Standard

    Hallo,

    das ist auch mein Problem. Sobald ein Kalender-Modul nur durch Scrollen vollständig sichtbar wird, springt die Seite bei jeder Kalender-Aktualierung zurück zum oberen Seitenrand.
    Lässt sich der Kalender nicht aktualisieren, ohne das die ganze Seite neu geladen wird ? Echt

    Hat schon jemand eine Lösung ?

    Roland

  13. #13
    Contao-Nutzer
    Registriert seit
    04.11.2009.
    Beiträge
    111

    Standard

    Habe mich gerade auch einmal an der von Iomex genannten Lösung versucht, aber so recht funktionieren will es nicht. Ich rufe aktuell das Javascript mit Verweis auf fmd auf, da es sich bei dem Archiv-Newsmenü ja entsprechend um ein Modul handelt. Dadurch entsteht aber das wohl schon bekannte Problem, dass immer das komplette Modul aufgerufen wird, also auch die umschließenden Elemente. Wahrscheinlich lässt sich das alles per JavaScript lösen, aber insgeheim stellt sich mir die Frage, ob nicht auf eine Möglichkeit besteht, das Ganze per echtem Datepicker wie im Backend oder einem Formular zu lösen? Hat sich daran schon mal jemand versucht bzw. die oben genannte Lösung vollständig implementiert?

    Schöne Grüße,

    dillscher

  14. #14
    Contao-Fan Avatar von toto
    Registriert seit
    09.02.2010.
    Ort
    Bad Oeynhausen
    Beiträge
    386

    Standard

    Moin zusammen, ich habe mein Kalender-Template verändert und einen Anker mit integriert. Da ich kein Programmierer bin und mir das runterscrollen auch immer auf den Senkel ging, fand ich die Lösung für mich am praktikabelsten.

    Hier zu sehen

    Gruß toto

  15. #15
    Contao-Fan Avatar von lomex
    Registriert seit
    03.07.2009.
    Ort
    Werne
    Beiträge
    791
    User beschenken
    Wunschliste

    Standard

    Das Problem mit dem umschließenden Div habe ich per JS gelöst. Wäre in meinen Augen in der ajax.php zwar besser aufgehoben (bei g=1 nur Kind-Elemente senden), aber es erfüllt seinen Zweck. So läuft es bei mir jetzt.

    Code:
    <script type="text/javascript">
    function ajaxCalendar() {
      document.getElements('.mod_calendar .head a').addEvent('click', function(event)
      {
         var month = event.target.get('href').match('month=[0-9]{6}');
         new Request.JSON({
           method:'get',
           data:'g=1&action=fmd&id=18&' + month,
           url:'ajax.php',
           onComplete: function(responseText){
             var outer = event.target.getParent('.mod_calendar');
             /* erst nach dem Einfügen des responseText kann dieser per DOM manipuliert werden, gebraucht werden nur die Kind-Elemente */
             outer.set('html', responseText.content);
             /* das eingefügte Div bestimmen */
             var inner = outer.getElement('div');
             /* die Kind-Elemente vom responseText dem Kalender-Div einfügen */
             outer.adopt(inner.getChildren());
             /* jetzt kann das eingefügte Div (responseText) wieder entfernt werden */
             inner.dispose();
             /* notwendig, um das Event neu zu registrieren */
             ajaxCalendar();
           }
         }).send();
         return false;
      });
    }
    window.addEvent('domready', function() {
       ajaxCalendar();
    });
    </script>

  16. #16
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.763
    User beschenken
    Wunschliste

    Standard

    Hallo Iomax,

    funzt super!

    ... die Segway-Seite habe ich mir gleich mal als Bookmark für meine "Schulungen" gesetzt: Rubrik: "no-go" ;-)

    zonky

  17. #17
    Contao-Nutzer Avatar von jabo
    Registriert seit
    01.06.2011.
    Ort
    Münsterland
    Beiträge
    50

    Standard

    Hallo Iomax,

    ich habe leider deinen Verbesserungsvorschlag nicht so ganz verstanden
    Kannst du mal bitte kurz erläutern, wie und wo ich es einbinden muß ?

    DANKE !

    jabo

  18. #18
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.763
    User beschenken
    Wunschliste

    Standard

    Hallo Jabo,

    viele Wege führen nach Rom - meiner:

    * irgendein (HTML5) Template erzeugen und Namen ändern z.B. "mod_calendar_ajax"
    * in das Template das JS einfügen
    * in den Text vor den Kalender Insert-Tag {{file::mod_calendar_ajax.html5}}

    das wars...

    ggf. mit den Templateendungen aufpassen - bei xhtml wäre es dann mod_calendar_ajax.xhtml

    zonky

  19. #19
    Contao-Nutzer Avatar von jabo
    Registriert seit
    01.06.2011.
    Ort
    Münsterland
    Beiträge
    50

    Standard

    Hi Zonky,

    ich werde es also wie von dir beschrieben versuchen.
    Besten DANK !

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •