formatec Posted January 24, 2011 Share Posted January 24, 2011 Suite à plusieurs demandes, le générateur de déclinaisons demande à être revu.En effet à il serait primordial qu'il puisse accepter des multiplications afin d'appliquer un coeficient ou un pourcentage à un attribut.Cela se passe ici:prestashop/adminz/tabs/AdminAttributeGenerator.phpJe viens de passer pas mal de temps avec Moon, un pote balaise en php et on a essayé plein de chose.on a testé la regex dans tous les sens et elle est bonne. Mais malheureusement les cases du générateur dans lesquelles on va mettre un *1.5 par exemple resteront désespérément à zéroVoici la fonction où nous en sommes.Ce serait sympa que le dev qui a bossé sur le générateur vienne faire un tour par ici...Ou bien si vous connaissez un module qui permettrait de le faire? je suis preneur! class AdminAttributeGenerator extends AdminTab { private $combinations = array(); private $product; private function addAttribute($arr, $price = 0, $weight = 0) { foreach ($arr AS $attr) { preg_match('%([+/*-]?)([0-9]+\.?[0-9]+)%',$_POST['price_impact'][intval($attr)],$found); if ($found){ var_dump($found); switch($found[1]){ case '+' : $price += floatval($found[2]);break; case '-' : $price -= floatval($found[2]);break; case '/' : $price /= floatval($found[2]);break; case '*' : //$price =floatval($price)* floatval($found[2]);break; echo sprintf("avant : %s : f",$price,$price);$price =floatval($price)* floatval($found[2]);echo sprintf("apres : %s : f",$price,$price);break; default: $price += floatval($found[2]);break; } }else{var_dump($_POST['price_impact'][intval($attr)]); var_dump($found);} $weight += floatval($_POST['weight_impact'][intval($attr)]); } //$price += $_POST['price_impact'][intval($attr)]; //$weight += floatval($_POST['weight_impact'][intval($attr)]); //} if ($this->product->id) { return (array( 'id_product' => intval($this->product->id), 'price' => floatval($price), 'weight' => floatval($weight), 'ecotax' => 0, 'quantity' => intval($_POST['quantity']), 'reference' => pSQL($_POST['reference']), 'default_on' => 0)); } return array(); } Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now