Aller au contenu

Alerte aux anciens articles !


dawdy

Sujets conseillés

Bonjour la communauté,

Cela fait très longtemps que je n'ai pas posté sur ce forum, une toute petite lacune m'a oubligé de venir vers vous. :)

Voila, en fait ! mon problème est au niveau d'une alerte que je voulais appliquer sur certains articles sur un des sites sous WordPress.

L'exemple de ce que je cherche est le suivant : http://www.kriisiis.fr/index.php/shopperpress-lultime-wordpress-e-commerce/ Vous avez un bloc en haut de l'article contenant ceci : "À l'attention des lecteurs - Cet article a été publié il y a 2 ans 7 mois 12 jours ... "

Un novice en PHP s'adresse aux experts en la matière pour demander comment peut-on procéder à ce genre d'alerte ?

Est-ce qu'il existe un plugin qui fonctionne de la mème manière ?

Cdt

Lien vers le commentaire
Partager sur d’autres sites

Sous wordpress, il doit sans doute exister un plugin le faisant.

Dans le PHP en général, si la date est stockée en tant que time() (fonction qui déclare combien de secondes se sont écoulées depuis le 1er janvier 1970) cela serait très facile. Un simple comparatif entre le time() fait lors de de la création de l'article et un time() au moment de l'ouverture devrait te donner ce résultat. Ensuite, suffit de calculer via les secondes de différence, combien de temps c'est écoulé.

Je ne connais pas la structure WordPress, mais ça doit être possible... Sinon, il doit y avoir des astuces pour migrer d'un format de date a un autre, et ainsi revenir au time(). ;)

j'espère que ça aura pu aider un peu,

cordialement,

Lien vers le commentaire
Partager sur d’autres sites

Merci Aenoa pour votre retour.

J'avoue que c'est du charabia pour moi :). En gros, je croyais que ca ne demande que quelques lignes de codes ...

Concernant un plugin WordPress, et après plusieurs recherches je n'ai pas trouvé un qui pourra combler ce besoin :/

Lien vers le commentaire
Partager sur d’autres sites

Merci Aenoa pour votre retour.

J'avoue que c'est du charabia pour moi :). En gros, je croyais que ca ne demande que quelques lignes de codes ...

Concernant un plugin WordPress, et après plusieurs recherches je n'ai pas trouvé un qui pourra combler ce besoin :/

ça peut ne faire qu'une ligne de code, si on transforme le procédé en fonction :P

je vais m'y intéresser de plus près, je donnerais mon retour ici dans le cas où j'aurais réussi a coder ceci ^^

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Oh c'est énorme de votre part ! En attendant, je m'empèche pas de fouiller partout à la recherche d'une issue ...

Merci d'avance Aenoa pour votre temps.

Lien vers le commentaire
Partager sur d’autres sites

j'ai installé un WP de test pour avoir la structure de DB.

les dates sont au format "YYYY-MM-DD HH:mm:SS". Un strtotimestamp() permet de convertir cela en time().

j'ai tenté de faire un petit script rapide de comparatif entre la date de l'article et la date du jour, mais je n'ai pour l'instant pas abouti.

J'ai toutefois trouvé un petit script permettant de faire ce que tu désires. Voici son code:



<?php
/*
source => http://www.commentcamarche.net/forum/affich-1901352-php-calcul-du-temps-ecoule-entre-2-dates
*/

function temps_ecoule($date,$type) {
if($type == "timestamp") {
$date2 = $date; // depuis cette date
} elseif($type == "date") {
$date2 = strtotime($date); // depuis cette date
} else {
return "Non reconnu";
exit();
}
$date1 = date("U"); // à la date actuelle
$return = "";
// ######## ANNEE ########
if((date('Y',$date1 - $date2)-1970) > 0) {
if((date('Y',$date1 - $date2)-1970) > 1) {
$echo_annee = (date('Y',$date1 - $date2)-1970)." Anneés";
$return = $echo_annee.", ";
} else {
$echo_annee = (date('Y',$date1 - $date2)-1970)." Année";
$return = $echo_annee.", ";
}
} else {
$echo_annee = "";
$return = $return;
}
// ######## MOIS ########
if((date('m',$date1 - $date2)-1) > 0) {
$echo_mois = (date('m',$date1 - $date2)-1)." Mois";
if(!empty($echo_annee)) {
$return = $echo_annee." et ".$echo_mois;
} else {
$return = $echo_mois;
}
} else {
$echo_mois = "";
$return = $return;
}
// ######## JOUR ########
if((date('d',$date1 - $date2)-1) > 0) {
if((date('d',$date1 - $date2)-1) > 1) {
$echo_jour = (date('d',$date1 - $date2)-1)." Jours";
if(!empty($echo_annee) OR !empty($echo_mois)) {
$return = $return.$echo_mois." et ".$echo_jour;
} else {
$return = $return.$echo_mois.$echo_jour;
}
} else {
$echo_jour = (date('d',$date1 - $date2)-1)." Jour";
if(!empty($echo_annee) OR !empty($echo_mois)) {
$return = $return.$echo_mois." et ".$echo_jour;
} else {
$return = $return.$echo_mois.$echo_jour;
}
}
} else {
$echo_jour = "";
$return = $return;
}
// ######## HEURE ########
if((date('H',$date1 - $date2)-1) > 0) {
if((date('H',$date1 - $date2)-1) > 1) {
$echo_heure = (date('H',$date1 - $date2)-1)." Heures";
if(!empty($echo_annee) OR !empty($echo_mois) OR !empty($echo_jour)) {
$return = $echo_annee.$echo_mois.$echo_jour." et ".$echo_heure;
} else {
$return = $echo_annee.$echo_mois.$echo_jour.$echo_heure;
}
} else {
$echo_heure = (date('H',$date1 - $date2)-1)." Heure";
if(!empty($echo_annee) OR !empty($echo_mois) OR !empty($echo_jour)) {
$return = $echo_annee.$echo_mois.$echo_jour." et ".$echo_heure;
} else {
$return = $echo_annee.$echo_mois.$echo_jour.$echo_heure;
}
}
} else {
$echo_heure = "";
$return = $return;
}
// ######## MINUTE ET SECONDE ########
$virgule_annee = "";
$virgule_mois = "";
$virgule_jour = "";
if(date('i',$date1 - $date2) > 0) {
if(date('i',$date1 - $date2) > 1) {
$echo_minute = round(date('i',$date1 - $date2))." Minutes";
if(!empty($echo_annee) OR !empty($echo_mois) OR !empty($echo_jour) OR !empty($echo_heure)) {
if(!empty($echo_annee)) {
if(!empty($echo_mois) OR !empty($echo_jour) OR !empty($echo_heure)) {
$virgule_annee = ", ";
}
}
if(!empty($echo_mois)) {
if(!empty($echo_jour) OR !empty($echo_heure)) {
$virgule_mois = ", ";
}
}
if(!empty($echo_jour)) {
if(!empty($echo_heure)) {
$virgule_jour = ", ";
}
}
$return = $echo_annee.$virgule_annee.$echo_mois.$virgule_mois.$echo_jour;
} else {
$return = $echo_annee.$virgule_annee.$echo_mois.$virgule_mois.$echo_jour;
}
} else {
$echo_minute = round(date('i',$date1 - $date2))." Minute";
if(!empty($echo_annee) OR !empty($echo_mois) OR !empty($echo_jour) OR !empty($echo_heure)) {
if(!empty($echo_annee)) {
if(!empty($echo_mois) OR !empty($echo_jour) OR !empty($echo_heure)) {
$virgule_annee = ", ";
}
}
if(!empty($echo_mois)) {
if(!empty($echo_jour) OR !empty($echo_heure)) {
$virgule_mois = ", ";
}
}
if(!empty($echo_jour)) {
if(!empty($echo_heure)) {
$virgule_jour = ", ";
}
}
$return = $echo_annee.$virgule_annee.$echo_mois.$virgule_mois.$echo_jour;
} else {
$return = $echo_annee.$virgule_annee.$echo_mois.$virgule_mois.$echo_jour;
}
}
} else {
if(date('s',$date1 - $date2) > 1) {
$echo_minute = round(date('s',$date1 - $date2))." Secondes";
if(!empty($echo_annee) OR !empty($echo_mois) OR !empty($echo_jour) OR !empty($echo_heure)) {
if(!empty($echo_annee)) {
if(!empty($echo_mois) OR !empty($echo_jour) OR !empty($echo_heure)) {
$virgule_annee = ", ";
}
}
if(!empty($echo_mois)) {
if(!empty($echo_jour) OR !empty($echo_heure)) {
$virgule_mois = ", ";
}
}
if(!empty($echo_jour)) {
if(!empty($echo_heure)) {
$virgule_jour = ", ";
}
}
$return = $echo_annee.$virgule_annee.$echo_mois.$virgule_mois.$echo_jour;
} else {
$return = $echo_annee.$virgule_annee.$echo_mois.$virgule_mois.$echo_jour;
}
} else {
if(!empty($echo_annee) OR !empty($echo_mois) OR !empty($echo_jour) OR !empty($echo_heure)) {
if(!empty($echo_annee)) {
if(!empty($echo_mois) OR !empty($echo_jour) OR !empty($echo_heure)) {
$virgule_annee = ", ";
}
}
if(!empty($echo_mois)) {
if(!empty($echo_jour) OR !empty($echo_heure)) {
$virgule_mois = ", ";
}
}
if(!empty($echo_jour)) {
if(!empty($echo_heure)) {
$virgule_jour = ", ";
}
}
$return = $echo_annee.$virgule_annee.$echo_mois.$virgule_mois.$echo_jour;
} else {
$return = $echo_annee.$virgule_annee.$echo_mois.$virgule_mois.$echo_jour;
}
}
}
return "Il y a ".$return;
}

$date = "13-04-2010";
echo "<h1>Attention !</h1>
Cet article a été rédigé il y a ".temps_ecoule($date,"date").".<br />
Il ce peut qu'il soit obsolète et qu'un nouveau aie vu le jour depuis.";
?>

pour la date spécifiée (13 avril 2010), cela me retourne "1 Année, 11 Mois , 1 Jour".

après, faut trouver quelqu'un sachant l'intégrer a WP et faire une condition (si posté il y a plus de 1 an, par exemple).

Cordialement,

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

Je vous remercie Aenoa pour votre effort :blush:

Effectivement Dadou c'est ce que je cherche, rien à dire. Cependant j'ai aperçu qu'il existe des appels de liens externes dans le code source du plugin ! Aucun souci de sécurité par hasard ?

Voila voila, merci à vous encore une fois.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...