Jump to content
xt:Commerce Community Forum

Dropdown für Artikelformular


PhilippISN

Recommended Posts

Liebe Community

Ist es möglich das Formular, mit welches man neue Artikel erstellt, mit einem Dropdown zu erweitern?

Ich weiß wie man zusätzliche Textfelder, Checkboxen oder HTML-Editoren einfügt, einfach die Tabelle xt_products erweitern, aber wie mach ich das für ein Dropdown? Ist es überhaupt möglich, schließlich gibt es für z.B. Hersteller ID eine eigene Funktion die dieses Dropdown befüllt, in dieser Datei gibt es auch keine Hookpoints zum erweitern (außer Bilder).

Wäre toll, wenn das jemand weiß.

Vielen Dank und beste Grüße

Link to comment
Share on other sites

So, da mir keiner weiter geholfen hat und ich es aber trotzdem geschafft habe, will ich meine Erkenntnisse natürlich niemanden vorbehalten.

Um ein Dropdown in der "Artikel erstellen" Eingabemaske hinzuzufügen ist der Hookpoint class.product.php:_getParams_top wichtig.

Dort erweitert man die $header Variable:


$header['mein_dropdown'] = array('type' => 'dropdown','url'=>'DropdownData.php?get=mein_dropdown');
[/PHP]

Für "mein_dropdown" muss man vorher natürlich eine entsprechende Spalte in der [i]products [/i]Tabelle angelegt haben.

Nun braucht man nurmehr eine eigene Dropdown-Resource anlegen z.B. in einer eigenen php Datei:

[PHP]
if($request['get'] == 'mein_dropdown')
{
if(!isset($result)) $result = array();
$result[] = array('id' => 1, 'name' => 'Hallo');
}
[/PHP]

Diese in dem Hookpoint [b]admin_dropdown.php:dropdown[/b] registrieren und fertig ist der ganze Zauber.

Hoffe ich hab damit jemanden weiterhelfen können :)

Link to comment
Share on other sites

Hallo,

deine Beiträge gefallen mir:D

ich komm noch nicht ganz mit, vielleicht weil schon nach Arbeitszeit ist;-)

Die Rede ist von 'Artikel Neu' oder 'Artikel Bearbeiten'? (so heißen die Reiter bei mir)

Wo finde ich die benötigten Hookpoints und wie kann ich dort die neue .php registrieren?

Achja - und: Wie setzt du das zB ein?

Sind vielleicht blöde Fragen, aber...

grüße!

Link to comment
Share on other sites

  • 5 months later...

hallo,

sorry ist wahrscheinlich schon zu spät für eine antwort aber vieleicht hilft es ja jemand anderen.

Zu deinen fragen:

Wo finde ich die Hookpoints:

Ist eigentlich egal, du musst nur wissen wie der hookpoint heißt.

PHP registrieren:

Einfach über den installer (also die plugin installer xml). Dort fügst du ein code-segment (im elternknoten plugin-code) mit folgenden inhalt ein:


<code>
<!-- Dropdownwerte bei Artikel erstellen -->
<hook>class.product.php:_getParams_top</hook>
<phpcode><![CDATA[
$header['mein_dropdown'] = array('type' => 'dropdown','url'=>'DropdownData.php?get=mein_dropdown');
]]></phpcode>
<order>1</order>
<active>1</active>
</code>
[/PHP]

Dann musst du noch die php-datei mit den dropdown-resourcen registrieren - ebenfalls im installer:

[PHP]
<code>
<!-- Dropdown Resourcen -->
<hook>admin_dropdown.php:dropdown</hook>
<phpcode><![CDATA[
include _SRV_WEBROOT.'plugins/dropdown_test/classes/meindropdown.php';
]]></phpcode>
<order>1</order>
<active>1</active>
</code>
[/PHP]

In der meindropdown.php gibst du dann den inhalt des dropdowns zurück (beachte den get-Parameter). Du brauchst nur das $result array mit deinen daten erweitern (ohne return):

[PHP]
if($request['get'] == 'mein_dropdown')
{
[db-abfrage etc ....]

foreach($data as $id)
{
$result[] = array('id' => $id,'name'=>'text','desc' => 'beschreibung');
$i++;
}
}
[/PHP]

Das wars auch schon :-)

lg

Link to comment
Share on other sites

  • 1 year later...

Hi PhilippISN,

auch wenn es etwas her ist, ich muss sagen dass ich auch an der zweiten Anleitung scheiter.

Ich habe die class.product.php gefunden in /xtFramework/classes/ und habe dort einen weiteren headereintrag eingetragen:

$header['pusheinlage'] = array('type' => 'dropdown','url'=>'DropdownData.php?get=blabla');

Aber wo erstelle ich denn den Rest? Ich bekomme die Verbindung zwischen "erstelle dort den header eintrag" zu "im Installer" nicht hin.

Außerdem vermute ich dass ich später dann auch nur im Admin das DropDown habe und nicht im Shop?

Ich verstehe sowieso nicht warum es keine Liste der DB suffixe / prefixe gibt aus der man sich einfach mal ein paar Tipps holen kann.

Auf https://xtcommerce.atlassian.net/wiki/dashboard.action sind immer nur einzelbeispiele, aber nie ganze Listen von DB Möglichkeiten zu finden...

Link to comment
Share on other sites

  • 1 year later...

hallo,

sorry ist wahrscheinlich schon zu spät für eine antwort aber vieleicht hilft es ja jemand anderen.

Zu deinen fragen:

Wo finde ich die Hookpoints:

Ist eigentlich egal, du musst nur wissen wie der hookpoint heißt.

PHP registrieren:

Einfach über den installer (also die plugin installer xml). Dort fügst du ein code-segment (im elternknoten plugin-code) mit folgenden inhalt ein:


<code>
<!-- Dropdownwerte bei Artikel erstellen -->
<hook>class.product.php:_getParams_top</hook>
<phpcode><![CDATA[
$header['mein_dropdown'] = array('type' => 'dropdown','url'=>'DropdownData.php?get=mein_dropdown');
]]></phpcode>
<order>1</order>
<active>1</active>
</code>
[/PHP]

Dann musst du noch die php-datei mit den dropdown-resourcen registrieren - ebenfalls im installer:

[PHP]
<code>
<!-- Dropdown Resourcen -->
<hook>admin_dropdown.php:dropdown</hook>
<phpcode><![CDATA[
include _SRV_WEBROOT.'plugins/dropdown_test/classes/meindropdown.php';
]]></phpcode>
<order>1</order>
<active>1</active>
</code>
[/PHP]

In der meindropdown.php gibst du dann den inhalt des dropdowns zurück (beachte den get-Parameter). Du brauchst nur das $result array mit deinen daten erweitern (ohne return):

[PHP]
if($request['get'] == 'mein_dropdown')
{
[db-abfrage etc ....]

foreach($data as $id)
{
$result[] = array('id' => $id,'name'=>'text','desc' => 'beschreibung');
$i++;
}
}
[/PHP]

Das wars auch schon :-)

lg

Hallo,

wie funktionier, wenn man daten bzw id von der datenbank in die Dropdown füllt? Datenbank abfrage funktioniert nicht bei mir so richtig

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...