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: Sonderangebot Ablaufdatum in Box "Zuletzt angesehen"

    Teichbau

    • Fördermitglied
    • Beiträge: 385
    • Geschlecht:
    Hallo zusammen,
    was muß ich machen damit in der Box "Zuletzt angesehen" bei einem Artikel mit Sonderangebot auch das Ablaufdatum mit angezeigt wird?
    Einfach nur den Code:

    Code: PHP  [Auswählen]
    {if $module_data.PRODUCTS_EXPIRES}<br />{#text_expires_date#}{$module_data.PRODUCTS_EXPIRES|date_format:"%x"}{/if}

    in die box_last_viewed.html

    Code: PHP  [Auswählen]
    {config_load file="$language/lang_$language.conf" section="boxes"}
    <div class="boxheadline">{#heading_last_viewed#}</div>
    <div class="boxcontent"><div class="boxBody">{if $box_content.PRODUCTS_IMAGE!=''}<div class="centerContent"><a href="{$box_content.PRODUCTS_LINK}"><img src="{$box_content.PRODUCTS_IMAGE}" alt="{$box_content.PRODUCTS_NAME}" class="productboximage"/></a></div>{/if}
            <div class="center"><a href="{$box_content.PRODUCTS_LINK}"><strong>{$box_content.PRODUCTS_NAME}</strong></a>
            <br />{$box_content.PRODUCTS_PRICE}{if $module_data.PRODUCTS_EXPIRES}<br />{#text_expires_date#}{$module_data.PRODUCTS_EXPIRES|date_format:"%x"}{/if}
            {if $box_content.PRODUCTS_VPE}<br />{$box_content.PRODUCTS_VPE}{/if}
            <br />{$box_content.PRODUCTS_TAX_INFO}{$box_content.PRODUCTS_SHIPPING_LINK}
            <br />{#text_watch_category#}<a href="{$CATEGORY_LINK}">{$CATEGORY_NAME}</a>
            <br /><a href="{$MY_PERSONAL_PAGE}"><span>{#text_my_page#}</span></a></div></div></div>

    einsetzen hat nichts gebracht.

    Hat jemand eine Idee damit die Darstellung rechtskonform ist?
    Der Artikel PF2261 ist ein "Test-Sonderangebot-Artikel"

    Shopversion v1.06 rev 4642

    Linkback: https://www.modified-shop.org/forum/index.php?topic=34185.0

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: Sonderangebot Ablaufdatum in Box "Zuletzt angesehen"
    Antwort #1 am: 15. Januar 2016, 16:11:00
    $module_data.PRODUCTS_EXPIRES muss befüllt werden in der zugehörigen php Datei der Box

    die findest du damit:
    https://www.modified-shop.org/wiki/Tutorial:_Erstellung_Box

    Teichbau

    • Fördermitglied
    • Beiträge: 385
    • Geschlecht:
    Re: Sonderangebot Ablaufdatum in Box "Zuletzt angesehen"
    Antwort #2 am: 15. Januar 2016, 16:55:07
    Hallo Bonsai,
    ich bin nun in der last_viewed.php drin... aber wo muß ich nun welchen Code einfügen.
    Ich finde in der Datei keine Ähnlichkeit bezügl. $module_data... von der ich das Prinzip abgucken kann.

    Könntest Du mir bitte weiter helfen?

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: Sonderangebot Ablaufdatum in Box "Zuletzt angesehen"
    Antwort #3 am: 15. Januar 2016, 17:07:30
    Code: PHP  [Auswählen]
           $random_query = "select p.products_id,
                                               pd.products_name,
                                               p.products_price,
                                               p.products_tax_class_id,
                                               p.products_image,
                                               p2c.categories_id,
                                               p.products_vpe,
                                                               p.products_vpe_status,
                                                               p.products_vpe_value,
                                               cd.categories_name
                                               from
                                               "
    . TABLE_PRODUCTS . " p,
                                               "
    . TABLE_PRODUCTS_DESCRIPTION . " pd,
                                               "
    . TABLE_PRODUCTS_TO_CATEGORIES . " p2c,
                                               "
    . TABLE_CATEGORIES_DESCRIPTION . " cd
                                               where p.products_status = '1'                                                                                              
                                               and p.products_id = '"
    .(int)$_SESSION['tracking']['products_history'][$random_last_viewed]."'
                                               and pd.products_id = '"
    .(int)$_SESSION['tracking']['products_history'][$random_last_viewed]."'
                                               and p2c.products_id = '"
    .(int)$_SESSION['tracking']['products_history'][$random_last_viewed]."'
                                               and pd.language_id = '"
    . $_SESSION['languages_id'] . "'
                                               and cd.categories_id = p2c.categories_id
                                               "
    .$group_check."
                                               "
    .$fsk_lock."
                                               and cd.language_id = '"
    . $_SESSION['languages_id'] . "'";
    In dem Query muss die Tabelle gejoint werden in der das Datum drinsteht.

    So etwa:
    Code: PHP  [Auswählen]
           $random_query = "select p.products_id,
                                               pd.products_name,
                                               p.products_price,
                                               p.products_tax_class_id,
                                               p.products_image,
                                               p2c.categories_id,
                                               p.products_vpe,
                                                               p.products_vpe_status,
                                                               p.products_vpe_value,
                                               cd.categories_name,
                                               s.expires_date
                                               from
                                               "
    . TABLE_PRODUCTS . " p,
                                               "
    . TABLE_PRODUCTS_DESCRIPTION . " pd,
                                               "
    . TABLE_PRODUCTS_TO_CATEGORIES . " p2c,
                                               "
    . TABLE_CATEGORIES_DESCRIPTION . " cd,
                                               "
    . TABLE_SPECIALS . " s
                                               where p.products_status = '1'                                                                                              
                                               and p.products_id = '"
    .(int)$_SESSION['tracking']['products_history'][$random_last_viewed]."'
                                               and pd.products_id = '"
    .(int)$_SESSION['tracking']['products_history'][$random_last_viewed]."'
                                               and p2c.products_id = '"
    .(int)$_SESSION['tracking']['products_history'][$random_last_viewed]."'
                                               and pd.language_id = '"
    . $_SESSION['languages_id'] . "'
                                               and cd.categories_id = p2c.categories_id
                                               "
    .$group_check."
                                               "
    .$fsk_lock."
                                               and cd.language_id = '"
    . $_SESSION['languages_id'] . "'";
    Dann wird das abgefragt:
    Code: PHP  [Auswählen]
            $random_query = xtDBquery($random_query);
            $random_product = xtc_db_fetch_array($random_query, true);
     
    Und das Array $random_product sollte das Datum enthalten.

    Lass mal ausgeben mit
    Code: PHP  [Auswählen]
    var_dump($random_product['expires_date']);
    damit wir sehen was da überhaupt drin ist .... ob das noch formatiert oder konvertiert werden muss.

    Teichbau

    • Fördermitglied
    • Beiträge: 385
    • Geschlecht:
    Re: Sonderangebot Ablaufdatum in Box "Zuletzt angesehen"
    Antwort #4 am: 15. Januar 2016, 17:30:21
    Den ersten Schritt habe ich gemacht.
    Ich habe jetzt das Problem den letzten Hinweis umszusetzen:
    Mehrere Versuche wie z.B.
    Code: PHP  [Auswählen]
            $random_query = xtDBquery var_dump($random_query['expires_date');
            $random_product = xtc_db_fetch_array($random_query, true);
    brachten kein Erfolg, die Box war weg.

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: Sonderangebot Ablaufdatum in Box "Zuletzt angesehen"
    Antwort #5 am: 15. Januar 2016, 17:55:43
    Hinter
    Code: PHP  [Auswählen]
    $random_product = xtc_db_fetch_array($random_query, true);
    das einbauen
    Code: PHP  [Auswählen]
    var_dump($random_product['expires_date']);

    Dann sollte auf dem Bildschirm so was ähnliches kommen:
    string(10)"15.02.2016"
    oder
    int"1656461323256"

    Fall A wäre ein echtes Datum, Fall B ein unix timestamp

    Egal was da rauskommt, ob das konvertiert oder formatiert werden muss, Du kanns schonmal weiter unten hinter
    Code: PHP  [Auswählen]
    $box_content = $product->buildDataArray($random_product);
    Das einbauen:
    Code: PHP  [Auswählen]
    $box_smarty->assign('EXPIRES_DATE', $random_product['expires_date']);

    Ab dann sollte die smarty Variable
    Code: XML  [Auswählen]
    $EXPIRES_DATE
    in der html Datei funktionieren

    Teichbau

    • Fördermitglied
    • Beiträge: 385
    • Geschlecht:
    Re: Sonderangebot Ablaufdatum in Box "Zuletzt angesehen"
    Antwort #6 am: 15. Januar 2016, 18:07:38
    So das habe ich soweit ausgeführt.
    Oben links ist der String zu sehen.

    Bitte helfe mir den nötigen Code in die die html-Datei zu setzen, das ist der Originale:

    Code: PHP  [Auswählen]
    {config_load file="$language/lang_$language.conf" section="boxes"}
    <div class="boxheadline">{#heading_last_viewed#}</div>
    <div class="boxcontent"><div class="boxBody">{if $box_content.PRODUCTS_IMAGE!=''}<div class="centerContent"><a href="{$box_content.PRODUCTS_LINK}"><img src="{$box_content.PRODUCTS_IMAGE}" alt="{$box_content.PRODUCTS_NAME}" class="productboximage"/></a></div>{/if}
            <div class="center"><a href="{$box_content.PRODUCTS_LINK}"><strong>{$box_content.PRODUCTS_NAME}</strong></a>
            <br />{$box_content.PRODUCTS_PRICE}
            {if $box_content.PRODUCTS_VPE}<br />{$box_content.PRODUCTS_VPE}{/if}
            <br />{$box_content.PRODUCTS_TAX_INFO}{$box_content.PRODUCTS_SHIPPING_LINK}
            <br />{#text_watch_category#}<a href="{$CATEGORY_LINK}">{$CATEGORY_NAME}</a>
            <br /><a href="{$MY_PERSONAL_PAGE}"><span>{#text_my_page#}</span></a></div></div></div>

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: Sonderangebot Ablaufdatum in Box "Zuletzt angesehen"
    Antwort #7 am: 15. Januar 2016, 18:11:55
    Oben links ist der String zu sehen.  :mhhh: Und was steht da drin? Ein vernünftiges Datum?

    In die html muss nur noch {$EXPIRES_DATE}. Und zwar da hin wo es hin soll.  :glaskugel:

    Die Zeile mit dem var_dump dann wieder löschen ...

    Teichbau

    • Fördermitglied
    • Beiträge: 385
    • Geschlecht:
    Re: Sonderangebot Ablaufdatum in Box "Zuletzt angesehen"
    Antwort #8 am: 15. Januar 2016, 18:21:00
    Hallo Bonsai,
    das haben "wir" ;-) geschafft.
    Vielen, vielen Dank das Du dich mit meinem Problem beschäftigt und es gelöst hast.
    Den Text und die Optik werde ich dann morgen bearbeiten.

    Angenehmes Wochenende.

    Gruß Torsten

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: Sonderangebot Ablaufdatum in Box "Zuletzt angesehen"
    Antwort #9 am: 15. Januar 2016, 18:29:17
    War eng mit der Zeit, muss jetzt heim :-D

    Versuche bitte ungefähr zu verstehen wie wir was warum gemacht haben, dann kommst Du das nächste mal eventuell selbst weiter oder kannst jemand anders weiterhelfen.

    Schönes WE!

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: Sonderangebot Ablaufdatum in Box "Zuletzt angesehen"
    Antwort #10 am: 15. Januar 2016, 18:33:27
    Das Schema ist IMMER

    Suche die passende php Datei zur html
    Suche da drin ob die Daten schon da sind, wenn nicht suche den DB Query und passe ihn an.

    Dann Daten der smarty assignen

    $irgendein_smarty->assign('NAME_DER_SMARTY_VARIABLE', $wert);

    und im Template
    {$NAME_DER_SMARTY_VARIABLE}

    Teichbau

    • Fördermitglied
    • Beiträge: 385
    • Geschlecht:
    Re: Sonderangebot Ablaufdatum in Box "Zuletzt angesehen"
    Antwort #11 am: 16. Januar 2016, 11:51:53
    Leider wird das Datum des Sonderangebotes von Artikelnr. PF2261 jetzt bei jedem "Last-View-Artikel" angezeigt. Muß da nicht noch irgend etwas mehr als {$EXPIRES_DATE}
    Code: PHP  [Auswählen]
    ...
    <br />{$box_content.PRODUCTS_PRICE}
            {if $box_content.PRODUCTS_VPE}<br />{$box_content.PRODUCTS_VPE}{/if}<br /> {$EXPIRES_DATE}
    ...
    hin?
    Irgend eine Abfrage nach... ich weiß es leider nicht.

    Ich bitte um Eure Hilfestellung.

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Sonderangebot Ablaufdatum in Box "Zuletzt angesehen"
    Antwort #12 am: 16. Januar 2016, 13:40:07
    Hallo Teichbau,

    also in der Datei 'last_viewed.php' hast wie von Bonsai vorgeschlagen dieses drin
    Code: PHP  [Auswählen]
    $box_smarty->assign('EXPIRES_DATE', $random_product['expires_date']);
    und in der Datei 'box_last_viewed.html' hast Du folgendes eingefügt, nehme ich an,
    Code: XML  [Auswählen]
    {if $EXPIRES_DATE}<br />{#text_expires_date#}{$EXPIRES_DATE|date_format:"%x"}{/if}

    dann sollte in der Datei 'last_viewed.php' der Query so aussehen.
    Code: PHP  [Auswählen]
            $random_query = "SELECT p.products_id,
                                    pd.products_name,
                                    p.products_price,
                                    p.products_tax_class_id,
                                    p.products_image,
                                    p2c.categories_id,
                                    p.products_vpe,
                                    p.products_vpe_status,
                                    p.products_vpe_value,
                                    cd.categories_name,
                                    s.expires_date
                               FROM "
    . TABLE_PRODUCTS . " p
                               JOIN "
    . TABLE_PRODUCTS_DESCRIPTION . " pd
                               JOIN "
    . TABLE_PRODUCTS_TO_CATEGORIES . " p2c
                               JOIN "
    . TABLE_CATEGORIES_DESCRIPTION . " cd
                          LEFT JOIN "
    . TABLE_SPECIALS . " s ON (p.products_id = s.products_id)
                              WHERE p.products_status = '1'                                                                                              
                                AND p.products_id = '"
    .(int)$_SESSION['tracking']['products_history'][$random_last_viewed]."'
                                AND pd.products_id = '"
    .(int)$_SESSION['tracking']['products_history'][$random_last_viewed]."'
                                AND p2c.products_id = '"
    .(int)$_SESSION['tracking']['products_history'][$random_last_viewed]."'                                        
                                AND pd.language_id = '"
    . $_SESSION['languages_id'] . "'
                                AND cd.categories_id = p2c.categories_id
                                    "
    .$group_check."
                                    "
    .$fsk_lock."
                                AND cd.language_id = '"
    . $_SESSION['languages_id'] . "'";
     

    Damit sollte dann immer das dem Produkt entsprechende Ablaufdatum, wenn vorhanden, angezeigt werden.

    Gruss
    Hanspeter

    Teichbau

    • Fördermitglied
    • Beiträge: 385
    • Geschlecht:
    Re: Sonderangebot Ablaufdatum in Box "Zuletzt angesehen"
    Antwort #13 am: 16. Januar 2016, 14:57:53
    Hallo Hanspeter,
    ja, dass war es. Auch Dir vielen Dank, dass Du drüber geschaut hast.

    Gruß Torsten

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Sonderangebot Ablaufdatum in Box "Zuletzt angesehen"
    Antwort #14 am: 16. Januar 2016, 17:13:44
    Hallo Torsten

    Nachtrag:

    den folgenden Code
    Code: PHP  [Auswählen]
    $box_smarty->assign('EXPIRES_DATE', $random_product['expires_date']);
    musst Du noch mit diesem ersetzen,
    Code: PHP  [Auswählen]
    $box_smarty->assign('EXPIRES_DATE', $random_product['expires_date'] != '0000-00-00 00:00:00' ? $random_product['expires_date'] : '');
    denn sonst kann es passieren, dass beim Ablaufdatum Quatsch raus kommt, wenn Du nämlich z.B. einem Sonderangebot zuerst ein Ablaufdatum vergibst und später das Datum wieder entfernst, es also zu einem dauerhaften Sonderangebot machst, steht in der Spalte 'expires_date ' der Tabelle 'specials'  '0000-00-00 00:00:00' drin und das führt dann zu besagtem Quatsch.

    Gruss
    Hanspeter
    32 Antworten
    21381 Aufrufe
    02. Februar 2023, 18:10:31 von noRiddle (revilonetz)
    5 Antworten
    4966 Aufrufe
    26. März 2012, 22:09:29 von csigg
    1 Antworten
    2712 Aufrufe
    28. Juni 2012, 23:29:28 von hedon02
    2 Antworten
    2086 Aufrufe
    06. Juli 2017, 19:17:34 von hzs123456