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: BETA MODUL: Merkzettel oder Merkliste

    WeXsler

    • Viel Schreiber
    • Beiträge: 536
    Re: BETA MODUL: Merkzettel oder Merkliste
    Antwort #135 am: 07. Januar 2015, 18:54:27
    Jepp, die ID 1 steht jetzt da! Und jetzt mit den Schnipseln

    products_vpe_status
    products_vpe_value
    products_vpe_id
    language_id
    products_vpe_name

    das exakt so nachbauen?

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: BETA MODUL: Merkzettel oder Merkliste
    Antwort #136 am: 08. Januar 2015, 09:22:53
    tabelle products
    products_vpe_status
    products_vpe_value

    nachbauen!

    Im Smarty kannst Du dann über den Status mit {if PRODUCTS_VPE_STATUS=1} den kompletten Block VPE ein oder ausschalten

    Dann musst Du noch die ID übersetzen. Hier brauchen wir SQL das in der Tabelle products_vpe den products_vpe_name ausliest mit der richtigen products_vpe_id und language_id

    Da hier offensichtlich keiner mitliest, der was von JOIN versteht, bauen wir einen zweiten Query .....
    Code: PHP  [Auswählen]
    $products_vpe_query = xtc_db_query("select products_vpe_value from " . TABLE_PRODUCTS_VPE where products_vpe_id = " . $products['products_vpe'] . " and language_id = '" . $_SESSION['languages_id'] . "'");

    Jetzt schau Dir mal an, wie die Tabelle products gelesen wird, eventuell kommt Du dann selbst drauf wie es weitergeht

    WeXsler

    • Viel Schreiber
    • Beiträge: 536
    Re: BETA MODUL: Merkzettel oder Merkliste
    Antwort #137 am: 08. Januar 2015, 14:59:59
    ok, ganz klar ist mir noch nicht wo die neue if-Abfrage hin muß und wo das neue query positioniert werden soll.

    Was ich bis jetzt - ich hoffe richtig - gemacht habe:

    In der /includes/classes/wish_list.php in der query ergänzt:
    p.products_vpe_status,
    p.products_vpe_value,

    Code: PHP  [Auswählen]
    $products_query = xtc_db_query("select p.products_id, pd.products_name, p.products_image, p.products_model, p.products_price, p.products_vpe, p.products_vpe_status, p.products_vpe_value, p.products_discount_allowed, p.products_weight, p.products_tax_class_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id='" . xtc_get_prid($products_id) . "' and pd.products_id = p.products_id and pd.language_id = '" . $_SESSION['languages_id'] . "'");

    ich vermute, dass hier auch der neue query irgendwo hin soll, ja? Aber an welche Stelle? Direkt in die nächste Zeile? Egal? Ganz wo anders?

    im array gleiche Datei habe ich dann ergänzt:
    products_vpe_status
    products_vpe_value

    Code: PHP  [Auswählen]
    $products_array[] = array('id' => $products_id,
            'name'                  => $products['products_name'],
            'model'                 => $products['products_model'],
            'image'                 => $products['products_image'],
            'price'                 => $products_price+$this->attributes_price($products_id),
            'vpe'                   => $products['products_vpe'],
            'products_vpe_status'   => $products['products_vpe_status'],
            'products_vpe_value'    => $products['products_vpe_value'],            
            'quantity'              => $this->contents[$products_id]['qty'],
            'weight'                => $products['products_weight'],
            'final_price'           => ($products_price+ $this->attributes_price($products_id)),
            'tax_class_id'          => $products['products_tax_class_id'],
            'attributes'            => $this->contents[$products_id]['attributes']);

    In der /includes/modules/order_details_wishlist.php (ist mit dieser Datei der smarty gemeint?) habe ich den array auch ergänzt mit:
    PRODUCTS_VPE_STATUS
    PRODUCTS_VPE_VALUE

    Code: PHP  [Auswählen]
    $module_content[$i]=array(
      'PRODUCTS_NAME'              => $products[$i]['name'].$mark_stock,
      'PRODUCTS_QTY'               => xtc_draw_input_field('cart_quantity[]', $products[$i]['quantity'], 'size="2"') . xtc_draw_hidden_field('products_id[]', $products[$i]['id']),
      'PRODUCTS_MODEL'             => $products[$i]['model'],
      'PRODUCTS_TAX'               => number_format($products[$i]['tax'], TAX_DECIMAL_PLACES),
      'PRODUCTS_IMAGE'             => $image,
      'IMAGE_ALT'                  => $products[$i]['name'],
      'BOX_DELETE'                 => xtc_draw_checkbox_field('cart_delete[]', $products[$i]['id']),
      'DELETE_ICON'                => '<a href="'. xtc_href_link(FILENAME_SHOPPING_CART, 'action=update_product_cart&products_id='.$products[$i]['id']). '">'.  xtc_image('templates/'.CURRENT_TEMPLATE.'/img/button_cart_delete.jpg', 'l&ouml;schen'). '</a>',
      'PRODUCTS_LINK'              => xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products[$i]['id']),
      'PRODUCTS_PRICE'             => $xtPrice->xtcFormat($products[$i]['price']*$products[$i]['quantity'],true),
      'PRODUCTS_VPE'               => $products[$i]['vpe'],
      'PRODUCTS_VPE_STATUS'        => $products[$i]['vpe_status'],
      'PRODUCTS_VPE_VALUE'         => $products[$i]['vpe_value'],          
      'PRODUCTS_SINGLE_PRICE'      => $xtPrice->xtcFormat($products[$i]['price'],true),
      'PRODUCTS_SHORT_DESCRIPTION' => strip_tags(xtc_get_short_description($products[$i]['id'])),
      'ATTRIBUTES' => '',
      'BUY_NOW' => '<br /><a href="' . xtc_href_link(basename($PHP_SELF), xtc_get_all_get_params(array('action')) . 'action=buy_now&BUYproducts_id=' . $products[$i]['id'], 'NONSSL') . '">' . xtc_image_button('button_buy_now_small.gif', TEXT_BUY . TEXT_NOW)
      );

    Aber wo muß jetzt dieser code hin?

    Code: PHP  [Auswählen]
    {if PRODUCTS_VPE_STATUS=1}

    In die wish_list_order_details.html? Wenn ja, etwa einfach so?

    Code: PHP  [Auswählen]
    <td valign="top" class="main"><strong><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a></strong>{$module_data.PRODUCTS_SINGLE_PRICE}<br />
            {if PRODUCTS_VPE_STATUS=1} {if $module_data.PRODUCTS_VPE}{$module_data.PRODUCTS_VPE}{/if}<br />
          {if $module_data.ATTRIBUTES!=''}

    Anschauen wie die Tabelle products gelesen wird? Du meinst im Ergebnis im Shop in der Merkeliste wie das dann aussieht?

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: BETA MODUL: Merkzettel oder Merkliste
    Antwort #138 am: 08. Januar 2015, 15:23:20
    Fang mal bitte an mitzudenken!

    Der Query sieht gut aus:
    Code: PHP  [Auswählen]
        $products_query = xtc_db_query("select p.products_id, pd.products_name, p.products_image, p.products_model, p.products_price, p.products_vpe, p.products_vpe_status, p.products_vpe_value, p.products_discount_allowed, p.products_weight, p.products_tax_class_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id='" . xtc_get_prid($products_id) . "' and pd.products_id = p.products_id and pd.language_id = '" . $_SESSION['languages_id'] . "'");

    Das ist der Teil an dem der SQL Query erzeugt wird und gibt ein MYSQL Objekt zurück namens $products_query
    Code: PHP  [Auswählen]
    $products_query = xtc_db_query( ....);
    ... der dann hier
    Code: PHP  [Auswählen]
    if ($products = xtc_db_fetch_array($products_query)) { ..... }
    ausgeführt wird. Das Füllt das Array $products mit dieser Abfrage. Bei jedem Durchlauf ein Artikel.

    Wenn du jetzt hier das Array $products_array füllst (das [] hinter dem Namen des arrays bedeutet zähle automatisch eins hoch, also erster Durchlauf füllt $products_array[0], der Zweite  $products_array[1] usw)
    Code: PHP  [Auswählen]
    $products_array[] = array('id' => $products_id,
            'name'                  => $products['products_name'],
            'model'                 => $products['products_model'],
            'image'                 => $products['products_image'],
            'price'                 => $products_price+$this->attributes_price($products_id),
            'vpe'                   => $products['products_vpe'],
            'products_vpe_status'   => $products['products_vpe_status'],
            'products_vpe_value'    => $products['products_vpe_value'],    

    dann brauchst du doch an der Stelle die Daten aus der Tabelle products_vpe ..... also käme der neue Query darüber. Du musst vorher den Inhalt von $products['products_vpe'] als ID, also z.B. 1 ersetzen mit dem tatsächlichen VPE, also z.B. Liter, Meter.

    Dann schau Dir mal bitte die drei letzten beiden Zeilen von dem Codeblock oben an! Und schau mal auf den Teil hier darunter, ob Dir das was auffällt? Was ist bei den Zeilen 2 und 3 anders als bei der ersten?
    Code: PHP  [Auswählen]
      'PRODUCTS_VPE'               => $products[$i]['vpe'],
      'PRODUCTS_VPE_STATUS'        => $products[$i]['vpe_status'],
      'PRODUCTS_VPE_VALUE'         => $products[$i]['vpe_value'],

    zum letzten Teil, fast richtig .... Auch hier bitte mitdenken! Das hat funktioniert .... achte auf die Syntax {if irgendwas} Mach sonstwas {/if}
     
    Code: PHP  [Auswählen]
     {if $module_data.PRODUCTS_VPE}{$module_data.PRODUCTS_VPE}{/if}<br />

    Was fehlt da denn jetzt noch?
    Code: PHP  [Auswählen]
    {if PRODUCTS_VPE_STATUS=1}{if $module_data.PRODUCTS_VPE}{$module_data.PRODUCTS_VPE}{/if}

    Ich helfe gerne, aber ich kaue nicht alles vor. Ich erwarte nicht, dass du hier alleine programmierst, aber ich erwarte, dass Du anhand eines Beispiels von Code zumindest versuchst logisch zu erfassen was der Code da macht. Dann kann man den nämlich umbauen ohne die Sprache zu kennen.
    Ich kann z.B. gar kein PEARL, habe aber schon Bugs in PEARL Scripten gefixt, indem ich mir einfach mal abgeguckt habe wie ungefähr die Syntax strukturiert ist und eine Ähnliche Codestelle als Vorlage nahm.

    Denke daran, der neue Query ist das MYSQL Objekt, hinter diesem muss dieser ausgeführt werden. Wie solch ein Query ausgeführt wird steht ja hier in diesem Post.

    WeXsler

    • Viel Schreiber
    • Beiträge: 536
    Re: BETA MODUL: Merkzettel oder Merkliste
    Antwort #139 am: 08. Januar 2015, 19:54:28
    Danke Dir! Gebe mir auch redlich Mühe das zu verstehen. So was war aber schon zu Schulzeiten nicht das wo ich mich gut rein denken konnte. Peinlich, war doch unser Gym seinerzeit das erste überhaupt in Deutschland mit Computer. Ein großer grauer Block, der in einem extra Raum stand und mit Pappkarten gefüttert wurde auf denen Binärcode mit Bleistift auszufüllen und zu einem Programm zusammenzufügen war ... . Mit geschweiften Klammern und Co. hatte ich nun bis vor Kurzem noch nie etwas zu tun - muß mich damit nun aber zwingend auseinandersetzen. Nicht dass ich nicht andere Baustellen hätte ... . Eigentlich zuviel für einen. Egal. ganz,ganz lieben Dank auf jeden Fall!

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: BETA MODUL: Merkzettel oder Merkliste
    Antwort #140 am: 09. Januar 2015, 09:27:58
    Versuch mal das:
    Code: PHP  [Auswählen]
          if ($products = xtc_db_fetch_array($products_query)) {
                $products_vpe_query = xtc_db_query("select products_vpe_value from " . TABLE_PRODUCTS_VPE . " where products_vpe_id = " . $products['products_vpe'] . " and language_id = '" . $_SESSION['languages_id'] . "'");
                    if ($products_vpe = xtc_db_fetch_array($products_vpe_query)) {
                            $products['products_vpe'] = $products_vpe['products_vpe_name'];
                    }
     

    dann sollte anstatt einer Zahl der Text für die vpe angezeigt werden.

    Der Smarty kann eigentlich so aussehen (eine IF abfrage sollte reichen):
    Code: PHP  [Auswählen]
        {if PRODUCTS_VPE_STATUS=1}{$module_data.PRODUCTS_VPE_VALUE} {$module_data.PRODUCTS_VPE}{/if}

    Dann noch die beiden letzten Zeilen hier korrigieren:
    Code: PHP  [Auswählen]
        $products_array[] = array('id' => $products_id,
                'name'                  => $products['products_name'],
                'model'                 => $products['products_model'],
                'image'                 => $products['products_image'],
                'price'                 => $products_price+$this->attributes_price($products_id),
                'vpe'                   => $products['products_vpe'],
                'products_vpe_status'   => $products['products_vpe_status'],
                'products_vpe_value'    => $products['products_vpe_value'],    
    Da steht 'vpe' und in den beiden letzten Zeilen hast Du "products_" vorne angehängt.

    Dann geht es hoffentlich.

    wandbilderxxl

    • Frisch an Board
    • Beiträge: 77
    Re: BETA MODUL: Merkzettel oder Merkliste
    Antwort #141 am: 12. März 2015, 12:33:58
    Hallo Zusammen,
    hab jetzt dreimal versucht das Modul einzubauen.

    und jedesmal passiert bei mir nichts(garnichts) wenn ich auf "Merkzettel"-Button klicke.

    Wenn ich mit der Maus über den Button gehe sehe ich in der Zielanzeige vom Browser "JavaScript:submit_to_wishlist()".
    Auf der Merkzettelseite wird auch kein Produkt ausgegeben.

    Leider weiss ich garnicht wo ich zum debuggen ansetzen soll?!

    Bin für jede Hilfe dankbar.

    WandbilderXXL

    Nils

    • Schreiberling
    • Beiträge: 422
    • Geschlecht:
    Re: BETA MODUL: Merkzettel oder Merkliste
    Antwort #142 am: 16. März 2015, 19:51:32
    Hi,

    wie könnte man es hinbekommen, dass auch Artikel mit Attributen auf dem Merkzettel eingetragen werden?
    Am besten wäre es noch, wenn neben jedem Attribut ein eigenes Symbol "add-to-Merkzettel" stehen würde. Wäre das möglich? Also könnt ich (als Code-Copy&Paster) das selbst hinbekommen oder müsste man dafür nen Profi engagieren?

    MFG
    Nils

    Nils

    • Schreiberling
    • Beiträge: 422
    • Geschlecht:
    Re: BETA MODUL: Merkzettel oder Merkliste
    Antwort #143 am: 16. März 2015, 20:09:33
    Hi,

    hab gleich noch eine Frage/Hinweis.

    Und zwar steht neben den Artikeln beim Merkzettel folgende Fehlermeldung:

    Warning: Illegal string offset 'PRICE' in /root/templates_c/%%A2^A21^A211FD7B%%wish_list_order_details.html.php on line 63

    Da die Datei wish_list_order_details neu ist und nicht verändert wird, scheint es meiner Meinung nach so zu sein, dass der Fehler im Modul liegt bzw. dass es nicht ganz geeignet ist für modified 1.0.6 SP2.
    Oder lieg ich falsch?

    MFG
    Nils

    Nils

    • Schreiberling
    • Beiträge: 422
    • Geschlecht:
    Re: BETA MODUL: Merkzettel oder Merkliste
    Antwort #144 am: 16. März 2015, 20:23:28
    Habe einen weiteren kleinen Fehler entdeckt.
    Wenn man aus dem Merkzettel einen Artikel in den Warenkorb übernimmt, dann wird unabhängig von der eingegebenen Anzahl nur die Stückzahl 1 dem Warenkorb hinzugefügt.

    Zitat
    Der Grund ist, daß die Menge mit dem BUYproducts-Aufruf nicht übergeben wird

    web0null

    • Experte
    • Beiträge: 1.998
    Re: BETA MODUL: Merkzettel oder Merkliste
    Antwort #145 am: 17. März 2015, 03:20:59
    Zitat
    Also könnt ich (als Code-Copy&Paster) das selbst hinbekommen
    Könntest du sicher.
    Wenn du das
    Code: PHP  [Auswählen]
    Warning: Illegal string offset 'PRICE' in /root/templates_c/%%A2^A21^A211FD7B%%wish_list_order_details.html.php on line 63
    und das
    Zitat
    Der Grund ist, daß die Menge mit dem BUYproducts-Aufruf nicht übergeben wird

    selbst lösen kannst, und dann noch weißt welchen Code du eigentlich kopieren müsstest.
    Wenn nicht..., wäre ein Dienstleister besser.

    Kleiner Hinweis:
    Das Modul "Komfortabler Warenkorb" würde das notwendige zum Kopieren besitzen.

    Gruß

    Nils

    • Schreiberling
    • Beiträge: 422
    • Geschlecht:
    Re: BETA MODUL: Merkzettel oder Merkliste
    Antwort #146 am: 18. März 2015, 20:16:18
    Hi web0null,

    dann werd ich das mal in Angriff nehmen  :-D

    Habe da gleich noch eine mir überhaupt nicht verständliche Fehlermeldung entdeckt in Bezug auf dieses Modul.
    Die Fehlermeldung tritt auf, wenn ich den Cache, den Template-Cache und die Chronik des Browsers lösche und mich dann als Admin einloggen will. Dann erscheint folgende Fehlermeldung:

    Zitat
    1146 - Table 'usr_web336_25.TABLE_CUSTOMERS_WISHLIST' doesn't exist

    select products_id, customers_basket_quantity from TABLE_CUSTOMERS_WISHLIST where customers_id = '1'

    [MOD SQL Error]

    Die Tabelle existiert aber auf jeden Fall!! Ist das wieder irgendsoein Cache_user_only-artiges Problem? Könntest du mir die Lösung oder eine Hilfestellung zu dem Problem liefern?

    Sobald ich übrigens einmal F5 (also Refresh des Browser) anklicke/durchführe, verschwindet die Fehlermeldung und alles läuft wieder normal.

    MFG
    Nils

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: BETA MODUL: Merkzettel oder Merkliste
    Antwort #147 am: 19. März 2015, 14:41:56
    steht auch in der includes/database_tables.php so was?
    Code: PHP  [Auswählen]
    define('TABLE_CUSTOMERS_WISHLIST', 'richtiger_name_der_tabelle');

    Nils

    • Schreiberling
    • Beiträge: 422
    • Geschlecht:
    Re: BETA MODUL: Merkzettel oder Merkliste
    Antwort #148 am: 20. März 2015, 19:46:16
    @ Bonsai

    Ich habe den Fehler beseitigen können, indem ich einfach nochmal die Datenbank-Einträge gelöscht und die Anpassungen bzw. den Modul-Einbau erneut durchgeführt habe. Den Fehler kann ich leider nicht rekonstruieren. Aber es läuft. Vielen Dank trotzdem!

    MFG
    Nils

    Nils

    • Schreiberling
    • Beiträge: 422
    • Geschlecht:
    Re: BETA MODUL: Merkzettel oder Merkliste
    Antwort #149 am: 20. April 2015, 11:51:27
    Hallo,

    @web0null

    Die beiden Probleme habe ich lösen können.
    Jedoch hilft mir dein Tipp:

    Zitat
    Kleiner Hinweis:
    Das Modul "Komfortabler Warenkorb" würde das notwendige zum Kopieren besitzen.

    nicht weiter. Hättest du vielleicht noch einen kleinen Tipp?

    Außerdem habe ich noch ein anderes Problem entdeckt. Folgendes:
    Wenn der Merkzettel leer ist und ich einen Artikel hinzufügen möchte, passiert Folgendes:

    1. Versuch → Meldung "Ihr Merkzettel enthält keine Artikel" erscheint
    2. Versuch → Meldung "Ihr Warenkorb ist leer" erscheint
    3. Versuch → es funktioniert so wie es soll

    Ab diesem Zeitpunkt funktioniert es für jeden weiteren Artikel, den man zur Merkliste hinzufügen möchte.

    Hat dafür vielleicht auch jemand eine Idee?

    MFG
    Nils
    0 Antworten
    1679 Aufrufe
    08. März 2017, 09:06:14 von Buggyboy
    3 Antworten
    4099 Aufrufe
    26. Juni 2013, 12:54:28 von Koala
    5 Antworten
    5075 Aufrufe
    06. August 2011, 08:41:15 von franky_n
               
    anything