Index: /changelog
===================================================================
--- /changelog	(revision 7910)
+++ /changelog	(revision 7911)
@@ -466,3 +466,4 @@
 
 #4.3.4
-- Bugfix: ZurÃŒckgesetztes Passwort wird jetzt nicht mehr einem zufÃ€lligen Benutzer zugeordnet (Kundenlogin)
+- Bugfix: PasswortzurÃŒcksetzen funktioniert jetzt auch, wenn paralell ein gelÃ¶schter Kunde mit gleicher E-Mail existiert
+- Bugfix: Produktartikel Neu Aufbauen beachtet den "Entwurfs - Status"
Index: /model/wpsg_customer.class.php
===================================================================
--- /model/wpsg_customer.class.php	(revision 7910)
+++ /model/wpsg_customer.class.php	(revision 7911)
@@ -461,6 +461,5 @@
 		} // public function getOrderCount()
 
-		public function delete()
-		{
+		public function delete() {
 			
 			// Kundendatensatz lÃ¶schen
Index: /mods/wpsg_mod_productvariants.class.php
===================================================================
--- /mods/wpsg_mod_productvariants.class.php	(revision 7910)
+++ /mods/wpsg_mod_productvariants.class.php	(revision 7911)
@@ -954,81 +954,67 @@
         	if (!$noCache && array_key_exists($produkt_id.$noTrans, wpsg_getArray($this->cache_variData))) return $this->cache_variData[$produkt_id.$noTrans];
 
-        	// Ãbersetzung verarbeiten
-        	if (is_admin() || $noTrans === true)
-        	{
-
-        		//$vp_data = @unserialize($this->db->fetchOne("SELECT `images` FROM `".WPSG_TBL_PRODUCTS_VARIATION."` WHERE `id` = '".wpsg_q($produkt_id)."'"));
-        		$vp_data = @unserialize($this->db->fetchOne("SELECT `images` FROM `".WPSG_TBL_PRODUCTS_VARIATION."` WHERE `id` = '".wpsg_q($_REQUEST['vari_id'])."'"));
-        		if (!is_array($vp_data)) $vp_data = array();
-
-        	}
-        	else
-        	{
-
-        		// Im Frontend geht es nach der Sprache auf der der Shop aktuell lÃ€uft
-        		if ($this->shop->isOtherLang())
-        		{
-
-        			$parent_lang_id = $this->db->fetchOne("SELECT `lang_parent` FROM `".WPSG_TBL_PRODUCTS."` WHERE `id` = '".wpsg_q($produkt_id)."'");
-        			if (!wpsg_isSizedInt($parent_lang_id)) $parent_lang_id = $produkt_id;
-
-        			$vp_data = @unserialize($this->db->fetchOne("SELECT `images` FROM `".WPSG_TBL_PRODUCTS_VARIATION."` WHERE `id` = '".wpsg_q($parent_lang_id)."'"));
-        			if (!is_array($vp_data)) $vp_data = array();
-
-        			foreach ($vp_data as $k => $v)
-        			{
-
-        				// Den Namen der Variante auf die aktuelle Sprache stellen
-        				if (wpsg_isSizedString($vp_data[$k]['lang'][$this->shop->getCurrentLanguageCode()]['name'])) $vp_data[$k]['name'] = $vp_data[$k]['lang'][$this->shop->getCurrentLanguageCode()]['name'];
-
-        				if (wpsg_isSizedArray($vp_data[$k]['vari']))
-        				{
-
-        					foreach ($vp_data[$k]['vari'] as $k2 => $vari)
-        					{
-
-        						// Den Namen der Variation auf die aktuelle Sprache korrigieren
-        						if (wpsg_isSizedString($vp_data[$k]['lang'][$this->shop->getCurrentLanguageCode()]['vari'][$k2]['name'])) $vp_data[$k]['vari'][$k2]['name'] = $vp_data[$k]['lang'][$this->shop->getCurrentLanguageCode()]['vari'][$k2]['name'];
-
-        					}
-
-        				}
-
-        			}
-
-        		}
-        		else
-        		{
-
-        			if (isset($_REQUEST['vari_id']))
-					{
-
-        				$vp_data = @unserialize($this->db->fetchOne("SELECT `images` FROM `".WPSG_TBL_PRODUCTS_VARIATION."` WHERE `id` = '".wpsg_q($_REQUEST['vari_id'])."'"));
-        				if (!is_array($vp_data)) $vp_data = array();
-
-        			}
-        			else
-        			{
-
-        				$strQuery =
-        				"SELECT PVV.`id`, PVV.`variation_id`, PVV.`product_id`, PVV.`anr`, PVV.`price`, PVV.`stock`, PVV.`min_stock`, PVV.`images`, PVV.`weight`, PVV.`fmenge`, PVV.`active`,
-        				 VV.`variant_id`, VV.`name` AS VVname, VV.`shortname`, PV.`pos` AS PVpos, VV.`pos` AS VVpos,
-        				 V.`name` AS Vname, V.`type`
-        				 FROM ".WPSG_TBL_VARIANTS." AS V, ".WPSG_TBL_VARIANTS_VARI." AS VV,
-        				 ".WPSG_TBL_PRODUCTS_VARIATION." AS PVV, ".WPSG_TBL_PRODUCTS_VARIANT." AS PV
-        				 WHERE V.`id` = VV.`variant_id` AND VV.`id` = PVV.`variation_id` AND PV.`variant_id` = VV.`variant_id` AND
-        				 PVV.`product_id` = '".wpsg_q($produkt_id)."' AND VV.`deleted` != 1 AND V.`deleted` != 1
-        				 ORDER BY PV.`pos`, VV.`pos`";
-
-        				//$vp_data = $this->db->fetchAssoc("SELECT * FROM `".WPSG_TBL_PRODUCTS_VARIATION."` WHERE `product_id` = '".wpsg_q($produkt_id)."'");
-        				$vp_data = $this->db->fetchAssoc($strQuery);
-        				if (!is_array($vp_data)) $vp_data = array();
-        				$this->unserializeVariation($vp_data);
-
-        			}
-
-        		}
-
-        	}
+            // Im Frontend geht es nach der Sprache auf der der Shop aktuell lÃ€uft
+            if ($this->shop->isOtherLang())
+            {
+
+                $parent_lang_id = $this->db->fetchOne("SELECT `lang_parent` FROM `".WPSG_TBL_PRODUCTS."` WHERE `id` = '".wpsg_q($produkt_id)."'");
+                if (!wpsg_isSizedInt($parent_lang_id)) $parent_lang_id = $produkt_id;
+
+                $vp_data = @unserialize($this->db->fetchOne("SELECT `images` FROM `".WPSG_TBL_PRODUCTS_VARIATION."` WHERE `id` = '".wpsg_q($parent_lang_id)."'"));
+                if (!is_array($vp_data)) $vp_data = array();
+
+                foreach ($vp_data as $k => $v)
+                {
+
+                    // Den Namen der Variante auf die aktuelle Sprache stellen
+                    if (wpsg_isSizedString($vp_data[$k]['lang'][$this->shop->getCurrentLanguageCode()]['name'])) $vp_data[$k]['name'] = $vp_data[$k]['lang'][$this->shop->getCurrentLanguageCode()]['name'];
+
+                    if (wpsg_isSizedArray($vp_data[$k]['vari']))
+                    {
+
+                        foreach ($vp_data[$k]['vari'] as $k2 => $vari)
+                        {
+
+                            // Den Namen der Variation auf die aktuelle Sprache korrigieren
+                            if (wpsg_isSizedString($vp_data[$k]['lang'][$this->shop->getCurrentLanguageCode()]['vari'][$k2]['name'])) $vp_data[$k]['vari'][$k2]['name'] = $vp_data[$k]['lang'][$this->shop->getCurrentLanguageCode()]['vari'][$k2]['name'];
+
+                        }
+
+                    }
+
+                }
+
+            }
+            else
+            {
+
+                if (isset($_REQUEST['vari_id']))
+				{
+
+                    $vp_data = @unserialize($this->db->fetchOne("SELECT `images` FROM `".WPSG_TBL_PRODUCTS_VARIATION."` WHERE `id` = '".wpsg_q($_REQUEST['vari_id'])."'"));
+                    if (!is_array($vp_data)) $vp_data = array();
+
+                }
+                else
+                {
+
+                    $strQuery =
+                    "SELECT PVV.`id`, PVV.`variation_id`, PVV.`product_id`, PVV.`anr`, PVV.`price`, PVV.`stock`, PVV.`min_stock`, PVV.`images`, PVV.`weight`, PVV.`fmenge`, PVV.`active`,
+                     VV.`variant_id`, VV.`name` AS VVname, VV.`shortname`, PV.`pos` AS PVpos, VV.`pos` AS VVpos,
+                     V.`name` AS Vname, V.`type`
+                     FROM ".WPSG_TBL_VARIANTS." AS V, ".WPSG_TBL_VARIANTS_VARI." AS VV,
+                     ".WPSG_TBL_PRODUCTS_VARIATION." AS PVV, ".WPSG_TBL_PRODUCTS_VARIANT." AS PV
+                     WHERE V.`id` = VV.`variant_id` AND VV.`id` = PVV.`variation_id` AND PV.`variant_id` = VV.`variant_id` AND
+                     PVV.`product_id` = '".wpsg_q($produkt_id)."' AND VV.`deleted` != 1 AND V.`deleted` != 1
+                     ORDER BY PV.`pos`, VV.`pos`";
+
+                    //$vp_data = $this->db->fetchAssoc("SELECT * FROM `".WPSG_TBL_PRODUCTS_VARIATION."` WHERE `product_id` = '".wpsg_q($produkt_id)."'");
+                    $vp_data = $this->db->fetchAssoc($strQuery);
+                    if (!is_array($vp_data)) $vp_data = array();
+                    $this->unserializeVariation($vp_data);
+
+                }
+
+            }
 
         	$this->cache_variData[$produkt_id.$noTrans] = $vp_data;
Index: /mods/wpsg_mod_produktartikel.class.php
===================================================================
--- /mods/wpsg_mod_produktartikel.class.php	(revision 7910)
+++ /mods/wpsg_mod_produktartikel.class.php	(revision 7911)
@@ -171,4 +171,5 @@
                     $_REQUEST['wpsg_mod_produktartikel']['kommentare'] = wpsg_getStr($post_data['comment_status'], '');
                     $_REQUEST['wpsg_produktartikel_menuorder'] = wpsg_getStr($post_data['menu_order'], '');
+                    $_REQUEST['disabled'] = $product_data['disabled'];
     
                     if (wpsg_isSizedInt($product_data['lang_parent'])) {
@@ -297,5 +298,5 @@
     
             // Rebuild
-            $this->shop->view['ToRebuild'] = $this->shop->get_option('wpsg_mod_produktartikel_rebuild');
+            $this->shop->view['ToRebuild'] = wpsg_getArray($this->shop->get_option('wpsg_mod_produktartikel_rebuild'));
     
             // VerfÃŒgbare Produkttemplates
@@ -691,6 +692,6 @@
 
             if (isset($_REQUEST['wpsg_mod_produktartikel'])) $comment = sanitize_text_field($_REQUEST['wpsg_mod_produktartikel']['kommentare']??''); else $comment = false;
-    
-            $this->getPostIdFromProductId($product_id, $_REQUEST['wpsg_mod_produktartikel']['path'], $comment, wpsg_sinput("key", $_REQUEST['wpsg_produktartikel_menuorder']), true, wpsg_sinput("key", @$_REQUEST['disabled']));
+
+            $this->getPostIdFromProductId($product_id, $_REQUEST['wpsg_mod_produktartikel']['path'], $comment, $_REQUEST['wpsg_produktartikel_menuorder'], true, ((($_REQUEST['disabled']??'0') === '1')?'1':'0') );
     
         } // public function produkt_save($produkt_id)
