Shop Hosting
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: Artikelbild auf Lieferschein

    Webpfleger

    • Neu im Forum
    • Beiträge: 13
    Re: Artikelbild auf Lieferschein
    Antwort #15 am: 17. Januar 2014, 14:28:10
    Hallo noRiddle,

    Zur Shopversion:

    modified eCommerce Shopssoftware v1.06 rev 4356 dated: 2013-01-23
    Datenbank Version: "MOD_1.0.6.0"

    In der Datei /admin/print_packingslip.php steht folgendes:

    Code: PHP  [Auswählen]
    <?php
      /* -----------------------------------------------------------------------------------------
       $Id: print_packingslip.php 3419 2012-08-11 12:17:52Z web28 $

       modified eCommerce Shopsoftware
       http://www.modified-shop.org

       Copyright (c) 2009 - 2013 [www.modified-shop.org]
       -----------------------------------------------------------------------------------------
       based on:
       (c) 2003 nextcommerce (print_order.php,v 1.1 2003/08/19); www.nextcommerce.org
       (c) 2006 XT-Commerce (print_packingslip.php 899 2005-04-29)

       Released under the GNU General Public License
       ---------------------------------------------------------------------------------------*/


      require('includes/application_top.php');
      // include needed functions
      require_once(DIR_FS_INC .'xtc_get_attributes_model.inc.php');
      require_once(DIR_FS_INC .'xtc_not_null.inc.php');
      require_once(DIR_FS_INC .'xtc_format_price_order.inc.php');

      $smarty = new Smarty;

      // BOF - DokuMan - 2011-12-08 - get store name for display in letter box of packing slip
      $query_store_name=xtc_db_query("-- admin/print_packingslip.php
                                      SELECT configuration_value AS store_name
                                        FROM "
    . TABLE_CONFIGURATION . "
                                       WHERE configuration_key='STORE_NAME'
                                       LIMIT 1"
    );

      while($row = xtc_db_fetch_array($query_store_name)){
        $smarty->assign('store_name', $row['store_name']);
      }
      // EOF - DokuMan - 2011-12-08 - get store name for display in letter box of packing slip

      // get order data
      include(DIR_WS_CLASSES . 'order.php');
      $order = new order((int)$_GET['oID']);

      $smarty->assign('address_label_customer',xtc_address_format($order->customer['format_id'], $order->customer, 1, '', '<br />'));
      $smarty->assign('address_label_shipping',xtc_address_format($order->delivery['format_id'], $order->delivery, 1, '', '<br />'));
      $smarty->assign('address_label_payment',xtc_address_format($order->billing['format_id'], $order->billing, 1, '', '<br />'));
      $smarty->assign('csID',$order->customer['csID']);

      // get products data
      include_once(DIR_FS_CATALOG.DIR_WS_CLASSES .'xtcPrice.php');
      $xtPrice = new xtcPrice($order->info['currency'], $order->info['status']);

      $order_total = $order->getTotalData($order->info['order_id']);
      $order_data = $order->getOrderData($order->info['order_id']);

      $smarty->assign('order_data', $order_data);
      $smarty->assign('order_total', $order_total['data']);

      // assign language to template for caching
      $languages_query = xtc_db_query("select code, language_charset from " . TABLE_LANGUAGES . " WHERE directory ='". $order->info['language'] ."'");
      $langcode = xtc_db_fetch_array($languages_query);
      $smarty->assign('langcode', $langcode['code']);
      $smarty->assign('charset', $langcode['language_charset']);
      $smarty->assign('language', $order->info['language']);

      $smarty->assign('logo_path',HTTP_SERVER  . DIR_WS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/img/');
      $smarty->assign('oID',$order->info['order_id']);
      if ($order->info['payment_method']!='' && $order->info['payment_method']!='no_payment') {
        include(DIR_FS_CATALOG.'lang/'.$_SESSION['language'].'/modules/payment/'.$order->info['payment_method'].'.php');
        $payment_method=constant(strtoupper('MODULE_PAYMENT_'.$order->info['payment_method'].'_TEXT_TITLE'));
        $smarty->assign('PAYMENT_METHOD',$payment_method);
      }
      $smarty->assign('COMMENTS', $order->info['comments']);
      $smarty->assign('DATE',xtc_date_long($order->info['date_purchased']));

      // dont allow cache
      $smarty->caching = false;
      $smarty->template_dir=DIR_FS_CATALOG.'templates';
      $smarty->compile_dir=DIR_FS_CATALOG.'templates_c';
      $smarty->config_dir=DIR_FS_CATALOG.'lang';
      $smarty->display(CURRENT_TEMPLATE . '/admin/print_packingslip.html');
    ?>

    Viele Grüße

    Bastian

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Re: Artikelbild auf Lieferschein
    Antwort #16 am: 17. Januar 2014, 14:34:29
    Das
    Code: PHP  [Auswählen]
    $order_data

    wird innerhalb der Funktion getOrderData() in der includes/classes/order.php gebildet und dort steht ganz klar auch 'PRODUCTS_IMAGE' drin.

    Gruß
    Ronny

    Webpfleger

    • Neu im Forum
    • Beiträge: 13
    Re: Artikelbild auf Lieferschein
    Antwort #17 am: 17. Januar 2014, 14:52:29
    Hallo,

    ich kann aufgrund meiner niedrigen PHP Kenntnisse nur Vermutungen anstellen, aber in der includes/classes/order.php
    habe ich folgendes gefunden:

    Code: PHP  [Auswählen]
        function getOrderData($oID) {
          global $xtPrice;

          require_once(DIR_FS_INC . 'xtc_get_attributes_model.inc.php');
          require_once(DIR_FS_INC . 'xtc_get_short_description.inc.php');
          require_once(DIR_FS_INC . 'xtc_get_products_image.inc.php');

          $order_lang_query = xtc_db_query("SELECT languages_id
                                        FROM "
    .TABLE_LANGUAGES."
                                       WHERE directory = '"
    .$this->info['language']."'");
          $order_lang_array = xtc_db_fetch_array($order_lang_query);
          $order_lang_id = $order_lang_array['languages_id'];

          $order_query = "SELECT *
                            FROM "
    .TABLE_ORDERS_PRODUCTS."
                           WHERE orders_id='"
    .(int) $oID."'";
          $order_data = array ();
          $order_query = xtc_db_query($order_query);
          while ($order_data_values = xtc_db_fetch_array($order_query)) {
            $attributes_query = "SELECT *
                                   FROM "
    .TABLE_ORDERS_PRODUCTS_ATTRIBUTES."
                                  WHERE orders_products_id='"
    .$order_data_values['orders_products_id']."'
                               ORDER BY orders_products_attributes_id"
    ;
            $attributes_data = '';
            $attributes_model = '';
            $attributes_query = xtc_db_query($attributes_query);
            while ($attributes_data_values = xtc_db_fetch_array($attributes_query)) {
              $attributes_data .= '<br />'.$attributes_data_values['products_options'].':'.$attributes_data_values['products_options_values'];
              $attributes_model .= '<br />'.xtc_get_attributes_model($order_data_values['products_id'], $attributes_data_values['products_options_values'],$attributes_data_values['products_options'],$order_lang_id);
            }

            $short_description = CHECKOUT_USE_PRODUCTS_SHORT_DESCRIPTION == 'true' ? xtc_get_short_description($order_data_values['products_id'],$order_lang_id) : '';
            //using short description  if order description is not defined or empty
            $order_description = '';
            if (array_key_exists('products_order_description',$order_data_values) && !empty($order_data_values['products_order_description'])) {
              $order_description = nl2br($order_data_values['products_order_description']);
            }
            $order_description = !empty($order_description) ? $order_description : $short_description;
            $order_data[] = array ('PRODUCTS_ID' => $order_data_values['products_id'],
                                   'PRODUCTS_MODEL' => $order_data_values['products_model'],
                                   'PRODUCTS_NAME' => $order_data_values['products_name'],
                                   'PRODUCTS_IMAGE' => xtc_get_products_image($order_data_values['products_id']),
                                   'PRODUCTS_ORDER_DESCRIPTION' => $order_description,
                                   'PRODUCTS_SHORT_DESCRIPTION' => $short_description,
                                   'PRODUCTS_SHIPPING_TIME' => $order_data_values['products_shipping_time'],
                                   'PRODUCTS_ATTRIBUTES' => $attributes_data,
                                   'PRODUCTS_ATTRIBUTES_MODEL' => $attributes_model,
                                   'PRODUCTS_PRICE' => $xtPrice->xtcFormat($order_data_values['final_price'], true),
                                   'PRODUCTS_SINGLE_PRICE' => $xtPrice->xtcFormat($order_data_values['final_price']/$order_data_values['products_quantity'], true),
                                   'PRODUCTS_TAX' => ($order_data_values['products_tax'] > 0.00) ? number_format($order_data_values['products_tax'], TAX_DECIMAL_PLACES):0,
                                   //'PRODUCTS_VPE' => $order_data_values['products_order_vpe'],
                                   'PRODUCTS_QTY' => $order_data_values['products_quantity']
                                  );
          }
          return $order_data;
        }

     
    Ich nehme an das ist die betreffende Funktion? Ist diese fehlerhaft?

    Viele Grüße

    Bastian

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Re: Artikelbild auf Lieferschein
    Antwort #18 am: 17. Januar 2014, 15:09:44
    Nein, alles in Ordnung.
    Da steht's doch:
    Code: PHP  [Auswählen]
    'PRODUCTS_IMAGE' => xtc_get_products_image($order_data_values['products_id']),

    Es muß also funktionieren wie die beiden dir gepostet haben.
    In dem Array steht nur der Bildname, man muß also den Pfad mitangeben in der Template-Datei.

    Gruß,
    noRiddle

    web28

    • modified Team
    • Beiträge: 9.404
    Re: Artikelbild auf Lieferschein
    Antwort #19 am: 17. Januar 2014, 16:14:40
    In der print_packingslip.html

    Code: PHP  [Auswählen]
    <img src="{$smarty.const.DIR_FS_CATALOG_THUMBNAIL_IMAGES}{$order_values.PRODUCTS_IMAGE}" border="0">

    Webpfleger

    • Neu im Forum
    • Beiträge: 13
    Re: Artikelbild auf Lieferschein
    Antwort #20 am: 17. Januar 2014, 16:20:30
    Hallo,

    dann stimmt etwas anderes nicht.

    Ich habe nochmals alles eingefügt und überprüft wie von Euch beschrieben aber der Bildname wird nicht ausgegeben und somit auch kein Bild angezeigt.

    Also ist nach meinem Verständnis schon in dem Array kein Bildname vorhanden, oder? Hängen weitere Dateien zusammen?
    In der print_packingslip.html

    @web28

    Code: PHP  [Auswählen]
    <img src="{$smarty.const.DIR_FS_CATALOG_THUMBNAIL_IMAGES}{$order_values.PRODUCTS_IMAGE}" border="0">
    Funktioniert leider auch nicht :(

    Viele Grüße

    Bastian

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Re: Artikelbild auf Lieferschein
    Antwort #21 am: 17. Januar 2014, 16:22:18
    Setzt doch mal in die print_packing_slip.html ein
    Code: PHP  [Auswählen]
    {debug}
    ganz oben rein und rufe dann im Backend einen Lieferschein auf.

    Dort siehst du, ob das Bild überhaupt an Smarty übergeben wird.

    Gruß
    Ronny

    Webpfleger

    • Neu im Forum
    • Beiträge: 13
    Re: Artikelbild auf Lieferschein
    Antwort #22 am: 17. Januar 2014, 16:38:12
    Hallo,

    die Smarty Debug Console bringt mir folgendes:

    Code: PHP  [Auswählen]
    {$order_data}   Array (1)
    0 => Array (13)
      PRODUCTS_ID => "947"
      PRODUCTS_MODEL => "00999"
      PRODUCTS_NAME => "5 ltr. Eichenfass, innen roh, Böttche..."
      PRODUCTS_IMAGE => "947_0.JPG"
      PRODUCTS_ORDER_DESCRIPTION => ""
      PRODUCTS_SHORT_DESCRIPTION => ""
      PRODUCTS_SHIPPING_TIME => "3-4 Tage"
      PRODUCTS_ATTRIBUTES => ""
      PRODUCTS_ATTRIBUTES_MODEL => ""
      PRODUCTS_PRICE => " 69,00 EUR"
      PRODUCTS_SINGLE_PRICE => " 69,00 EUR"
      PRODUCTS_TAX => "19"
      PRODUCTS_QTY => "1"

    "PRODUCTS_IMAGE" ist mit dem korrekten Bild gefüllt.
    Code: PHP  [Auswählen]
     PRODUCTS_IMAGE => "947_0.JPG"

    Der ausgegeben Code des Lieferscheins sieht so aus:

    Code: PHP  [Auswählen]
    <div align="center">

        <img border="0" src="/kunden/homepages/4/d15616318/htdocs/Shop/images/product_images/thumbnail_images/"></img>

    </div>

    Viele Grüße

    Bastian

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Re: Artikelbild auf Lieferschein
    Antwort #23 am: 17. Januar 2014, 16:52:42
    Lade bitte mal deine print_packingslip.html als .txt Datei als Anhang hier hoch.

    Denn laut Smarty ist ja alles richtig, wie bisher Matt, noRiddle und ich gesagt haben.

    Gruß
    Ronny

    Webpfleger

    • Neu im Forum
    • Beiträge: 13
    Re: Artikelbild auf Lieferschein
    Antwort #24 am: 17. Januar 2014, 16:56:59
    Hallo,

    anbei die print_packingslip.html als .txt

    Webpfleger

    • Neu im Forum
    • Beiträge: 13
    Re: Artikelbild auf Lieferschein
    Antwort #25 am: 17. Januar 2014, 17:05:02
    Hallo,

    Asche auf mein Haupt...habe eben selber gemerkt das der Code außerhalb der foreach Schleife eingefügt war  :datz:

    Werde noch etwas testen, aber ich glaube es funktioniert jetzt wie gewollt.

    1000 Dank für den tollen Support, könnt jederzeit Mal auf einen Kaffee vorbeikommen wenn Ihr in Leipig sein solltet ;)

    Bastian

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Re: Artikelbild auf Lieferschein
    Antwort #26 am: 17. Januar 2014, 17:08:21
    Hier nochmals die überarbeitete Datei.

    Wieso hast du für den Bildpfad nicht einfach das genommen, was Matt und ich geschrieben haben? Dein
    Code: PHP  [Auswählen]
    {$smarty.const.DIR_FS_CATALOG_THUMBNAIL_IMAGES}
    fügt ja auch den kompletten Serverpfad ein, womit das Bild natürlich auch nicht aufgerufen werden kann.

    Die überarbeitete Datei funktioniert bestens, habe sie eben im eigenen Shop getestet.

    Gruß
    Ronny

    Matt

    • Experte
    • Beiträge: 4.241
    Re: Artikelbild auf Lieferschein
    Antwort #27 am: 17. Januar 2014, 17:27:01
    Hier hattest du es noch richtig :) Aber das wichtigste ist ja, dass es funktioniert.

    @Ronny: Der Vorschlag mit der Konstanten kam von web28. Ist vielleicht auf die sauberere Variante.

    Webpfleger

    • Neu im Forum
    • Beiträge: 13
    Re: Artikelbild auf Lieferschein
    Antwort #28 am: 17. Januar 2014, 17:35:14
    Hallo,

    Hier hattest du es noch richtig :) Aber das wichtigste ist ja, dass es funktioniert.

    Ja da war der Code an der richtigen Stelle eingefügt, aber irgendwas hat noch nicht funktioniert. Hab ja dann noch etwas rum probiert mit Eurer Hilfe und den Code dabei irgendwie falsch platziert  :daumen-dreh:

    Es funktioniert jetzt alles. Auch wenn mehrere Produkte auf dem Lieferschein stehen. Alles Top! Nochmals vielen Dank für Eure Hilfe!

    Viele Grüße

    Bastian

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Re: Artikelbild auf Lieferschein
    Antwort #29 am: 17. Januar 2014, 17:57:34
    Dann muss es aber
    Code: PHP  [Auswählen]
    <img src="{$smarty.const.DIR_WS_CATALOG_THUMBNAIL_IMAGES}{$order_values.PRODUCTS_IMAGE}" alt="{$order_values.PRODUCTS_NAME}" />
    lauten, weil ansonsten der komplette Serverpfad ausgegeben wird.

    Gruß
    Ronny
    1 Antworten
    2629 Aufrufe
    24. September 2012, 12:10:33 von jannemann
    8 Antworten
    3608 Aufrufe
    29. November 2020, 07:29:54 von demoncleaner
    4 Antworten
    4262 Aufrufe
    23. April 2010, 13:29:44 von Tomcraft
    34 Antworten
    1541 Aufrufe
    11. Dezember 2023, 13:05:43 von trekstor