Trade Republic - Provisionsfrei Aktien handeln
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: Sonderangebote in topmenu mit Abfrage ob aktiv

    jannemann

    • modified Team
    • Beiträge: 6.275
    • Geschlecht:
    Sonderangebote in topmenu mit Abfrage ob aktiv
    am: 08. November 2013, 09:30:40
    Hallo Community,

    ich habe die Box für die Sonderangebote aus der linken Spalte auskommentiert und einen Textlink oben ins Topmenu gelegt. Aktuell stehe ich auf dem Schlauch wie ich abfragen kann, ob es Sonderangebote gibt, denn, wenn es keine Sonderangebote gibt, sollte der Textlink oben im Topmenu auch nicht erscheinen.
    Shopversion 1.06 rev 4642

    Schöne Grüße,
    Jan

    Linkback: https://www.modified-shop.org/forum/index.php?topic=28289.0
    Trade Republic - Provisionsfrei Aktien handeln

    karsta.de

    • Experte
    • Beiträge: 3.092
    Re: Sonderangebote in topmenu mit Abfrage ob aktiv
    Antwort #1 am: 08. November 2013, 11:28:23
    Besser ist es die Box für die Sonderangebote anzupassen und an die passende Stelle zu setzen als sie auszukommentieren, denn dann wird auch wieder die Abfrage aus der boxes.php verwendet, um die Sonderangebote zu zeigen bzw. bei NULL Bestand nicht zu zeigen.

    z.B. so: templates/xtc5/boxes/box_specials.html (natürlich mit den entsprechenden Styles)
    Code: PHP  [Auswählen]
    {config_load file="$language/lang_$language.conf" section="boxes"}
    <a href="{$SPECIALS_LINK}">{#heading_specials#}</a>
     

    piru

    • Fördermitglied
    • Beiträge: 1.263
    • Geschlecht:
    Re: Sonderangebote in topmenu mit Abfrage ob aktiv
    Antwort #2 am: 08. November 2013, 11:29:11
    Hallo Jan,

    vielleicht kann dir die Datei templates/xtc5/source/boxes/specials.php helfen?
    Da wird auch abgefragt, ob die Box erscheinen soll oder nicht, so wie ich das verstehe, wenn keine Sonderangeboten gibt, wird die Box nicht angezeigt.

    Bei  and s.status = '1':
    Code: PHP  [Auswählen]
    if ($random_product = xtc_random_select("select
                                               p.products_id,
                                               pd.products_name,
                                               p.products_price,
                                               p.products_tax_class_id,
                                               p.products_image,
                                               s.expires_date,
                                               p.products_vpe,
                                                               p.products_vpe_status,
                                                               p.products_vpe_value,
                                               s.specials_new_products_price
                                               from "
    .TABLE_PRODUCTS." p,
                                               "
    .TABLE_PRODUCTS_DESCRIPTION." pd,
                                               "
    .TABLE_SPECIALS." s where p.products_status = '1'
                                               and p.products_id = s.products_id
                                               and pd.products_id = s.products_id
                                               and pd.language_id = '"
    .$_SESSION['languages_id']."'
                                               and s.status = '1'
                                               "
    .$group_check."
                                               "
    .$fsk_lock."                                            
                                               order by s.specials_date_added
                                               desc limit "
    .MAX_RANDOM_SELECT_SPECIALS))
    Und die Box wird angezeigt wenn
    Code: PHP  [Auswählen]
    if ($random_product["products_id"] != '')

    So habe ich es verstanden, aber ich kann mich auch irren.

    Gruß piru

    EDIT: kgd war schneller und bestimmt auch den richtigen Hinweis gegeben

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.838
    • Geschlecht:
    Re: Sonderangebote in topmenu mit Abfrage ob aktiv
    Antwort #3 am: 08. November 2013, 14:26:55
    Ich glaube Ihr habt jannemann nicht verstanden.
    Er linkt ja auf die specials.php (wie auch die Überschrift der Box) nicht auf die Box selbst (was ja im übrigen auch nicht ginge).

    Wie und wo hast du denn den Link generiert, jannemann ?
    Hard-codiert mit
    Code: PHP  [Auswählen]
    <a href="{php}echo xtc_href_link(FILENAME_SPECIALS, '', 'NONSSL');{/php}">LINK</a>
    in der index.html ?

    oder erst eine Smarty-Variable in /includes/header.php definiert nach Vorbild $index, $account usw. ?

    Wenn letzteres, was zu empfehlen wäre, dann müsstest du soweit ich das sehe eine Query vorschalten die nachschaut ob es in der Tabelle specials einen (oder mehr) Eintrag gibt und mittels if-clause nur wenn positiv (xtc_db_num_rows() != 0) das Smarty generieren.

    Gruß,
    noRiddle

    karsta.de

    • Experte
    • Beiträge: 3.092
    Re: Sonderangebote in topmenu mit Abfrage ob aktiv
    Antwort #4 am: 08. November 2013, 15:43:18
    Eben genau deshalb mein Vorschlag. Der Link in der {$box_SPECIALS} wird dann auch nur angezeigt, wenn es Sonderangebote gibt (auch wenn ich die Box leer lasse) und führt zur specials.php.
    Das verwende ich schon seit Jahren genauso in einem Shop (wo der Shopbetreiber nicht die Sonderangebote in dieser Box angezeigt bekommen wollte, sondern den Link zu allen Sonderangeboten).

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.838
    • Geschlecht:
    Re: Sonderangebote in topmenu mit Abfrage ob aktiv
    Antwort #5 am: 08. November 2013, 15:52:09
    Du meinst er soll die Box ins Topmenu einbauen, nur eben ohne Inhalt, nur mit dem Link ?
    Ist das nicht ein wenig aufwendig ?
    Eine conditional Smarty-Definition in /includes/header.php ist doch sinniger und einfacher,
    zumal die benötigte Query ja blitzschnell geht weil man sie lediglich nach specials_id machen muß und das ist ja ein primary key. Mit außerdem LIMIT 1 geht's noch schneller, man benötigt ja nur einen boolean-Wert, nämlich gibt's min. einen Eintrag oder nicht.

    Gruß,
    noRiddle

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.838
    • Geschlecht:
    Re: Sonderangebote in topmenu mit Abfrage ob aktiv
    Antwort #6 am: 08. November 2013, 16:08:29
    Hier mal kurz ein Code-Beispiel:
    /includes/header.php
    Code: PHP  [Auswählen]
    //BOC create a specials link if there is any specials, noRiddle
    $special_query = xtc_db_query("SELECT specials_id FROM ".TABLE_SPECIALS." LIMIT 1");
    if(xtc_db_num_rows($special_query, true) != false) {
        $smarty->assign('specials_link', xtc_href_link(FILENAME_SPECIALS, '', 'NONSSL'));
    }
    //EOC create a specials link if there is any specials, noRiddle

    /templates/DEIN_TEMPLATE/index.html
    Code: PHP  [Auswählen]
    {*BOC specials link (defined in /includes/header.php), noRiddle*}
    {if $specials_link}
    <li><a href="{$specials_link}">{#text_specials_link#}</a></li>
    {/if}
    {*EOC specials link (defined in /includes/header.php), noRiddle*}

    Natürlich noch in der /lang/SPRACHE/lang_SPRACHE.conf in der section [index] text_specials_link definieren.

    Gruß,
    noRiddle

    karsta.de

    • Experte
    • Beiträge: 3.092
    Re: Sonderangebote in topmenu mit Abfrage ob aktiv
    Antwort #7 am: 08. November 2013, 16:22:13
    Hört sich gut und schlüssig an. Müßte man testen.

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Re: Sonderangebote in topmenu mit Abfrage ob aktiv
    Antwort #8 am: 08. November 2013, 16:49:54
    Wenn der Status des Sonderangebots auf 0 ist, würde aber trotzdem ein Link generiert werden. Statt auf die specials_id zu prüfen, würde ich ein WHERE status = 1 machen.

    Gruß
    Ronny

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.838
    • Geschlecht:
    Re: Sonderangebote in topmenu mit Abfrage ob aktiv
    Antwort #9 am: 08. November 2013, 18:31:46
    Bingo, hast du recht, da habe ich nicht dran gedacht.

    Gruß,
    noRiddle

    jannemann

    • modified Team
    • Beiträge: 6.275
    • Geschlecht:
    Re: Sonderangebote in topmenu mit Abfrage ob aktiv
    Antwort #10 am: 08. November 2013, 20:17:51
    Guten Abend,

    danke @ all für die zahlreichen Tipps und Beispiele!
    Wie und wo hast du denn den Link generiert, jannemann ?
    Hard-codiert mit
    Code: PHP  [Auswählen]
    <a href="{php}echo xtc_href_link(FILENAME_SPECIALS, '', 'NONSSL');{/php}">LINK</a>
    in der index.html ?

    Gruß,
    noRiddle

    Genau so habe ich es gemacht. Ich werde mich an deinem Codebeispiel orientieren.  :thumbs:

    Schöne Grüße,
    Jan

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.838
    • Geschlecht:
    Re: Sonderangebote in topmenu mit Abfrage ob aktiv
    Antwort #11 am: 08. November 2013, 21:05:33
    Denke bitte an Webkistes Hinweis:
    Code: PHP  [Auswählen]
    $special_query = xtc_db_query("SELECT specials_id FROM ".TABLE_SPECIALS." WHERE status = 1 LIMIT 1");

    Gruß,
    noRiddle

    jannemann

    • modified Team
    • Beiträge: 6.275
    • Geschlecht:
    Re: Sonderangebote in topmenu mit Abfrage ob aktiv
    Antwort #12 am: 09. November 2013, 07:30:28
    Guten morgen,

    Danke noch mal an euch für den Code. Läuft perfekt, genau so wie es sein soll.

    Schöne Grüße,
    Jan
    2 Antworten
    1084 Aufrufe
    10. Mai 2020, 20:09:07 von karsta.de
    7 Antworten
    2104 Aufrufe
    22. Januar 2017, 22:01:11 von awids
               
    anything