Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Thickbox beim Seitenaufruf automatisch laden

    Baltazar80

    • Fördermitglied
    • Beiträge: 52
    Hallo Leute,

    kann mir jemand behilflich sein.
    Ich versuche auf der Startseite automatisch eine Tickbox zu laden (z.B. Bild oder Contentseite),
    aber das klappt nicht.
    Ich habe ewig danach gegoogelt und die ganzen Lösungen klappen beim modified nicht.

    Hat einer schon mal etwas ähnliches gemacht oder kann mir sagen, wie ich das umsetzen kann?

    Linkback: https://www.modified-shop.org/forum/index.php?topic=30068.0
    Werbung / Banner buchen

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Re: Thickbox beim Seitenaufruf automatisch laden
    Antwort #1 am: 01. Mai 2014, 14:44:59
    Das sollte eigtl. kein Problem sein.
    Was hast du denn bislang probiert ?
    Mit der Standard-Thickbox (also nicht meinem "Thickbox animiert"-Plugin) müsste das mit
    body onload="BLABLA()"
    gehen.
    Mittels der Funktion tb_show(caption, url, imageGroup) sollte man das dann hinbekommen.

    Die Frage bleibt was du genau machen möchtest.
    Diese Frage ist wichtig um bessere Tipps geben zu können.
    Im Allgemeinen nervt es Besucher wenn etwas was sie nicht kontrollieren können hochpoppt (ich bin dann meistens weg).
    Außerdem soll das evtl. ja auch nur einmal erscheinen, oder bei jedem Seitenaufruf von neuem ?

    Gruß,
    noRiddle

    Baltazar80

    • Fördermitglied
    • Beiträge: 52
    Re: Thickbox beim Seitenaufruf automatisch laden
    Antwort #2 am: 01. Mai 2014, 17:52:29
    Erst mal danke für deine Hilfe.
    Ich habe bisher folgendes versucht, ich habe folgenden script gefunden:

    Code: Javascript  [Auswählen]
    <script type="text/javascript">
    $(document).ready(function(){
    tb_show("Announcement","announcement.html?height=300&width=300", "");
    });
    </script>

    Aber ich weiß nicht wo ich das eifügen soll?
    Wenn ich es direkt in die index.html einfüge, ladet die Seite nicht mehr.
    Und wenn ich es in die general.js.php einfüge, fehlt ja irgendwie der Bezug auf die Seite wo es erscheinen soll?

    Dann habe ich noch folgendes gefunden:

    http://www.nof-tutorials.com/jQuery-Popupbox-Dialog/

    Das funktioniert auch ganz gut, nur leider wird dann dadurch, weil folgendes geladen wird:

    Code: XML  [Auswählen]
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />

    mein ganzes Design in der product_info_tabs_v1.html mit beeinflusst, da die classen dann doppelt sind, deshalb dachte ich mir eine Lösung mit Thickbox wäre besser, da ja Thickbox sowieso die gleiche Funktion hat.

    Was ich damit vorhabe ist, dass ich einen Banner mit News auf der Startseite laden möchte, ich weiß das könnte stören, aber dennoch möchte ich das machen.
    Und zusätzlich möchte auf der Kontakt Seite einen Content laden mit einigen Informationen, weil wir immer wieder die selben Fragen erhalten und da soll dann so eine kleine Art von FAQ aufpoppen, bevor die Kunden uns erneut danach fragen.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Re: Thickbox beim Seitenaufruf automatisch laden
    Antwort #3 am: 01. Mai 2014, 18:06:45
    Also,
    • Wenn du Javascriptcode welcher geschwungene Klammern enthält verwendest, mußt du diese im Template (alle Template-Dateien die auf .html enden) escapen weil das System ansonsten versucht sie als Smarty zu interpretieren.
      Sähe dann z.B. so aus:
    Code: PHP  [Auswählen]
        <script type="text/javascript">
        {literal}
        $(document).ready(function(){
        tb_show("Announcement","announcement.html?height=300&width=300", "");
        });
        {/literal}
        </script>
    • Du kannst in der general.js.php mittels if-Clause abfragen wo das geladen wird.
      Schau dir dazu mal das Beipiel des "conditional" Ladens der jquery-ui an die ja auch nur auf der product_info geladen wird.
      Für eine Abfrage nach z.B. Content (hier Kontakt-Seite) sähe das z.B. so aus:
    Code: PHP  [Auswählen]
    <?php
    if (isset($_GET['coID']) && $_GET['coID'] == '7') {
    ?>
    <script .....
    DEIN_CODE
    </script>
    <?php
    }
    ?>

    Den Rest bekommst du schon selbst hin.

    Gruß,
    noRiddle

    Baltazar80

    • Fördermitglied
    • Beiträge: 52
    Re: Thickbox beim Seitenaufruf automatisch laden
    Antwort #4 am: 01. Mai 2014, 19:14:43
    Danke nochmal, ich habe jetzt mal beides versucht, und es tut sich nichts, es passiert gar nichts.

    Ich habe einmal in der index.html folgendes eingefügt:

    Code: PHP  [Auswählen]
    <script type='text/javascript'>
    {literal}
    $(document).ready(function(){
    tb_show('TEST', 'http://www.gesundheitsmedien.de/wmhtml/warning.html?TB_iframe=true&height=400&width=600', null); });
    {/literal}
    </script>

    das hat nichts gebracht, keine Funktion.

    Dann habe ich in der general.js.php folgendes eingefügt:

    Code: PHP  [Auswählen]
    <?php
    if (isset($_GET['coID']) && $_GET['coID'] == '7') {
    ?>
    <script type="text/javascript">
    $(document).ready(function(){
    tb_show('TEST', 'http://www.gesundheitsmedien.de/wmhtml/warning.html?TB_iframe=true&height=400&width=600', null); });
    </script>
    <?php
    }
    ?>

    Und das hat auch nichts gebracht.
    Fehlt da noch etwas?
    Dachte nicht, dass es so schwer sein würde eine Thickbox automatisch zu lasen.

    Baltazar80

    • Fördermitglied
    • Beiträge: 52
    Re: Thickbox beim Seitenaufruf automatisch laden
    Antwort #5 am: 01. Mai 2014, 20:40:40
    OK, ich habs hinbekommen, vielen Dank nochmal, das Problem war die Einbindung vom thickbox.js hat gefehlt, also die Lösung ist wie folgt.

    Auf der Startseite ind die index.html folgendes eingetragen:

    Code: PHP  [Auswählen]
    {if strstr ($smarty.server.PHP_SELF, 'index')}
        {if $smarty.get.cPath==null and $smarty.get.manufacturers_id==''}
    <script type="text/javascript" src="{$tpl_path}javascript/thickbox.js"></script>
    <script type='text/javascript'>
    {literal}
    $(document).ready(function(){
    tb_show('TEST', 'http://www.gesundheitsmedien.de/wmhtml/warning.html?TB_iframe=true&height=400&width=600', null); });
    {/literal}
    </script>
    {/if}
      {/if}

    Und für die Kontaktseite folgendes in die general.js.php:

    Code: PHP  [Auswählen]
       
    <?php
    if (isset($_GET['coID']) && $_GET['coID'] == '7') {
    ?>
    <script type="text/javascript" src="<?php echo 'templates/'.CURRENT_TEMPLATE; ?>/javascript/thickbox.js"></script>
    <script type="text/javascript">
    $(document).ready(function(){
    tb_show('TEST', 'http://www.gesundheitsmedien.de/wmhtml/warning.html?TB_iframe=true&height=400&width=600', null); });
    </script>
    <?php
    }
    ?>

    Vielen Dank nochmal.

    Baltazar80

    • Fördermitglied
    • Beiträge: 52
    Re: Thickbox beim Seitenaufruf automatisch laden
    Antwort #6 am: 01. Mai 2014, 21:39:49
    Jetzt habe doch noch ein Problem, und zwar wie bekomme ich da denn Bild da hin anstatt des html links, zudem sollte das Bild auch verlinkt sein?

    EDIT:
    Ich kann es ja in eine content Seite verlinken, aber wie verlinke ich denn da zu einer Conentseite?

    Folgendes funktioniert nicht:

    Code: XML  [Auswählen]
    tb_show('TEST', '{php}echo xtc_href_link(FILENAME_CONTENT, 'coID=7', 'NONSSL');{/php}?TB_iframe=true&height=550&width=1100', null); });

    Baltazar80

    • Fördermitglied
    • Beiträge: 52
    Re: Thickbox beim Seitenaufruf automatisch laden
    Antwort #7 am: 01. Mai 2014, 23:21:13
    OK, hab das mit dem Content verlinken wie folgt hinbekommen:

    Code: PHP  [Auswählen]
    'http://exvape.de/popup_content.php?coID=12&KeepThis=true&TB_iframe=true&height=490&width=815'

    Ist zwar nicht die Beste Lösung denke ich, da es nicht intern verlinkt ist, aber immerhin funktionierts.

    Das einzige was mich jetzt noch stört ist, dass es keine Animationen beim ein und ausblenden gibt, kann man die auch irgendwie noch aktivieren, so wie bei den anderen Thickboxen im Shop?

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Re: Thickbox beim Seitenaufruf automatisch laden
    Antwort #8 am: 02. Mai 2014, 10:43:37
    Was meinst du denn mit "Animation" ?
    Die Standard-Thickbox war noch nie animiert, oder wie jetzt ?

    Gruß,
    noRiddle

    Baltazar80

    • Fördermitglied
    • Beiträge: 52
    Re: Thickbox beim Seitenaufruf automatisch laden
    Antwort #9 am: 02. Mai 2014, 18:29:52
    Ja, genau das meine ich, dass die Standard Thickbox nicht animiert ist.

    Gibt es da vielleicht eine möglichkeit, die animierte Thickbox von dir zu verwenden anstatt die Standard Version?

    Die animierte habe ich auch schon im Shop integriert, würde das funktionieren?

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Re: Thickbox beim Seitenaufruf automatisch laden
    Antwort #10 am: 03. Mai 2014, 02:11:28
    Wenn du mein "Thickbox animiert"-Plugin benutzen möchtest habe ich ad hoc nur folgende Idee:
    Generiere einen Link mit display:none; und mache ein
    .trigger('click') on body onload auf den Link, das sollte funktionieren.

    Gruß,
    noRiddle

    Baltazar80

    • Fördermitglied
    • Beiträge: 52
    Re: Thickbox beim Seitenaufruf automatisch laden
    Antwort #11 am: 03. Mai 2014, 18:13:37
    Hallo,

    vielen Dank nochmal für deine Hilfe, bei dir hört es so einfach an, aber leider weiß ich nicht wie ich das umsetzen soll. Ich bin eher einer, der immer Anleitungen befolgt und per copy & paste arbeitet.

    Könntest du mir evtl. das etwas besser beschreiben, wo und wie ich das einfügen muss?
    Vielen Dank.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Re: Thickbox beim Seitenaufruf automatisch laden
    Antwort #12 am: 03. Mai 2014, 21:27:23
    Sich 'n bisschen im I-net informieren geht nicht ?
    Andere dürfen für dich die Arbeit machen ?

    Letzter Tipp:
    In der /includes/header.php gibst du dem body-tag ein onload="myFunc();",
    am Besten "conditional", also nur auf der/den Seite/n wo du das Popup möchtest
    und in der /templates/DEIN_TEMPLATE/javascript/general.js.php definierst du myFunc z.B. so:
    Code: XML  [Auswählen]
    function myFunc () {
    var atag = '<a href="<?php echo xtc_href_link(FILENAME_POPUP_CONTENT, 'coID=XX&KeepThis=true&TB_iframe=true&height=400&width=650'); ?>" class="thickbox" id="test"></a>';
    $('body').prepend(atag);
    $('#test').thickbox().trigger('click');
    }
    und zwar nachdem die jQuery-Basis geladen wird.

    Du legst einen Content mit z.B. Sprachgruppe 100 an (Link nicht in Box anzeigen lassen) und in der Funktion oben ersetzt du dann XX mit 100 und bei Pageload wird dieser Content in der Thickbox aufgerufen.
    Am Besten baust du noch ein kleines setTimeout() ein damit das nicht sofort hochpoppt.

    Gruß,
    noRiddle
    Trade Republic - Provisionsfrei Aktien handeln
    5 Antworten
    3484 Aufrufe
    05. Mai 2013, 23:46:51 von franco.born
    5 Antworten
    3007 Aufrufe
    12. November 2015, 08:36:49 von webald
    8 Antworten
    7234 Aufrufe
    26. Juni 2012, 22:59:30 von Zaldoran
    11 Antworten
    6674 Aufrufe
    23. Mai 2010, 17:52:42 von mikeSo