ich bin an einem Plugin dran und habe das Problem, dass das Attribut, das ich für Artikel angelegt habe und mit einem Freitext-Feld Verknüpfen wollte, beim ändern nicht gespeichert wird.
So lege ich das Attribut an:
private function addAttributes() { $this->Application()->Models()->addAttribute( 's_articles_attributes', 'a', 'testattr', 'varchar(5)', //checkbox true, 'false' ); $this->Application()->Models()->generateAttributeModels(array( 's_articles_attributes' )); }Das Backend-Model wird per 'attribute.js' erzeugt:
//{block name="backend/article/model/attribute/fields" append} { name: 'a_testattr', type: 'string' }, //{/block}Das Freitext-Feld wird direkt in der Datenbank erstellt:
$name = $this->attr_name; $domname = $this->attr_name; $insert = Shopware()->Db()->query( "INSERT INTO `s_core_engine_elements` (" ."`type`, `label`, `required`, `position`, `domname`, `name`, " ."`variantable`, `help`, `translatable`" .") VALUES (" ."?, ?, ?, ?, ?, ?, ?, ?, ?" .")", array( $backendFieldType, $attribute['label'], 0, 0, $domname, $name, 0, $attribute['helptext'], 0 ) );In 's_articles_attributes' hab ich dann auch eine Spalte 'a_testattr' und in 's_core_engine_elements' die entsprechende Zeile mit namen 'a_testattr'.
Was mache ich falsch?