job963 / jxAttrEdit

OXID eShop admin module for editing all attributes at once
GNU General Public License v3.0
7 stars 13 forks source link

Unterscheidung zugewiesene/nicht zugewiesene Attrs … #18

Open jdlx opened 8 years ago

jdlx commented 8 years ago

… im Attribute tab werden scheinbar(?) alle verfügbaren Attrs des shops angezeigt ohne das ersichtlich wäre ob das jeweilige Attr dem Artikel zugeordnet ist oder nicht. Eine Aufteilung in "zugeordnet/nicht zugeordnet" wäre extrem hilfreich …

jdlx commented 8 years ago

… oh, und ich stelle gerade fest, daß wenn man die Attrs speichert, daß die bislang nicht dem Artikel zugeordneten Attrs danach zugeordnet sind …

DDegen commented 8 years ago

In der "article_jxattredit.php" ist ein Fehler drin. In Zeile 185 bekommt die Variable $sAttrValue auch wenn sie leer ist, den Inhalt '' zugewiesen, damit läuft die spätere Prüfung ob leer oder nicht ins leere.

Ändere Zeile 185-199

       $sAttrValue = $this->getConfig()->getRequestParameter( "attrval_$i" );

        $sSql = "";
        if (($sValueID != '') && ($sAttrValue != '')) {   //attribute exists and not empty value received --> update
            $sSql = "UPDATE $sOxvObject2Attribute SET oxvalue=".$oDb->quote($sAttrValue)." WHERE oxid='$sValueID' ";
        }

        if (($sValueID != '') && ($sAttrValue == '')) {   //attribute exists, but empty value --> delete from DB
            $sSql = "DELETE FROM oxobject2attribute WHERE oxid='".$sValueID."' ";
        }

        if (($sValueID == '') && ($sAttrValue != '')) {   //attribute doesn't exists, value received --> insert new value
            $sNewUid = oxUtilsObject::getInstance()->generateUID();
            $sSql = "INSERT INTO $sOxvObject2Attribute (OXID, OXOBJECTID, OXATTRID, OXVALUE, OXPOS) VALUES ('$sNewUid', '$sOXID', '$sAttrID', ".$oDb->quote($sAttrValue).", 0)";
        }