<?php echo Ausgabe in Lightbox

  • Hallo ins Forum,


    ich habe ein Kontaktformular als Modul in php definiert, das an bestimmten Position eingebunden wird. Admin bzw. der Redakteur haben somit die Möglichkeit über generelle Einstellungen, Feldnamen und Werte, Pflichtfelder und Danke-Text das nach Ihren Wünschen Formular anzupassen. Funktioniert auch prima.


    Nun zum "Problem": Nach dem Absenden des Formulars wird die Seite neu geladen und der Danke-Text natürlich an der Position angezeigt, an der vorher das Formular stand. Leider ist das auf der Seite sehr weit unten und der Benutzer sieht den Text nicht sofort, was zu Verwirrungen führte, ob das Versenden nun erfolgreich war oder nicht. Die Idee ist nun, den Danke-Text in einer Lightbox anzuzeigen.


    Der Text wir über <?php echo $thanksMessage ?> ausgegeben.


    Wie kann man sowas realisieren?

    Vielen Dank für Eure Hilfe.


    Viele Grüße
    Stefanie

  • Eine einfache Lightbox zu programmieren ist nicht schwierig, solide CSS-Kenntnisse und etwas Javascript vorausgesetzt.


    Wenn dein Template Bootstrap nutzt könntest du die Information in einem Bootstrap Modal ausgeben.


    Schau dir auch mal Bootboxjs an, damit lassen sich wirklich schöne Javascript-Alerts erzeugen. Du musst es natürlich selbst irgendwie einbinden und ansteuern.

  • Vielen Dank für die Tipps.


    die Variante von deGobbis scheint mir am einfachsten und ich konnte sie direkt umsetzen.

    Aber egal wo ich die Ausgabe mit <jdoc:include type="message" /> im Template platziere, sie erscheint nie im Anzeigefenster. Das scrollt immer soweit nach unten, dann, dass die Ausgabe der Message außerhalb des angezeigten Bereichs steht. Kann man die Ausgabe denn in einer Lightbox machen?
    Leider bin ich mit Joomla noch nicht so vertraut und weiß nicht ob das mit internen Einstellungen machbar ist.


    Danke für eure Hilfe und Gruß
    Steffi

  • Nachtrag
    In dem System (das ich von jemand übernommen habe) ein newsBadge als Lightbox gefunden, das könnte ich prima für die Anzeige nutzen. Meine Frage ist nun, wie kann ich die Ausgabe von <jdoc:include type="message" /> darin machen? Klar ist, dass die Modul- gegen die Messageausgabe getauscht wird. Die Frage ist nun aber wie prüfe ich, dass es sich um eine Systemmessage handelt? Mit ($this->countModules .... geht das ja nicht.

    PHP
        <?php if ($this->countModules( 'nb' )) : ?>
            <div class="news-badge closeable">
                <div id="badge-content">
                    <jdoc:include type="modules" name="nb" />
                </div>
            </div>
        <?php endif; ?>

    Vielen Dank für ein bisschen Input hierzu
    LG, Steffi

  • PHP
        public static function has_messages()
        {
            return (!empty(self::$app->getMessageQueue()));
        }

    $app entspricht natürlich JFactory::getApplication() und die Funktion brauchst du wahrscheinlich so nicht und platzierst den Ausdruck in ein if.

  • Ganz lieben Dank für den Input, ich bin aber grad ziemlich verwirrt. Ich sortiere mal

    1. JFactory::getApplication()->enqueueMessage($thanksMessage , 'message');
      habe ich in die Datei (mod_formular.php) eingebunden und zwar da wo das Absenden dem Formulars passiert
    2. <jdoc:include type="message" />
      steht in der index.php des Templates
    3. Der Code für das Badge steht auch in der index.php. Das Badge wird nur dann angezeigt, wenn das nb (newbadge) Modul auch aktiviert ist.
    4. Ich wollte den o.g. Code für das Badge einfach kopieren und auch in der index.php einbinden, eben nur mit der Abfrage, ob ne Message worhanden ist.

    Nun weiß ich leider nicht, wo bzw. wie dein Code eingebaut werden muss. Sorry für die DAU-Fragen.... ich bin aber lernfähig ;)

    LG, Steffi