Condition date d'ajout inférieure à un mois |
Bienvenue invité ( Connexion | Inscription )
Condition date d'ajout inférieure à un mois |
11 May 2016, 13:02
Message
#1
|
|
Ceinture jaune+ OSC Groupe : Membres Messages : 131 Inscrit : 9-April 10 Membre no 27422 |
Bonjour,
Je cherche à mettre une image "nouveau" en overlay sur mes produits, si la date d'ajout est inférieure à un mois. Je n'arrive pas à faire la condition. Pourriez-vous m'aider ? Je voudrais simplement de l'aide pour la ligne : if 'products_date_added' est inférieure à un mois Merci beaucoup pour votre aide. -------------------- Oscommerce 2.3.4 BS
|
|
11 May 2016, 19:56
Message
#2
|
|
Ceinture marron OSC Groupe : Modérateurs Messages : 1543 Inscrit : 30-May 06 Lieu : Vichy (03) Membre no 10583 |
Bonjour,
Dans mon site MS 2.2, fichier products_listing.php, j'ai : Code if ( (time() - strtotime($listing['products_date_added'])) < 2592000) { 2592000 = 30 jours J'espère que cela répond à ta question. -------------------- Config 1 en live : Osc 2.2 très fortement modifié ... UTF-8 et Php 5.4.
Contribs installées : down_for_maintenance_v 2.3 | Estimated Shipping v1.5 | imprint_1_3_5 | low_stock_report_v2.04 | visible_countries_1.2b | Products Tabs | shoppingCart_cleanup_v1.01.0 | + trop de bidouilles persos pas très OsCommerce (erreurs de jeunesse) Config 2 en local avec UwAmp : Osc Phoenix |
|
13 May 2016, 11:54
Message
#3
|
|
Ceinture jaune+ OSC Groupe : Membres Messages : 131 Inscrit : 9-April 10 Membre no 27422 |
Bonjour,
Merci beaucoup pour la réponse ! Je ne sais pas pourquoi ça ne fonctionne pas chez moi... Voici le bout de code que je mets : Citation elseif ( (time() - strtotime($listing['products_date_added'])) < 2592000) { $text_image = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'manufacturers_id=' . (int)$_GET['manufacturers_id'] . '&products_id=' . $listing[$x]['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $listing[$x]['products_image'], $listing[$x]['products_name'], (ADDIMAGES_RESTRICT_IMAGE_SIZE == 'true'?SMALL_IMAGE_WIDTH:''), (ADDIMAGES_RESTRICT_IMAGE_SIZE == 'true'?SMALL_IMAGE_HEIGHT:''), 'style="position:relative; z-index:2"') . '<img src="images/overlay-new.png" style="display:block; position:relative;z-index:4; margin-top:-239px"></a>'; } J'ai également une condition du même genre pour les produits en promotion et ça fonctionne très bien : Citation elseif (tep_not_null($listing[$x]['specials_new_products_price'])) { $text_image = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'manufacturers_id=' . (int)$_GET['manufacturers_id'] . '&products_id=' . $listing[$x]['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $listing[$x]['products_image'], $listing[$x]['products_name'], (ADDIMAGES_RESTRICT_IMAGE_SIZE == 'true'?SMALL_IMAGE_WIDTH:''), (ADDIMAGES_RESTRICT_IMAGE_SIZE == 'true'?SMALL_IMAGE_HEIGHT:''), 'style="position:relative; z-index:2"') . '<img src="images/specials_overlay-french.png" style="display:block; position:relative;z-index:4; margin-top:-239px"></a>'; } J'ai aussi essayé comme ça mais ça ne fonctionne pas non plus :/ Citation elseif (strtotime($listing[$x]['products_date_added']) > strtotime('-1 month')) { -------------------- Oscommerce 2.3.4 BS
|
|
18 May 2016, 07:53
Message
#4
|
|
Ceinture marron OSC Groupe : Modérateurs Messages : 1543 Inscrit : 30-May 06 Lieu : Vichy (03) Membre no 10583 |
Bonjour,
Quand tu dis que cela ne fonctionne pas, c'est que : 1) tu ne vas pas dans ton elseif ? 2) time() - strtotime($listing['products_date_added']) ne donne aucune valeur ? Eventuellement mettre la valeur de time() dans une variable et faire $variable - strtotime($listing['products_date_added']) Il avait fallu que je fasse cela chez un ex hébergeur. 3) idem pour strtotime($listing[$x]['products_date_added']) et strtotime('-1 month') ? -------------------- Config 1 en live : Osc 2.2 très fortement modifié ... UTF-8 et Php 5.4.
Contribs installées : down_for_maintenance_v 2.3 | Estimated Shipping v1.5 | imprint_1_3_5 | low_stock_report_v2.04 | visible_countries_1.2b | Products Tabs | shoppingCart_cleanup_v1.01.0 | + trop de bidouilles persos pas très OsCommerce (erreurs de jeunesse) Config 2 en local avec UwAmp : Osc Phoenix |
|
23 May 2016, 13:36
Message
#5
|
|
Ceinture marron OSC Groupe : Modérateurs Messages : 1543 Inscrit : 30-May 06 Lieu : Vichy (03) Membre no 10583 |
Re bonjour,
Pas de nouvelles ... Sur mon autre ordi, en local, ma ligne de texte ne fonctionne pas : Code if ( (time() - strtotime($listing['products_date_added'])) < 2592000) { Je suis obligé de sortir time() de la ligne et le mettre en variable : Code $timeactuel = time(); if ( ($timeactuel - strtotime($listing['products_date_added'])) < 2592000) { Et là çà fonctionne. Peut-être que pour toi ce sera aussi le cas ? -------------------- Config 1 en live : Osc 2.2 très fortement modifié ... UTF-8 et Php 5.4.
Contribs installées : down_for_maintenance_v 2.3 | Estimated Shipping v1.5 | imprint_1_3_5 | low_stock_report_v2.04 | visible_countries_1.2b | Products Tabs | shoppingCart_cleanup_v1.01.0 | + trop de bidouilles persos pas très OsCommerce (erreurs de jeunesse) Config 2 en local avec UwAmp : Osc Phoenix |
|
23 May 2016, 14:22
Message
#6
|
|
Ceinture jaune+ OSC Groupe : Membres Messages : 131 Inscrit : 9-April 10 Membre no 27422 |
Bonjour,
Merci beaucoup encore pour toute cette aide. Désolée de ne pas avoir répondu plus tôt, c'est que je ne m'étais pas re penchée dessus depuis. Quand je suis trop énervée sur quelque chose j'ai la fâcheuse tendance à le laisser complètement tomber. J'ai essayé de mettre time() en variable mais ça ne fonctionne pas non plus. Quand je dis que ça ne fonctionne pas, c'est que mon image n'apparaît pas en overlay pour les produits de moins d'un mois. C'est comme s'il n'y avait rien d'ajouté à mon code; il n'y a pas non plus de message d'erreur. Je précise que mon image fonctionne bien, quand je ne précise aucune condition elle s'affiche bien sur tous les produits. C'est exactement pareil pour strtotime('-1 month'). Ce message a été modifié par aurelou - 23 May 2016, 14:24. -------------------- Oscommerce 2.3.4 BS
|
|
24 May 2016, 09:11
Message
#7
|
|
Ceinture marron OSC Groupe : Modérateurs Messages : 1543 Inscrit : 30-May 06 Lieu : Vichy (03) Membre no 10583 |
Re,
Faut jamais laisser tomber, tu peux mettre de côté puis revenir après dessus, en général çà fonctionne comme méthode Essaye de placer ce code dans ton fichier : Code echo 'time = ' . time(); echo '<br>products_date_added = ' . $listing['products_date_added']; echo '<br>strtotime = ' . strtotime($listing['products_date_added']); $resultat = 'çà marche pas'; if ( (time() - strtotime($listing['products_date_added'])) < 2592000) { $resultat = 'çà marche'; } echo '<br>' . $resultat; Cela t'affiche quelque chose ? si c'est $listing['products_date_added']) qui ne donne rien, c'est que products_date_added doit manquer dans le $listing_sql du fichier index.php -------------------- Config 1 en live : Osc 2.2 très fortement modifié ... UTF-8 et Php 5.4.
Contribs installées : down_for_maintenance_v 2.3 | Estimated Shipping v1.5 | imprint_1_3_5 | low_stock_report_v2.04 | visible_countries_1.2b | Products Tabs | shoppingCart_cleanup_v1.01.0 | + trop de bidouilles persos pas très OsCommerce (erreurs de jeunesse) Config 2 en local avec UwAmp : Osc Phoenix |
|
26 May 2016, 13:41
Message
#8
|
|
Ceinture jaune+ OSC Groupe : Membres Messages : 131 Inscrit : 9-April 10 Membre no 27422 |
Bonjour Bonbec,
Merci encore J'ai placé le code et ça m'affiche ça : Citation time = 1464266087 products_date_added = strtotime = çà marche pas Donc j'imagine que c'est products_date_added qui manque dans le $listing_sql du fichier index.php ? Je vais vérifier si j'arrive à trouver ça -------------------- Oscommerce 2.3.4 BS
|
|
26 May 2016, 13:45
Message
#9
|
|
Ceinture jaune+ OSC Groupe : Membres Messages : 131 Inscrit : 9-April 10 Membre no 27422 |
Alors, dans mon fichier index.php je trouve "products_date_added" uniquement ici :
Citation // BOF Enable & Disable Categories $listing_sql = "select " . $select_column_list . " p.products_date_added, p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, p.products_sort_order, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from (" . TABLE_PRODUCTS . " p) left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id left join " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c on p.products_id = p2c.products_id left join " . TABLE_CATEGORIES . " c on p2c.categories_id = c.categories_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m where c.categories_status = '1' and p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$HTTP_GET_VARS['filter_id'] . "'"; // EOF Enable & Disable Categories Est-ce normal ? Comme ce bout de code est modifié avec la contribution "Enable & Disable Categories" j'ai peut-être fais des erreurs. -------------------- Oscommerce 2.3.4 BS
|
|
26 May 2016, 14:24
Message
#10
|
|
Ceinture marron OSC Groupe : Modérateurs Messages : 1543 Inscrit : 30-May 06 Lieu : Vichy (03) Membre no 10583 |
Re,
C'est pour ton site MS2.2 ou le 2.3.4 ? Si c'est pour le MS2.2, alors moi j'ai çà (mais ma page est très modifiée) et cela avait été ajouté pour la contrib "New Product Icon contribution" : Code // montre le produit du fabricant spécifié - show the products of a specified manufacturer if (isset($_GET['manufacturers_id'])) { if (isset($_GET['filter_id']) && tep_not_null($_GET['filter_id'])) { // Nous sommes invités à montrer seulement une catégorie spécifique - We are asked to show only a specific category // p.products_date_added to query for New Product Icon contribution $listing_sql = "select " . $select_column_list . " p.products_date_added, p.products_allow_resellers, p.products_discount, p.products_unit, p.products_id, p.manufacturers_id, p.products_price, p.products_price_resellers, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' ".$andpropart." and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$_GET['manufacturers_id'] . "' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$_GET['filter_id'] . "' and ISNULL(p.products_date_available)"; } else { // On montre tout - We show them all // p.products_date_added to query for New Product Icon contribution $listing_sql = "select " . $select_column_list . " p.products_date_added, p.products_allow_resellers, p.products_discount, p.products_unit, p.products_id, p.manufacturers_id, p.products_price, p.products_price_resellers, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m where p.products_status = '1' ".$andpropart." and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$_GET['manufacturers_id'] . "' and ISNULL(p.products_date_available)"; } } else { // On montre les produits de la catégorie spécifiée - show the products in a given categorie if (isset($_GET['filter_id']) && tep_not_null($_GET['filter_id'])) { // Nous sommes invités à montrer seulement une catégorie spécifique - We are asked to show only specific catgeory // p.products_date_added to query for New Product Icon contribution $listing_sql = "select " . $select_column_list . " p.products_date_added, p.products_allow_resellers, p.products_discount, p.products_scale, p.products_unit, p.products_id, p.manufacturers_id, p.products_price, p.products_price_resellers, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' ".$andpropart." and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$_GET['filter_id'] . "' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "' and ISNULL(p.products_date_available)"; } else { // On montre tout - We show them all // p.products_date_added to query for New Product Icon contribution $listing_sql = "select " . $select_column_list . " p.products_scale, p.products_date_added, p.products_allow_resellers, p.products_discount, p.products_unit, p.products_id, p.manufacturers_id, p.products_purchase_price, p.products_price, p.products_price_resellers, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' ".$andpropart." and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "' and ISNULL(p.products_date_available)"; } } Comme tu peux le voir, il y a le p.products_date_added pour chaque $listing_sql = -------------------- Config 1 en live : Osc 2.2 très fortement modifié ... UTF-8 et Php 5.4.
Contribs installées : down_for_maintenance_v 2.3 | Estimated Shipping v1.5 | imprint_1_3_5 | low_stock_report_v2.04 | visible_countries_1.2b | Products Tabs | shoppingCart_cleanup_v1.01.0 | + trop de bidouilles persos pas très OsCommerce (erreurs de jeunesse) Config 2 en local avec UwAmp : Osc Phoenix |
|
26 May 2016, 18:25
Message
#11
|
|
5eme dan OSC Groupe : Administrateur Messages : 9221 Inscrit : 4-March 03 Lieu : Pau Membre no 927 |
Bel effort de codage Bonbec, ça peut marcher mais il y a plus simple.
La date en bdd est toujours enregistrée en datetime ce qui se matérialise par une écriture : yyyy-mm-dd HH:ii:ss Ainsi en PHP la récup de la date courante par date("Y-m-d") a le même format (ici on se fout de l'heure mais on pourrait l'ajouter avec Y-m-d H:i:s). Ce qui fait qu'une simple comparaison du champ avec la date courante sans passer par un strtotime permet de déclencher une action. Mieux, en tronquant la chaine current_date, en enlevant le jour par exemple on peut faire un filtrage mensuel ou en ajoutant l'heure on peut faire un filtrage horaire (ou jusqu'à la seconde) Code $current_date = date('Y-m-d'); $bdd_date = $listing['products_last_modified']; # $bdd_date = $listing['products_date_added']; // autre date au choix if($current_date <= $bdd_date) { // liste d'action } Maintenant il faut que ce champ de date soit chargé par la requête de listing, ce qui semble être le problème dans ce post. Bon courage -------------------- Tout d'abord : - Ni Hotline ni Service Après Vente, ces forums sont un lieu d'échange. BIEN POSER SA QUESTION (généralités)
Les "Informations Importantes" que vous devez ABSOLUMENT avoir lues : Règlement, Bien poser sa question dans ces forums et Bien utiliser les Forums. Les raccourcis pour gagner du temps : la FAQ, les PDF de la Doc (MS2-fr): PDF-V1 et PDF-V2, le moteur de Recherche sur les forums , la Liste des Contributions de Corbin. ----------------------------- Quelques sites de référence --------------------------- PHP: Le site du Zéro et PHP Débutant avec la DOC en français -- HTML: Self HTML - WebProgrammation -- CSS: OpenWeb - AlsaCréations - CSS/Edge -- Autres ressources: - XajaX - highslide js Les bons outils : EasyPHP - WAMP-5 - - Notepad++ - Firefox et son extension WebDeveloper Le gène idéal c'est le gène original. Le génie des halles est un Génie des Alpages qui tente d'être à la page. (Merci f'murrr pour les cours de philosophie de chien) |
|
27 May 2016, 12:29
Message
#12
|
|
Ceinture marron OSC Groupe : Modérateurs Messages : 1543 Inscrit : 30-May 06 Lieu : Vichy (03) Membre no 10583 |
Bonjour Gnidhal,
Effectivement c'est plus simple Par contre, dans le cas présent (ajout de la mention "nouveau" en overlay) je déconseille d'utiliser $listing['products_last_modified'] car en cas de modification de la fiche, pour corriger une faute d'orthographe deux mois après par exemple, cela replacera la mention "nouveau" alors que ce n'est plus le cas. Il vaut mieux, à mon avis, utiliser $bdd_date = $listing['products_date_added']. -------------------- Config 1 en live : Osc 2.2 très fortement modifié ... UTF-8 et Php 5.4.
Contribs installées : down_for_maintenance_v 2.3 | Estimated Shipping v1.5 | imprint_1_3_5 | low_stock_report_v2.04 | visible_countries_1.2b | Products Tabs | shoppingCart_cleanup_v1.01.0 | + trop de bidouilles persos pas très OsCommerce (erreurs de jeunesse) Config 2 en local avec UwAmp : Osc Phoenix |
|
30 May 2016, 13:59
Message
#13
|
|
Ceinture jaune+ OSC Groupe : Membres Messages : 131 Inscrit : 9-April 10 Membre no 27422 |
Bonjour Bonbec et Gnidhal,
Merci beaucoup pour vos réponses, comme d'habitude je suis un peu lente car je n'ai pas encore réessayé mais dès que je m'occupe de ça je vous donne des nouvelles. Merci beaucoup beaucoup. -------------------- Oscommerce 2.3.4 BS
|
|
2 Jun 2016, 14:54
Message
#14
|
|
Ceinture jaune+ OSC Groupe : Membres Messages : 131 Inscrit : 9-April 10 Membre no 27422 |
Bonjour,
Merci encore Bonbec et Gnidhal, me revoilà avec des nouvelles. J'ai ajouté p.products_date_added dans chaque $listing_sql = de l'index mais ça n'a pas changé, toujours rien ne s'affiche J'ai également testé le codage de Gnidhal mais c'est pareil. Il semblerait donc que le champs de date ne soit pas chargé par la requête de listing ? Comment y remédier ? Je précise que c'est pour mon site MS2.2, et je ne sais pas si c'est important mais je précise aussi que j'ai la contribution pour classer la liste des produits en colonnes et que donc mon fichier product_listing.php est en fait un fichier modifié nommé product_listing_col.php. Merci encore -------------------- Oscommerce 2.3.4 BS
|
|
30 Jun 2016, 10:02
Message
#15
|
|
Ceinture marron OSC Groupe : Modérateurs Messages : 1543 Inscrit : 30-May 06 Lieu : Vichy (03) Membre no 10583 |
Re,
Je sais bien que tu es à fond dans la 2.3.4BS, mais tu as avancé avec ce soucis ? Tu as regardé dans ta BDD si le champ products_date_added contenait bien quelque chose ? Si il y a bien quelque chose, alors le problème est ailleurs. Mon petit code de test, tu le places où ? Sinon pour voir ce que contient $listing, tu peux mettre ceci provisoirement : Code echo '<pre>'; print_r($listing); echo '</pre>'; après les lignes dans ton fichier product_listing_col.php (vers la ligne 77 chez moi) : Code $listing_query = tep_db_query($listing_split->sql_query);
while ($listing = tep_db_fetch_array($listing_query)) { Ce message a été modifié par Bonbec - 30 Jun 2016, 10:04. -------------------- Config 1 en live : Osc 2.2 très fortement modifié ... UTF-8 et Php 5.4.
Contribs installées : down_for_maintenance_v 2.3 | Estimated Shipping v1.5 | imprint_1_3_5 | low_stock_report_v2.04 | visible_countries_1.2b | Products Tabs | shoppingCart_cleanup_v1.01.0 | + trop de bidouilles persos pas très OsCommerce (erreurs de jeunesse) Config 2 en local avec UwAmp : Osc Phoenix |
|
Version bas débit | Nous sommes le : 29th March 2024 - 12:22 |
Ce site est déclaré auprès de la commision Nationale de l'Informatique et des Libertés (déclaration n°: 1043896) |