Bonjour,
J’utilise le module views pour afficher une liste de produits ubercart.
J’ai besoin de modifier la requete générée par views, qui comporte des filtres, afin de permettre l’affichage correct des quantité de produits pour un vendeur donné.
J’ai donc ajouté une fonction views_views_pre_execute qui me permet de modifier ma requete comme je le souhaite. Par contre je rencontre un probleme avec l’utilisation des valeurs du filtre de date.
La fin de ma requete est la suivante :
WHERE (node_uc_order_products__users.uid in (‘%s’))
AND (DATE_FORMAT(ADDTIME(FROM_UNIXTIME(uc_orders.created), SEC_TO_TIME(7200)), ‘%Y-%m-%d’) >= ‘%s’ AND DATE_FORMAT(ADDTIME(FROM_UNIXTIME(uc_orders.created), SEC_TO_TIME(7200)), ‘%Y-%m-%d’) <= ‘%s’)» ;
Après affichage de la vue, le filtrage par utilisateur fonctionne bien, le %s est bien remplacé, par contre gros souci du coté des dates, le filtrage par date ne foncitonne pas, voici ce que j’obtiens :
WHERE (node_uc_order_products__users.uid in (‘3’))
AND (DATE_FORMAT(ADDTIME(FROM_UNIXTIME(uc_orders.created), SEC_TO_TIME(7200)), ‘%Y-%m-0’) >= ” AND DATE_FORMAT(ADDTIME(FROM_UNIXTIME(uc_orders.created), SEC_TO_TIME(7200)), ‘%Y-%m-0’) <= ”)
En espèrant que quelqu’un pourra m’aider.
- Vous devez vous identifier ou créer un compte pour écrire des commentaires

Désolé pour le double post, je souhaitais éditer mon précedent message mais je n’ai pas trouvé l’option d’édition.
ledom
37
Laissez tomber, j’ai trouvé une alternative.
Plutot que de figer toute la requete et de tenter d’accéder aux valeurs générée par les filtre, j’ai laissé la requete intacte et juste modifié la parti qui m’interesse avec str_replace.
Voici la fonction en question ajoutée dans un module qui me renvoit une nouvelle valeur calculée que je peux afficher dans view avec un customfield php contenant print $data->uc_order_products_prixtot
<?phpfunction views_views_pre_execute(&$view) {
if($view->name=="resum_facture_vendeur") {
$myquery = $view->build_info['query'];
$replacement = "uc_order_products.qty AS uc_order_products_qty, (uc_order_products.qty*uc_order_products.price) AS uc_order_products_prixtot";
$myquery = str_replace("uc_order_products.qty AS uc_order_products_qty", $replacement, $myquery);
$view->build_info['query'] = $myquery;
}
} ?>
ledom
37