Eigene Artikelfelder im Adminbereich 2.7.x

Thema wurde von javierfrangenheim, 15. Februar 2016 erstellt.

  1. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    26. April 2011
    Beiträge:
    993
    Danke erhalten:
    208
    Danke vergeben:
    100
    bis zur Version 3.0 funktionierte auch noch der Upload von Dateien via xtc_try_upload ...

    In der 3.1.x gehen Bilddateien... nur leider keine pdf und txt Dateien mehr. Kommt immer folgende Fehlermeldung:

    "Sie haben ungültige Bilddateien ausgewählt. Bitte überprüfen Sie die Auswahl."

    Die admin/includes/gm/classes/GMProductUpload.php habe ich um application/pdf erweitert ... nur mag er das immer noch nicht

    Einer einen Gedanken?
     
  2. Cyrus (LeGong)

    Cyrus (LeGong) Erfahrener Benutzer

    Registriert seit:
    21. Dezember 2011
    Beiträge:
    1.432
    Danke erhalten:
    342
    Danke vergeben:
    176
    Hallo Rene,
    sorry, es ist mir überhaupt nicht klar was du ganz genau machen möchtest?
    Kannst du bitte dein Vorhaben genauer beschreiben?
     
  3. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    26. April 2011
    Beiträge:
    993
    Danke erhalten:
    208
    Danke vergeben:
    100
    was Ich machen will? In der Artikel bearbeitung eine Datei über ein Extrafeld hochladen, welche kein Bild ist. Jedoch scheitere ich an der Prüfung ...
     
  4. sabrimohamed

    sabrimohamed Mitglied

    Registriert seit:
    29. Januar 2014
    Beiträge:
    13
    Danke erhalten:
    0
    Hallo an alle
    mit diesem code
    PHP:
    <?php
    /**
    * Class AddEkpField
    *
    * @category   System
    * @package    Product
    * @subpackage Storages
    *          
    * @see ProductAddonValueStorage         
    */
    class AddExtrafelderExtender extends AddExtrafelderExtender_parent{
        
    /**
         * Maps ekp addon value to einkaufspreis field in products table
         *
         * @return array
         */
        
    protected function _getExternalFieldsArray()
        {
         
         
    $externalFields parent::_getExternalFieldsArray();

         
    $externalFields['products_description']['fields']['products_short_description_2'] = 'ekp';
         
    $externalFields['products']['fields']['einkaufspreis_1'] = 'ekp_1';
         
    $externalFields['products']['fields']['einkaufspreis_2'] = 'ekp_2';
         
    $externalFields['products']['fields']['einkaufspreis_3'] = 'ekp_3';

            return 
    $externalFields;
        }

    }
    eror
    Query error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '= 677' at line 3 - Invalid query: SELECT `products_short_description_2` FROM `products_description` WHERE = 677
    USER ERROR(256): "SQL Error"
     
  5. andreas_knauschner

    andreas_knauschner Aktives Mitglied

    Registriert seit:
    26. Mai 2016
    Beiträge:
    37
    Danke erhalten:
    0
    Hallo,

    ich hab ein zusätzliches Datenbankfeld nach dem Beispieldaten von Cyrus angelegt. Im Backend bei den Artikeln klappt soweit alles.
    Wie jedoch erreiche ich die Ausgabe im Frontend des Shops auf der Start-, den Kategorieseiten sowie in der Artikelseite rechts in dem Sticky Container?

    Besten Dank schon mal im voraus
    Steffen
     
  6. fpo

    fpo Mitglied

    Registriert seit:
    24. Mai 2017
    Beiträge:
    8
    Danke erhalten:
    1
    Hallo Wissende,

    habe jetzt seit einigen Tagen den Shop 3.4.1 zur Prüfung in der Mache. Verlockend diese Extra Felder. Konnte das auch nach den Anleitungen von Cyrus halbwegs umsetzen.

    Vielen Dank auch an dieser Stelle insbesondere an Cyrus.

    Jetzt zu meinem Problem bei dem ich mir die Karten lege. Muß zugeben durch das System von Gambio steige ich überhaupt nicht durch.

    Was habe ich getan:

    language Datein wie in der Anleitung beschrieben angepasst.

    Folgende Klassen im Ordner overloads überladen

    AdminCategoriesExtenderComponent/StoreExtrafelderExtender.inc.php
    AdminEditProductExtenderComponent/ExtrafelderFormExtender.inc.php
    categories/extrafield_categories.inc.php
    ProductAddonValueStorage/AddExtrafields.inc.php

    Soweit so gut. Ich kann im Backend das entsprechende Extrafeld sehen, bearbeiten, speichern. Also eigentlich alles chic.

    Jetzt zu dem Part wo ich absolut nicht durchsteige. Um jetzt dieses Extrafeld im Frontend sichtbar zu machen. Und ich würde das gern in der Detail-, Listen- und Kachelansicht machen sind ja zusätzliche Anpassungen nötig.

    Als ersten Schritt habe ich ProductInfoContentView überladen.
    ProductInfoContentView/extrafield_ProductInfoContentView.inc.php

    Das hatte zur Folge das ich schon mal in der DetailAnsicht eine Warnung bekam.

    Code:
    WARNING(2): "Declaration of extrafield_ProductInfoContentView::get_html($p_coo_product, $p_current_category_id = 0) should be compatible with ProductInfoContentView::get_html()"
    WARNING(2): "Missing argument 1 for extrafield_ProductInfoContentView::get_html(), called in /Applications/XAMPP/xamppfiles/htdocs/product_info.php on line 101 and defined"
    Weshalb ich mal denke ich mache hier einen grundlegenden Fehler.
     
  7. Cyrus (LeGong)

    Cyrus (LeGong) Erfahrener Benutzer

    Registriert seit:
    21. Dezember 2011
    Beiträge:
    1.432
    Danke erhalten:
    342
    Danke vergeben:
    176
    Hallo fpo,
    kannst du bitte den Code für die Datei "extrafield_ProductInfoContenView.inc.php" hier als Code öffentlichen, damit man sieht wo der Fehler ist.
     
  8. fpo

    fpo Mitglied

    Registriert seit:
    24. Mai 2017
    Beiträge:
    8
    Danke erhalten:
    1
    Hallo Cyrus,

    vielen Dank das Du dich meines Problems animmst. Hier der Code:

    Code:
    <?php
    
        class extrafield_ProductInfoContentView extends extrafield_ProductInfoContentView_parent {
            function get_html($p_coo_product, $p_current_category_id = 0) {
                // BOF products_extrafield
                $this->set_content_data('PRODUCTS_GEBINDE', $p_coo_product->data['products_gebinde']);
                // EOF products_extrafield
                return parent::get_html($p_coo_product, $p_current_category_id);
                }
            }
          
    ?>
    Viele Grüße Frank
     
  9. Cyrus (LeGong)

    Cyrus (LeGong) Erfahrener Benutzer

    Registriert seit:
    21. Dezember 2011
    Beiträge:
    1.432
    Danke erhalten:
    342
    Danke vergeben:
    176
    PHP:
    <?php
    /* --------------------------------------------------------------
       extrafields_ProductsInfoContentView.inc.php 2015.06.24 Cyrus
       Micronix TCT
       info@micronix.de
       Released under the GNU General Public License (Version 2)
       [http://www.gnu.org/licenses/gpl-2.0.html]
       
       based on:
       main.php
       Gambio OHG
       http://www.gambio.de
       Copyright (c) 2008 Gambio OHG
       Released under the GNU General Public License (Version 2)
       [http://www.gnu.org/licenses/gpl-2.0.html]
       --------------------------------------------------------------


       based on:
       (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
       (c) 2002-2003 osCommerce(Coding Standards); www.oscommerce.com
       (c) 2005 XT-Commerce - community made shopping http://www.xt-commerce.com ($Id: main.php 1286 2005-10-07 10:10:18Z mz $)

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

     
    class extrafield_ProductInfoContentView extends extrafield_ProductInfoContentView_parent
     
    {
       function 
    _assignProductData()
       {       
           
    $this->_assignExtrafields();
                 
           return 
    parent::_assignProductData();
       }
       
       
    // assign new fields to the products content view
       
    public function _assignExtrafields()
      {
         
          
    // BOF products_extrafield
           
    $this->set_content_data('PRODUCTS_GEBINDE'$p_coo_product->data['products_gebinde']);
           
    // EOF products_extrafield
       
    }
    }
    ?>
     
  10. fpo

    fpo Mitglied

    Registriert seit:
    24. Mai 2017
    Beiträge:
    8
    Danke erhalten:
    1
    Herzlichen Dank.
    Fehlermeldung ist weg.

    Darf ich Dich aber trotzdem noch belöffeln wie ich dieses Feld jetzt in die ensprechenden Anzeigen einbauen kann. Bis jetzt habe ich das so verstanden, das um dieses Feld jetzt beispielsweise in der Listenansicht zur Anzeige zu bringen folgende Änderung an der product-USERMOD.html nötig wären.

    Code:
    <!-- Extrafelder Start -->
    {if $PRODUCTS_GEBINDE}
    <div class="extra">                                
       {$PRODUCTS_GEBINDE}
    </div>
    {/if}
    <!-- Extrafelder Ende -->
    
    Leider geht das so wie ich es ausgeführt habe nicht.

    Gruß Frank
     
  11. Cyrus (LeGong)

    Cyrus (LeGong) Erfahrener Benutzer

    Registriert seit:
    21. Dezember 2011
    Beiträge:
    1.432
    Danke erhalten:
    342
    Danke vergeben:
    176
    Hallo fpo,
    wo genau soll der Extrafeld auf Artikeldetailseite erscheinen?
     
  12. fpo

    fpo Mitglied

    Registriert seit:
    24. Mai 2017
    Beiträge:
    8
    Danke erhalten:
    1
    Hallo,

    die Anzeige in den Artikeldetails habe ich mit folgender Änderung hinbekommen. Im Überladen der ProductInfoContentView folgende Zeile eingetragen:

    Code:
    $this->set_content_data('PRODUCTS_GEBINDE', $this->product->data['products_gebinde']);  
    anstatt:

    Code:
       $this->set_content_data('PRODUCTS_GEBINDE', $p_coo_product->data['products_gebinde']);
    
    Entsprechendes template angepasst - spielt :)

    Jetzt stehe ich allerdings vor der nächsten Herausforderung. Dieses Feld soll auch in der Listen-/Kachelanzeige angezeigt werden. Bin leider noch ein blutiger Anfänger und durch die Versionsvielfalt und die damit zusammenhängenden Informationen hier im Forum etwas verwirrt.

    Nach meinem Verständnis sollte dies möglich sein durch Überladen zweier Klassen. ProductListingContentControl und ProductListingContentView. Berichtigt mich gern wenn ich etwas falsch interpretiere.

    In der Klasse ProductListingContentControl werden die Daten definiert/selektiert. Hier konnte ich durch Überladung zwar das Feld abrufen. Bekomme aber den Weg zum template nicht hin. Hier mal die entsprechende Überladung für ProductListingContentControl:

    Code:
    <?php
    
    class extrafield_ProductListingContentControl extends extrafield_ProductListingContentControl_parent
    {
    
      public function getSelectFields()
      {
        $select_fields = array('p.products_gebinde');
        return $select_fields;
      }
    
    public function extend_proceed($p_action)
       {
           $t_sql =  $this->sql_query;
           $select_fields = implode(",",$this->getSelectFields());
           $t_sql = str_replace('FROM',', '.$select_fields.' FROM',$t_sql);
           $this->sql_query = $t_sql;
           parent::extend_proceed($p_action);
       }
     
     
       public function add_product_data(array &$p_products_array, array $p_product_array, product $p_coo_product)
        {
            // Hier stehen das Feld sowohl unter $p_coo_product als auch unter $p_product_array zur Verfügung
            // Aber was wäre zu tun damit die Daten auch in ProductListingContentView zur Verfügung stehen?
            // overload this method to add or manipulate data of the product array
        }
    
    }
    
    Jetzt würde ich denken das Feld wäre jetzt in der Klasse ProductListingContentView verfügbar und könnte dann mit einer entsprechenden Zuweisung dem Template zur Verfügung gestellt werden. Leider ist in dieser Klasse das Feld nicht verfügbar.

    Vielleicht irgendwelche Ansätze?

    Danke schonmal.
    Gruß Frank
     
  13. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Das was Du da machst ist Müll, da Du in den originalen Dateien bastelst.
    Beim Nächsten Update fliegt Dir die hälfte um die Ohren, bzw. musst Du das neu machen.
    Dafür hat man die overloads.
    Ich poste hier mal meine Dateien, da habe ich die Felder Model, Inhalt, size, Rest und Sonder eingefügt.
    Das musst Du bitte auf Deine Felder ändern

    Erstelle im Verzeichnis
    user_classes/ overloads/ den Ordner
    product
    und darin die Datei
    extrafeld_product.inc.php
    mit diesem Inhalt:

    PHP:
    <?php

    class extrafeld_product extends extrafeld_product_parent
    {
        function 
    buildDataArray(&$array$image 'thumbnail')
        {
            global 
    $xtPrice$main;
          
            
    $t_data_array=parent::buildDataArray($array$image);
                  
            
    //Additional info in $t_data_array
            
    $t_data_array['PRODUCTS_MODEL']=$array['products_model'];
            
    $t_data_array['PRODUCTS_INHALT']=$array['products_inhalt'];
            
    $t_data_array['PRODUCTS_SIZE']=$array['products_size'];
            
    $t_data_array['PRODUCTS_REST']=$array['products_rest'];
            
    $t_data_array['PRODUCTS_SONDER']=$array['products_sonder'];
          
            
    //Additional info in $t_data_array

            
    return $t_data_array;
            
    // EOF GM_MOD
        
    }


    function 
    getAlsoPurchased()
       {
         
    // BOF YOOCHOOSE
         
    if(defined('YOOCHOOSE_ACTIVE') && YOOCHOOSE_ACTIVE)
            {
                require_once (
    DIR_FS_CATALOG 'includes/yoochoose/recommendations.php');
                require_once (
    DIR_FS_CATALOG 'includes/yoochoose/functions.php');
                return 
    recommendData(getAlsoPurchasedStrategy(), $this->pIDMAX_DISPLAY_ALSO_PURCHASED);
            }
         
    // EOF YOOCHOOSE

         
    global $xtPrice;

         
    $module_content = array();
         
    $t_query=parent::getAlsoPurchased();

         
    $fsk_lock "";
         if(
    $_SESSION['customers_status']['customers_fsk18_display'] == '0')
         {
           
    $fsk_lock ' and p.products_fsk18!=1';
         }
         
    $group_check "";
         if(
    GROUP_CHECK == 'true')
         {
           
    $group_check " and p.group_permission_" $_SESSION['customers_status']['customers_status_id'] . "=1 ";
         }

         
    // BOF GM_MOD:
         
    $t_query "SELECT
                 p.products_fsk18,
                 p.products_id,
                 p.products_price,
                 p.products_tax_class_id,
                 p.products_image,
                 p.products_model,
                p.products_size,
                p.products_inhalt,
                  p.products_sonder,
                p.products_rest,
                 pd.gm_alt_text,
                 pd.products_name,
                 pd.products_meta_description,
                 p.products_vpe,
                 p.products_vpe_status,
                 p.products_vpe_value,
                 pd.products_short_description
               FROM
                 " 
    TABLE_ORDERS_PRODUCTS " opa,
                 " 
    TABLE_ORDERS_PRODUCTS " opb,
                 " 
    TABLE_ORDERS " o,
                 " 
    TABLE_PRODUCTS " p,
                 " 
    TABLE_PRODUCTS_DESCRIPTION " pd
               WHERE
                 opa.products_id = '" 
    $this->pID "'
                 AND opa.orders_id = opb.orders_id
                 AND opb.products_id != '" 
    $this->pID "'
                 AND opb.products_id = p.products_id
                 AND opb.orders_id = o.orders_id
                 AND p.products_status = '1'
                 AND pd.language_id = '" 
    . (int)$_SESSION['languages_id'] . "'
                 AND opb.products_id = pd.products_id
                 AND o.date_purchased > DATE_SUB(NOW(),INTERVAL " 
    MAX_DISPLAY_ALSO_PURCHASED_DAYS " DAY)
                 " 
    $group_check "
                 " 
    $fsk_lock "
               GROUP BY
                 p.products_id
               ORDER BY
                 o.date_purchased desc
               LIMIT
                 " 
    MAX_DISPLAY_ALSO_PURCHASED;
         
    $t_query xtc_db_query($t_query);
         while(
    $orders xtc_db_fetch_array($t_querytrue))
         {
           
    $module_content[] = $this->buildDataArray($orders);
         }

         return 
    $module_content;
       }
       function 
    getCrossSells()
        {
            global 
    $xtPrice;

            
    $t_query "SELECT
                            products_xsell_grp_name_id
                        FROM
                            " 
    TABLE_PRODUCTS_XSELL "
                        WHERE
                            products_id = '" 
    $this->pID "'
                        GROUP BY
                            products_xsell_grp_name_id"
    ;
            
    $cs_groups xtc_db_query($t_query);
            
    $cross_sell_data = array();
            if(
    xtc_db_num_rows($cs_groupstrue) > 0)
            {
                while(
    $cross_sells xtc_db_fetch_array($cs_groupstrue))
                {

                    
    $fsk_lock '';
                    if(
    $_SESSION['customers_status']['customers_fsk18_display'] == '0')
                    {
                        
    $fsk_lock ' AND p.products_fsk18!=1';
                    }
                    
    $group_check "";
                    if(
    GROUP_CHECK == 'true')
                    {
                        
    $group_check " AND p.group_permission_" $_SESSION['customers_status']['customers_status_id'] . "=1 ";
                    }

                    
    // BOF GM_MOD:
                    
    $cross_query "
                                    SELECT
                                        p.products_fsk18,
                                        p.products_tax_class_id,
                                        p.products_id,
                                        p.products_image,
                                        pd.products_name,
                                        p.products_model,
                                        p.products_size,
                                        p.products_inhalt,
                                        p.products_sonder,
                                        p.products_rest,
                                        pd.products_short_description,
                                        pd.products_meta_description,
                                        p.products_fsk18,
                                        p.products_price,
                                        pd.gm_alt_text,
                                        p.products_vpe,
                                        p.products_vpe_status,
                                        p.products_vpe_value,
                                        xp.sort_order
                                    FROM
                                        " 
    TABLE_PRODUCTS_XSELL " xp,
                                        " 
    TABLE_PRODUCTS " p,
                                        " 
    TABLE_PRODUCTS_DESCRIPTION " pd
                                    WHERE
                                        xp.products_id = '" 
    $this->pID "'
                                    AND
                                        xp.xsell_id = p.products_id " 
    .
                                        
    $fsk_lock .
                                        
    $group_check "
                                    AND
                                        p.products_id = pd.products_id
                                    AND
                                        xp.products_xsell_grp_name_id='" 
    $cross_sells['products_xsell_grp_name_id'] . "'                          
                                    AND
                                        pd.language_id = '" 
    . (int)$_SESSION['languages_id'] . "'
                                    AND
                                        p.products_status = '1'
                                    ORDER BY
                                        xp.sort_order ASC"
    ;

                    
    $cross_query xtDBquery($cross_query);
                    if(
    xtc_db_num_rows($cross_querytrue) > 0)
                    {
                        
    $cross_sell_data[$cross_sells['products_xsell_grp_name_id']] = array('GROUP' => xtc_get_cross_sell_name($cross_sells['products_xsell_grp_name_id']), 'PRODUCTS' => array());
                    }

                    while(
    $xsell xtc_db_fetch_array($cross_querytrue))
                    {
                        
    $cross_sell_data[$cross_sells['products_xsell_grp_name_id']]['PRODUCTS'][] = $this->buildDataArray($xsell);
                    }
                }
                return 
    $cross_sell_data;
            }
        }
          function 
    getReverseCrossSells()
       {
         global 
    $xtPrice;


         
    $fsk_lock '';
         if(
    $_SESSION['customers_status']['customers_fsk18_display'] == '0')
         {
           
    $fsk_lock ' and p.products_fsk18!=1';
         }
         
    $group_check "";
         if(
    GROUP_CHECK == 'true')
         {
           
    $group_check " and p.group_permission_" $_SESSION['customers_status']['customers_status_id'] . "=1 ";
         }

         
    // BOF GM_MOD:
         
    $t_query "SELECT
                 p.products_fsk18,
                 p.products_tax_class_id,
                 p.products_id,
                 p.products_image,
                 p.products_model,
                p.products_size,
                p.products_inhalt,
                  p.products_sonder,
                p.products_rest,
                 pd.products_name,
                 pd.products_short_description,
                 pd.products_meta_description,
                 p.products_fsk18,
                 p.products_price,
                 pd.gm_alt_text,
                 p.products_vpe,
                 p.products_vpe_status,
                 p.products_vpe_value,
                 xp.sort_order
               FROM
                 " 
    TABLE_PRODUCTS_XSELL " xp,
                 " 
    TABLE_PRODUCTS " p,
                 " 
    TABLE_PRODUCTS_DESCRIPTION " pd
               WHERE
                 xp.xsell_id = '" 
    $this->pID "'
               AND
                 xp.products_id = p.products_id " 
    .
               
    $fsk_lock .
               
    $group_check "
               AND
                 p.products_id = pd.products_id
               AND
                 pd.language_id = '" 
    . (int)$_SESSION['languages_id'] . "'
               AND
                 p.products_status = '1'
               ORDER BY
                 xp.sort_order ASC"
    ;
      
         
    $cross_query xtc_db_query($t_query);

         while(
    $xsell xtc_db_fetch_array($cross_querytrue))
         {
           
    $cross_sell_data[] = $this->buildDataArray($xsell);
         }

         return 
    $cross_sell_data;
       }
      }
    ?>
    Dann erstellst Du einen weiteren Ordner
    ProductListingContentControl
    mit einer Datei
    extrafeld_ProductListingContentControl.inc.php
    und dem Inhalt:
    PHP:
    <?php

    class extrafeld_ProductListingContentControl extends extrafeld_ProductListingContentControl_parent
    {  
    /* public function add_product_data(array &$p_products_array, array $p_product_array, product $p_coo_product)
        {
        array('PRODUCTS_INHALT' => $coo_product->data['p.products_inhalt']);
        array('PRODUCTS_SIZE' => $coo_product->data['p.products_size']);
        array('PRODUCTS_REST' => $coo_product->data['p.products_rest']);
        array('PRODUCTS_SONDER' => $coo_product->data['p.products_sonder']);
      }

    }
    {*/

      
    public function getSelectFields()
      {
        
    $select_fields = array('p.products_inhalt',
                               
    'p.products_size',
                               
    'p.products_rest',
                               
    'p.products_sonder');

        return 
    $select_fields;
      }

    public function 
    extend_proceed($p_action)
       {
           
    $t_sql =  $this->sql_query;

           
    $select_fields implode(",",$this->getSelectFields());

           
    $t_sql str_replace('FROM',','.$select_fields.' FROM',$t_sql);

           
    $this->sql_query $t_sql;

           
    parent::extend_proceed($p_action);
       }
    }

    Dann kannst Du die Felder unter
    templates/ Honeygrid/ snippets/ product_listing/ product-USERMOD.html
    und
    templates/ Honeygrid/ snippets/ product_listing/ product_grid_only-USERMOD.html
    eintragen.

    Hier ist das auch noch einmal beschrieben:
    (Link nur für registrierte Nutzer sichtbar.)
     
  14. fpo

    fpo Mitglied

    Registriert seit:
    24. Mai 2017
    Beiträge:
    8
    Danke erhalten:
    1
    Hallo Barbara,

    Vielleicht ist das nicht ganz klar rübergekommen da ich von Überladungen sprach. Vielleicht klingt Overloads besser. Ja, alle Änderungen sind im Ordner overloads als entsprechende Ordner mit entsprechenden Files angelegt. Hier wird keine Klassendefinition im Original verändert. Nur "Overloads".

    Gruß Frank
     
  15. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Dann habe ich das nciht richtig verstanden :).
    Ich hatte das so gelesen, als ob du die Änderungen direkt in den originalen Dateien machst.
     
  16. fpo

    fpo Mitglied

    Registriert seit:
    24. Mai 2017
    Beiträge:
    8
    Danke erhalten:
    1
    Hallo Barbara,

    kein Problem. Es ist warm, Wochenende und Freizeit wird sowieso überbewertet. :)

    Aber Du hast mich glücklicherweise auf den richtigen Weg gebracht. Es war die fehlende Überladung von "product".

    Gruß Frank und einen schönen Sonntag.
     
  17. fpo

    fpo Mitglied

    Registriert seit:
    24. Mai 2017
    Beiträge:
    8
    Danke erhalten:
    1
    Hallo,
    nachdem es doch ein wenig nervig war das die Extrafelder nicht bei neuen Artikeln gespeichert werden, habe ich mich dieses Problems angenommen und scheinbar eine Lösung gefunden.

    In der Datei StoreExtrafelderExtender.inc.php unter den overloads/AdminCategoriesExtenderComponents ist folgende kleine Änderung vorzunehmen.

    Die Zeilen:

    PHP:
    if(isset($this->v_data_array['GET']['action']) && $this->v_data_array['GET']['action'] === 'update_product')
      {
      
    $productId = (int)$this->v_data_array['GET']['pID'];
    sind durch folgende zu ersetzen:

    PHP:
    if(isset($this->v_data_array['GET']['action']) && ($this->v_data_array['GET']['action'] === 'update_product' || $this->v_data_array['GET']['action'] === 'insert_product'))
            {
                 
    $productId = (int)$this->v_data_array['products_id'];
    Spielt jedenfalls bei mir unter 3.7.2

    Gruß Frank
     
  18. Kai Stejuhn

    Kai Stejuhn Beta-Held

    Registriert seit:
    26. September 2014
    Beiträge:
    1.403
    Danke erhalten:
    707
    Danke vergeben:
    92
    Wie speichert man denn die Zusatzfelder bei einer neuen Kategorie? Da hat man ja keine "categories_id", die mit übergeben wird.
     
  19. M. Zitzmann

    M. Zitzmann Erfahrener Benutzer

    Registriert seit:
    3. März 2016
    Beiträge:
    367
    Danke erhalten:
    118
    Danke vergeben:
    39
    Das sind Zusatzfelder für Artikel.
    Mit den Kategorien hat das nix zu tun...

    Gruß
    Mike
     
  20. Kai Stejuhn

    Kai Stejuhn Beta-Held

    Registriert seit:
    26. September 2014
    Beiträge:
    1.403
    Danke erhalten:
    707
    Danke vergeben:
    92
    Ab ca. #19 wird aber doch über die Zusatzfelder in den Kategorien geschrieben oder habe ich da jetzt etwas total falsch verstanden.

    Aber mal davon abgesehen, wird das Prozedere bei den Kategorien und den Artikeln ziemlich identisch sein. Ich vermute mal das man auch bei der Artikelneuanlage die Zusatzfelder abspeichern muss und kann. Wäre nett wenn ich da einen Hinweis bekommen könnte.