Ergebnis 1 bis 21 von 21

Thema: Anmeldemodul - Alternativer Platz für Meldungen

  1. #1
    Contao-Urgestein Avatar von tblumrich
    Registriert seit
    25.06.2009.
    Ort
    Feldberger Seenlandschaft
    Beiträge
    2.225
    Partner-ID
    7979
    User beschenken
    Wunschliste

    Standard Anmeldemodul - Alternativer Platz für Meldungen

    Hallo!

    Ich benutze Avisota bei einem aktuellen Projekt (keine Ahnung warum ich bis dato immer mit dem Core-Modul hantiert habe - genial das Ding!).

    Nun habe ich ein kleines Platzproblemchen. Der An-/Abmeldeteil hat einen fest definierten Platz mit festen Ausmaßen.
    Da passt vertikal eben genau der Preamble-Text, die Feldbezeichnung, das Feld und die Absendebuttons. Horizontal geht auch nicht mehr. Schriftgrößen und Bezeichnungen sind auch ausgereizt.

    Das Problem sind die Messages beim Anmelden, Abmelden, Fehlermeldungen etc... die das ganze vertikal "dehnen".

    Hat jemand eine Idee wie man das vermeiden könnte, bevor ich selbst Hand ans Template lege - oder einen Denkansatz...?
    Meine Ideen:
    • Bei Message-Ausgabe verschwinden Feld, Feldbezeichnung und Submits (ok, ist bei Fehlermeldungen bzw. Tippfehlern nicht so gut)
    • der Messagetext erscheint an völlig anderer Stelle oder gar in einer Lightbox
    • eine Ajax(?)Lösung wie formcheck


    Auf die Schnelle rumgefummelt habe ich bis dato am CSS - MessageContainer absolute positioniert innerhalb der Anmeldebox ganz oben. Mit Background und anderer Farbe - ist aber auch nicht so schick.

    Eigentlich kann ich das ganze zum besseren Verständnis auch zeigen...
    http://www.suppenkult.com/ (oben rechts)

    Danke schonmal...

    Gruß
    Thomas
    blucomp | Webdesign & Onlinelösungen

  2. #2
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    Ich lasse bei derartigen Problemen die Nachrichten gerne als alert-PopUp anzeigen, dann weiß man sofort, aha, man hat was falsch gemacht

  3. #3
    Contao-Urgestein Avatar von tblumrich
    Registriert seit
    25.06.2009.
    Ort
    Feldberger Seenlandschaft
    Beiträge
    2.225
    Partner-ID
    7979
    User beschenken
    Wunschliste

    Standard

    Hi.

    Ich bin da leider nicht der große JS Experte und hab das jetzt nach etwas rumprobieren vorerst aufgegeben... kannst du mir ein konkretes Beispiel sagen, wie ich sowas einbaue? Im Template an der Stelle hab ich einige probiert... leider ohne Erfolg.

    Gruß
    Thomas
    blucomp | Webdesign & Onlinelösungen

  4. #4
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    So kann man es machen, mit Fallback, falls kein JS aktiviert ist.

    EDIT: falsches Template gepostet, entfernt um die Verwirrung zu verringern *siehe unten*
    Geändert von tril (06.05.2011 um 13:01 Uhr)

  5. #5
    Contao-Urgestein Avatar von tblumrich
    Registriert seit
    25.06.2009.
    Ort
    Feldberger Seenlandschaft
    Beiträge
    2.225
    Partner-ID
    7979
    User beschenken
    Wunschliste

    Standard

    Danke für den Tipp.
    Ist wahrscheinlich aus irgendeiner Seite von dir, oder? Oder haben die ausgeklammerten Sprachvariablen (Preamble etc...) irgendeinen Einfluß auf die Funktion?

    Leider erscheint bei mir kein PopUp Alert. JS ist eingeschaltet und Adblock aus... Nur die normale Message - wie sonst auch.

    Gruß
    Thomas
    blucomp | Webdesign & Onlinelösungen

  6. #6
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    Ey, wie dumm, auch noch das falsche File gepostet

    Hier der Ausschnitt für die Messages:
    PHP-Code:
    <?php if (count($this->messages)): ?>
    <script type="text/javascript">
    <!--//--><![CDATA[//><!--
    window.addEvent('domready', function() { alert('<?php echo implode('\n'$this->messages); ?>'); });
    //--><!]]>
    </script>
    <noscript>
    <?php foreach ($this->messages as $strMessage): ?>
    <p class="message"><?php echo $strMessage ?></p>
    <?php endforeach; ?>
    </noscript>
    <?php endif; ?>

  7. #7
    Contao-Urgestein Avatar von tblumrich
    Registriert seit
    25.06.2009.
    Ort
    Feldberger Seenlandschaft
    Beiträge
    2.225
    Partner-ID
    7979
    User beschenken
    Wunschliste

    Standard


    Funktioniert. Ich denke das ist eine ganz gute Lösung.

    Danke nochmal fürs konstruktive Feedback.

    Gruß
    Thomas
    blucomp | Webdesign & Onlinelösungen

  8. #8
    Contao-Nutzer
    Registriert seit
    19.09.2010.
    Beiträge
    28

    HTML

    Hallo Thomas,

    irgenwie bekomme ich das nicht hin... wo soll der Code von Tristan eingefügt werden?

    Ich hab das Newsletter-Widget ganz unten auf der Seite eingefügt um das Bild der Seite nicht zu zerstören und nun wäre es toll wenn jemand den Newsletter abonniert das ein Fenster (PopUp-Alert) aufgeht so das er nicht wieder bis nach unten scrollen muss...

    Liebe Grüße
    elukas

  9. #9
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    Das nur ein PopUp kommt und die Seite nicht neu geladen wird, geht so leider nicht, aber du könntest trotzdem runter scrollen mittels JS. Zuerst aber zu deiner Frage Wo der Code einzubauen ist, im mod_avisotasubscription Template werden die Nachrichten durch eine Schleife ausgegeben:
    PHP-Code:
    <?php if (count($this->messages)): ?>
    <p class="message"><?php echo $strMessage ?></p> 
    <?php endforeach; ?>
    <?php 
    endif; ?>
    Dieser Bereich, muss einfach durch den Code von oben ersetzt werden.

    Des weiteren könntest du folgendes ebenfalls dort einsetzen, um nach unten zu scrollen:
    PHP-Code:
    <?php if (count($this->messages)): ?>
    <a name="newsletter"></a>
    <script type="text/javascript">
    window.location.hash = 'newsletter';
    </script>
    ...
    <?php endif; ?>
    Dadurch spring der Browser zu dem Anker "newsletter", der durch den A-Tag definiert wird, das geht aber auch mit jeder ID.

    MfG Tristan

  10. #10
    Contao-Nutzer
    Registriert seit
    19.09.2010.
    Beiträge
    28

    Daumen hoch

    Hallo Tristan,

    danke für deine Antwort hat prima funktioniert... merkwürdig finde ich das ich es vorher auch so gemacht habe und es nicht geklappt hat... das mit dem scrollen ist auch eine gute Idee... vielen Dank

    Liebe Grüße
    elukas

  11. #11
    Contao-Nutzer
    Registriert seit
    19.09.2010.
    Beiträge
    28

    Frage Nach Update auf 1.5 Array-Fehler

    Hallo Tristan,

    ich hab leider einen Array-Fehler seit dem Avisota-Update 1.5...

    wenn ich die Startseite aufrufe geht jetzt immer das Popup auf und
    schreib 3 mal untereinander Array und springt zum Newsletter.

    Liebe Grüße
    elukas

  12. #12
    Contao-Nutzer
    Registriert seit
    19.09.2010.
    Beiträge
    28

    Frage Ist fast erledigt

    Hallo Tristan,

    Problem fast gelöst...

    Ich hab das alte Template gelöscht und nur den Teil vom alten Code eingefügt...
    und funktioniert schon mal wenn ich aber auf ein nächste Seite gehe und zurück
    springt es zum Newsletter und nicht am Anfang der Seite...???

    PHP-Code:
    <?php if (count($this->messages)): ?>
    <a name="newsletter"></a>
    <script type="text/javascript">
    window.location.hash = 'newsletter';
    </script>
    <?php endif; ?>
    aber das Popup funktioniert jetzt nicht mehr da der Code dafür nicht mehr passt.

    Danke Tristan eine echt geile Sache dein Newsletter-System

    Liebe Grüße
    elukas
    Geändert von elukas (26.08.2011 um 22:55 Uhr)

  13. #13
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    Die Variable $this->messages ist jetzt in 3 Kategorien unterteilt:
    PHP-Code:
    $this->messages = array
    (
        
    'confirmation' => array(),
        
    'info'         => array(),
        
    'error'        => array()

    Deshalb müsste der Code jetzt anders lauten:

    PHP-Code:
    $blnMessages = (count($this->messages['confirmation']) + count($this->messages['info']) + count($this->messages['error'])) > 0
    PHP-Code:
    <?php if ($blnMessages): ?> 
    <a name="newsletter"></a> 
    <script type="text/javascript"> 
    window.location.hash = 'newsletter'; 
    </script> 
    <?php endif; ?>
    PHP-Code:
    <?php if ($blnMessages): ?> 
    <script type="text/javascript"> 
    <!--//--><![CDATA[//><!-- 
    window.addEvent('domready', function() { alert('<?php echo implode('\n'array_merge($this->messages['confirmation'], $this->messages['info'], $this->messages['error'])); ?>'); }); 
    //--><!]]> 
    </script> 
    <noscript> 
    <?php
    foreach ($this->messages as $strClass => $arrMessages):
    foreach (
    $arrMessages as $strMessage):
    ?>
    <p class="message <?php echo $strClass?>"><?php echo $strMessage ?></p>
    <?php
    endforeach;
    endforeach;
    ?>
    </noscript> 
    <?php endif; ?>

  14. #14
    Contao-Nutzer
    Registriert seit
    19.09.2010.
    Beiträge
    28

    Frage

    Hallo Tristan,

    danke für Deine Hilfe... hab mehrere Varianten probiert und diese Code-Variante
    ist die besste es funktioniert jetzt fast alles, im Newsletter-Modul wird jetzt über
    der Meldung eine 1 angezeigt.


    PHP-Code:
    <!-- indexer::stop -->
    <div class="<?php echo $this->class?> block"<?php echo $this->cssID?><?php if ($this->style): ?> style="<?php echo $this->style?>"<?php endif; ?>>
    <?php if ($this->headline): ?>

    <<?php echo $this->hl?>><?php echo $this->headline?></<?php echo $this->hl?>>
    <?php endif; ?>

    <form action="<?php echo $this->formAction ?>" method="post" id="<?php echo $this->formId ?>">
    <div class="formbody">
    <input type="hidden" name="FORM_SUBMIT" value="<?php echo $this->formId?>" />

    <p class="preamble"><?php echo $GLOBALS['TL_LANG']['avisota']['subscription']['preamble'?></p>

    <?php echo $blnMessages = (count($this->messages['confirmation']) + count($this->messages['info']) + count($this->messages['error'])) > 0?> 
    <?php if ($blnMessages): ?> 
    <script type="text/javascript"> 
    <!--//--><![CDATA[//><!-- 
    window.addEvent('domready', function() { alert('<?php echo implode('\n'array_merge($this->messages['confirmation'], $this->messages['info'], $this->messages['error'])); ?>'); }); 
    //--><!]]> 
    </script> 
    <noscript> 
    <?php
    foreach ($this->messages as $strClass => $arrMessages):
    foreach (
    $arrMessages as $strMessage):
    ?>
    <p class="message <?php echo $strClass?>"><?php echo $strMessage ?></p>
    <?php
    endforeach;
    endforeach;
    ?>
    </noscript> 
    <?php endif; ?>

    <?php if ($blnMessages): ?> 
    <a name="newsletter"></a> 
    <script type="text/javascript"> 
    window.location.hash = 'newsletter'; 
    </script> 
    <?php endif; ?>

    <?php
    foreach ($this->messages as $strClass => $arrMessages):
    foreach (
    $arrMessages as $strMessage):
    ?>
    <p class="message <?php echo $strClass?>"><?php echo $strMessage ?></p>
    <?php
    endforeach;
    endforeach;
    ?>


    <?php if (!$this->hideForm): ?>
    <?php 
    if (!$this->tableless): ?>
    <table cellspacing="0" cellpadding="0" summary="">
        <tbody>
            <?php echo $this->fields?>
            <tr class="<?php echo $this->rowLast?> row_last">
                <td class="col_0 col_1 col_submit col_first col_last" colspan="2">
                    <div class="submit_container">
                        <input type="submit" name="subscribe" value="<?php echo specialchars($GLOBALS['TL_LANG']['avisota']['subscribe']['submit']); ?>" />
                        <input type="submit" name="unsubscribe" value="<?php echo specialchars($GLOBALS['TL_LANG']['avisota']['unsubscribe']['submit']); ?>" />
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <?php else: ?>
    <div class="fields">
        <?php echo $this->fields?>
    </div>
    <div class="submit_container">
        <input type="submit" name="subscribe" value="<?php echo specialchars($GLOBALS['TL_LANG']['avisota']['subscribe']['submit']); ?>" />
        <input type="submit" name="unsubscribe" value="<?php echo specialchars($GLOBALS['TL_LANG']['avisota']['unsubscribe']['submit']); ?>" />
    </div>
    <?php endif; ?>
    <?php 
    endif; ?>

    </div>
    </form>

    </div>
    <!-- indexer::continue -->

    Vielen Dank für deine Hilfe
    elukas

  15. #15
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    PHP-Code:
    <?php echo $blnMessages = (count($this->messages['confirmation']) + count($this->messages['info']) + count($this->messages['error'])) > 0?>
    Das echo gehört da NICHT hin

  16. #16
    Contao-Nutzer
    Registriert seit
    19.09.2010.
    Beiträge
    28

    Frage

    Hallo Tristan,

    super das wars danke... leider gibt es noch andere Sachen.

    • Manchmal kommen alle Meldungen zugleich...
    • Im Safari kommt nicht immer eine Meldung woran das wohl liegt...
    • Im Firefox kommt die Meldung fast immer...


    Was auch blöd ist:

    Wenn ich einen Newsletter abonniere und auf eine Folgeseite gehe
    und wieder zurück gibt er die Meldung noch mal aus als hätte ich
    mich gerade im Newsletter eingetragen. Das liegt natürlich an den
    zürückbutton könnte man da nicht irgendwo einen refresh einbauen
    vielleicht hast du ja einen Tipp.

    Liebe Grüße
    elukas
    Geändert von elukas (28.08.2011 um 18:55 Uhr)

  17. #17
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    Das mit den Bildern kommt mir irgendwie bekannt vor.
    http://contao-forge.org/issues/1931

  18. #18
    Contao-Nutzer
    Registriert seit
    19.09.2010.
    Beiträge
    28

    Standard

    Hallo Tristan,

    ja das stimmt dass mit den Bilder ist auch eine blöde Sache...

    Das sind aber auch Phänomene:
    • Manchmal kommen alle Meldungen zugleich...
    • Sie sind bereits im Newsletter eingetragen (Meldung kommt nicht immer)
    • Im Safari kommt nicht immer eine Meldung woran das wohl liegt...
    • Im Firefox kommt die Meldung fast immer...


    Liebe Grüße
    Lukas

  19. #19
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    PHP-Code:
    ...
    <?php echo $blnMessages = (count($this->messages['confirmation']) + count($this->messages['info']) + count($this->messages['error'])) > 0?> 
    <?php if ($blnMessages): ?> 
    <script type="text/javascript"> 
    <!--//--><![CDATA[//><!-- 
    window.addEvent('domready', function() { alert(<?php echo json_encode(implode('\n'array_merge($this->messages['confirmation'], $this->messages['info'], $this->messages['error']))); ?>); }); 
    //--><!]]> 
    </script> 
    ...
    Probier mal diese abgewandelte Version.

  20. #20
    Contao-Nutzer
    Registriert seit
    19.09.2010.
    Beiträge
    28

    Frage Merkwürdige Dinge passieren da...

    Hallo Tristan,

    mit Firefox 5 funktioniert jetzt alles aber es wird wieder die 1 angezeigt...
    mit Safari funktioniert nur die Meldung <Sie sind bereits im Newsletter eingetragen)
    und die anderen funktionieren nicht und die 1 steht auch darüber...
    Im Firefox 6, Camino 2, Opera 11 ist es wie bei Safari... eigentlich bei allen Browsern
    wie mir gerade auffällt...

    Liebe Grüße
    Lukas
    Geändert von elukas (30.08.2011 um 13:42 Uhr)

  21. #21
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    Ja das echo vor dem $blnMessage ist falsch ^^ sry mein Fehler ;D

Aktive Benutzer

Aktive Benutzer

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

Berechtigungen

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