Marktplatz - Eine große Auswahl an neuen und hilfreichen Modulen sowie modernen Templates für die modified eCommerce Shopsoftware
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: Update admin/includes/classes/categories.php 1.05d auf 1.06 - Hilfe bei array

    Eichenhorn

    • Fördermitglied
    • Beiträge: 503
    In der og Datei gibt es

    in 1.05d

    Code: PHP  [Auswählen]
            $sql_data_array=array('products_quantity'=>$product['products_quantity'],
                                                    'products_model'=>$product['products_model'],
                                                    'products_ean'=>$product['products_ean'],
                                                    'products_shippingtime'=>$product['products_shippingtime'],
                                                    'products_sort'=>$product['products_sort'],
                                                    'vendors_id'=>$product['vendors_id'],
                                                    (...)
                                                    );

    Die vendors_id-Zeile ist von einem Modul.

    In 1.06 steht an der Stelle:

    Code: PHP  [Auswählen]
    //copy data
        $sql_data_array = $product;
        //set new data (overrides)
        unset($sql_data_array['products_id']);
        $sql_data_array['products_startpage'] = $startpage;
        $sql_data_array['products_date_added'] = 'now()';
        $sql_data_array['products_status'] = $products_status;

        //get customers statuses and set group_permissions
        //not needed, because group_permissions are in $sql_data_array  

        //write data to DB

    Kann ich die Vendors-Zeile so einbauen?

    Code: PHP  [Auswählen]
    (...)    
    $sql_data_array['products_startpage'] = $startpage;
    $sql_data_array['vendors_id'] = $product['vendors_id;


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

    web28

    • modified Team
    • Beiträge: 9.404
    In der Kopierfunktion muss man ab 1.06 nichts mehr ändern, es wird alles automatisch übernommen.

    Diese beiden Einträge können auch weg:

    Code: PHP  [Auswählen]
    $sql_data_array['products_startpage'] = $startpage;
    $sql_data_array['products_status'] = $products_status;

    Dafür muss das rein:

    Code: PHP  [Auswählen]
    $sql_data_array['products_ordered'] = '';

    Eichenhorn

    • Fördermitglied
    • Beiträge: 503
    Danke, getestet und alles funktioniert!

    Eichenhorn

    • Fördermitglied
    • Beiträge: 503
    Sorry, muss das revidieren. Die neue, modulbedingte Dropdown-Liste mit Vendors erscheint nicht. Vermutlich muss ich sie doch in die categories.php einbauen.

    Die Zeile
    Code: PHP  [Auswählen]
        $sql_data_array['vendors_id'] = $product['vendors_id;
    einzufügen funktioniert nicht.

    Was kann ich tun?

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Was ist denn das für ein Modul und wo soll das Dropdown erscheinen ?
    Die Werte für ein Dropdown müssen ja selbst schon in einem Array stehen um die Werte alle darzustellen,
    wenn denn die Funktion xtc_draw_pull_down_menu () dafür benutzt wird.

    Gruß,
    noRiddle

    Eichenhorn

    • Fördermitglied
    • Beiträge: 503
    Danke, noRiddle.

    Das Modul ist ein Dropshipping-Modul. Jedem Artikel wird ein Lieferant zugewiesen, der bei einem vordefinierten Wechsel des Bestellstatuses eine Email mit den Informationen zur Bestellung bekommt.

    Das Modul funktioniert, es fehlt nur das Dropdown-Menü, um direkt in der Artikelbearbeitung (und nicht erst in der Datenbank) den Lieferanten zu bestimmen.

    Das Dropdown-Menü ist auf categories.php bei der Bearbeitung des Produkts und reiht sich direkt unter Hersteller und oberhalb von Artikelgewicht ein.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Das muß ja dann in die /admin/includes/modules/new_product.php eingebaut werden.
    Wo wird das Array für das Dropdown gebildet ?

    In o.g. Datei das suchen
    Code: PHP  [Auswählen]
    <tr>
      <td><span class="main"><?php echo TEXT_PRODUCTS_WEIGHT; ?></span></td>
      <td><span class="main"><?php echo xtc_draw_input_field('products_weight', $pInfo->products_weight, 'style="width: 135px"'); ?>&nbsp;<?php echo TEXT_PRODUCTS_WEIGHT_INFO; ?></span></td>
    </tr>
    und darüber dein Dropdown einfügen.
    Mußt dabei natürlich auf die Tabellen-Reihen (<tr>) achten damit nichts verschoben wird.

    Ich nehme mal an, daß es ein weiteres Datenbankfeld in der Tabelle products gibt für den Hersteller.
    In der /admin/includes/classes/categories.php müsste dein Eintrag dann so lauten:
    Code: PHP  [Auswählen]
    'vendors_id' =>  xtc_db_prepare_input($products_data['vendors_id']) // added for dropshipping vendors module, Eichenhorn
    und zwar einfach am Ende des $sql_data_array direkt über
    Code: PHP  [Auswählen]
    if (trim(ADD_PRODUCTS_FIELDS) != '') {
          $sql_data_array = array_merge($sql_data_array, $this->add_data_fields(ADD_PRODUCTS_FIELDS,$products_data));
        }

    Gruß,
    noRiddle

    Eichenhorn

    • Fördermitglied
    • Beiträge: 503
    Du bist gut! :thumbs:

    Vielen, vielen Dank. Funktioniert alles wieder.

    web28

    • modified Team
    • Beiträge: 9.404
    In der /admin/includes/classes/categories.php  kann man ab 1.06 einfach den define ADD_PRODUCTS_FIELDS erweitern:

    Code: PHP  [Auswählen]
    define('ADD_PRODUCTS_FIELDS','products_manufacturers_model,vendors_id');

    Dann muss man nicht in dem Funktionscode rumfummeln.

    Gruss Web28

    Eichenhorn

    • Fördermitglied
    • Beiträge: 503
    Danke, habe das gerade gemacht und dabei gleich Deinen Hinweis im Quelltext zur neuen Funktion gesehen. :) Mir ist aber nicht klar, wo jetzt was überflüssig ist bzw. was Du mit Funktionscode meinst.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Ach, das vergesse ich immer, da hatte web28 ja mal wieder was sinnvolles eingebaut.
    Danke für die Korrektur, web28 ;-).

    Er meint folgendes, Eichenhorn:
    Du fügst in das Array oben die vendors_id ein nach web28' Vorbild und brauchst dann den Array-Eintrag wie ich ihn oben erklärte nicht mehr weil er autom. durch die Funktion add_data_fields() implementiert wird.
       
    Code: PHP  [Auswählen]
    'vendors_id' =>  xtc_db_prepare_input($products_data['vendors_id']) // added for dropshipping vendors module, Eichenhorn
    ist also nicht nötig dann.

    Gruß,
    noRiddle

    Eichenhorn

    • Fördermitglied
    • Beiträge: 503
    Code gespart, sehr schön.
    Danke!
               
    anything