Bonjour,
j’aimerai afficher après mes tweets, l’heure d’envoi des tweets par un "il y a 5 heures" par exemple.
Ainsi que séparer d’un trait mes tweets pour une meilleurs lecture.
Merci.

11 réponses


Pakito
Réponse acceptée

Pour ta question sur les dates :
http://fr.openclassrooms.com/forum/sujet/module-date-special-44342

Pour séparer les tweets d'un trait, soit un border-bottom en CSS sur le conteneur de chaque tweet, soit un <hr> HTML entre chaque élément de ton foreach.

Pakito
Réponse acceptée

D'accord, c'est donc le param "created_at" qu'il faut passer à ta fonction Aff_Date().

Un truc du type echo(affDate($tweets->created_at)); ce qui devrait te retourner une date bien formatée.

arstkory
Auteur

Merci, les traits entre chaque tweets fonctionnent bien avec le <hr>.

Cependant je débute dans le php, si je comprend bien, je doit copier le code

<?php
function AffDate($date){
 if(!ctype_digit($date))
  $date = strtotime($date);
 if(date('Ymd', $date) == date('Ymd')){
  $diff = time()-$date;
  if($diff < 60) /* moins de 60 secondes */
   return 'Il y a '.$diff.' sec';
  else if($diff < 3600) /* moins d'une heure */
   return 'Il y a '.round($diff/60, 0).' min';
  else if($diff < 10800) /* moins de 3 heures */
   return 'Il y a '.round($diff/3600, 0).' heures';
  else /* plus de 3 heures ont affiche ajourd'hui à HH:MM:SS */
   return 'Aujourd\'hui à '.date('H:i:s', $date);
 }
 else if(date('Ymd', $date) == date('Ymd', strtotime('- 1 DAY')))
  return 'Hier à '.date('H:i:s', $date);
 else if(date('Ymd', $date) == date('Ymd', strtotime('- 2 DAY')))
  return 'Il y a 2 jours à '.date('H:i:s', $date);
 else
  return 'Le '.date('d/m/Y à H:i:s', $date);
}

dans le fichier fonction.php ? et faire l'appel de cette fonction dans le code des tweets ?

Sans ton code, je ne peux pas vraiment t'aider.

En gros, la fonction que je t'ai donné attend un format DATETIME valide et va, à partir de ce datetime te renvoyer une chaîne de caractère au format attendu.

Donc quand tu affiches la date fournie par Twitter pour tes tweets, plutôt que de l'afficher bêtement, tu appelles la fonction AffDate() en lui passant en paramètre la date du tweet.

arstkory
Auteur

Ci sa peut t'aider voici le code pour afficher mes tweets:

<h5> Derniers tweets </h5>
        <?php
        $cache = 'cache/tweets.tmp';
        if(time() - filemtime($cache) >60){

        require 'class/twitteroauth.php';
        $connection = new TwitterOAuth('ILL49d2JqQVZrrjUv9ZSwFg9a','lHBLIhah8aJdHu4QD0yCy4vwDxVhBvGPHoHiw5PaUZSxXxoAvz','170393960-I25xp32QDKSSnWcjq2LoEVrUojnMmkbp4WlcSw8y','Tzy3KGmLv1oZgW3JOf9ORRacBHUwKUdK9j12NJiu5CCEP');
        $tweets = $connection->get('statuses/user_timeline', array('count' => 3));
        file_put_contents($cache, serialize($tweets));

        }else{
            echo 'Cache utilisé';
            $tweets = unserialize(file_get_contents($cache));
        }
        ?>

        <ul>
        <?php foreach ($tweets as $k => $tweets): ?>
            <li><hr><?php echo parseTweet ($tweets-> text); ?></hr></li>
        <?php endforeach ?>
        </ul>
arstkory
Auteur

Et je le place où echo(affDate($tweets->created_at)); ?
Désoler de me prendre si loin par la main, mais j'ai du mal à comprendre.

arstkory
Auteur

C'est bon j'ai trouver. Par contre j'ai çà d'écrit "Hier ? 21:34:03". Comment remplacer "?" par "à" ?

arstkory
Auteur

Je reviens en arrière. Il y à quelque chose dans le code que tu mas donner qui fait planter l'administration de wordpress. Exemple quand je créer une nouvelle page (rien de plus simple), après avoir cliquer sur publier, j'ai une page blanche. Dès que je retire la fonction tous redeviens normale. Qu'est-ce qui cloche ?

L'appel à la fonction est à stocker dans une variable ou à echo() où tu souhaites l'afficher.

Pour le plantage de l'admin Wordrpress c'est étrange. Je suis dans le train mais je jetterai un œil à ça ce soir. As-tu virer le "<?php" au début du code? Parce que si tu l'as collé dans functions.php, j'imagine qu'il y a d'autres choses dans le fichier.

Cela dit si tu es sous Wordpress, je pense qu'il y a des tas de plugins qui font ce que tu cherches.

arstkory
Auteur

C'est bon tous fonctionne correctement Komodo edit à du générer une erreur ou corrompre mon fichier function.php. Ce n'ai pas la première fois que je rencontre ce souci. J'ai recopier les codes avec dreamweaver du coups même les "?" ont étaient changer en "à". Merci pour tous Pakito. Enjoy.

Parfait si ça fonctionne ;) Bon courage pour la suite !

Par contre, lâche Komodo et Dreamweaver et passe à Sublime Text ! :)