| Auteur |
Sujet |
xbee
Bisu
enregistré depuis : mai. 2007
Messages : 67
dernière visite: 05.04.08
|
Bonjour,
voilà, j'ai compris comment marchait les flux RSS dans la .8 et comment personnaliser l'affichage de ces flux mais j'avais envie de faire quelque chose de vraiment super innovant genre mettre une étoile à coté du titre si la news datait de moins d'une journée par exemple (je sais, concept super novateur, j'en suis encore tout retourné). Mais voilà, en regardant les champs date, je m'apercois que c'est un peu le bazar là-dedans.
Si je regarde la spec RSS 2.0, je dois avoir une champs pubDate avec une date genre
- <pubDate>Mon, 28 Jan 2008 19:53:16 +0100</pubDate>
Je regarde sur un flux généré par Spip (en 2.0) et j'obtient
- <dc:date>2008-01-30T06:00:00Z</dc:date>
pour un troisième par une autre moteur (en 0.91 sois disant)
- <date>2008-01-15 09:47:50</date>
Mouais, comme quoi cela n'a pas l'air facile de comparer une simple date dans les RSS, quelqu'un a une idée ?
modifié par : xbee, 31 Jan 2008 - 16:21
"Power corrupts. PowerPoint corrupts absolutely."
My personnal (french) Websites: http://www.xbee.net (0.8)
and http://fczone.xbee.net (0.764)
|
| 31.01.2008, 16:20 |
|
 |
YokaV
Grand Maître
enregistré depuis : déc. 2005
Messages : 600
dernière visite: 20.06.08
|
Bonjour,
Je ne saurais trop te dire lequel est le meilleur ou le "plus" compatible, mais lorsque j'ai créé un flux rss récemment j'ai utilisé les spécifications rss 2.0 et j'ai généré des dates du genre :
Ca fonctionnait parfaitement !
-------------------------------------------
...n'oubliez pas que l'outil Recherche est votre ami !
...bien souvent il répond à nos questions avant même que l'on ne se les pose ! ^^
|
| 31.01.2008, 18:24 |
|
 |
xbee
Bisu
enregistré depuis : mai. 2007
Messages : 67
dernière visite: 05.04.08
|
Mon problème n'est pas de le générer mais de traiter des flux "entrants", j'ai besoins de comparer des dates genre $daterss > $dateref mais si $daterss à un format assez divers, je ne sais pas si cela va fonctionner correctement. Ma question était donc de savoir si qqun avait déjà fait le test ou avait une fonction magique genre - compareDateRFC822($daterss,$dateref)
- {
- ...
- }
Je me pose peut être trop de question ...
"Power corrupts. PowerPoint corrupts absolutely."
My personnal (french) Websites: http://www.xbee.net (0.8)
and http://fczone.xbee.net (0.764)
|
| 31.01.2008, 18:56 |
|
 |
Gilles
Grand Maître
enregistré depuis : jui. 2005
Messages : 2192
dernière visite: 08.07.08
|
tu n'auras pas un format divers dans TON flux rss puisque c'est toi qui le crée.
A toi ensuite de créer un plugin au thème pour mettre ensuite ta petite étoile.
Si tu as besoin d'aide pour créer le plugin, on pourra t'aider.
Je trouve ton idée d'étoile très bien, je trouve !
a+
Gilles ><>°
|
| 31.01.2008, 21:35 |
|
 |
xbee
Bisu
enregistré depuis : mai. 2007
Messages : 67
dernière visite: 05.04.08
|
Hélas, hélas, afficher mes flux RSS, ce n'est pas vraiment intéressant dans mon cas, le flux vient de Spip et d'un autre CMS donc je ne controle pas le format que je dois afficher. Mais je vais essayer de comparer les dates simplement, je n'ai pas beaucoup de format à prendre en compte dans mon cas, c'est juste que cela sera moins "généraliste".
Merci
"Power corrupts. PowerPoint corrupts absolutely."
My personnal (french) Websites: http://www.xbee.net (0.8)
and http://fczone.xbee.net (0.764)
|
| 31.01.2008, 22:18 |
|
 |
Gilles
Grand Maître
enregistré depuis : jui. 2005
Messages : 2192
dernière visite: 08.07.08
|
Pour synthétiser la chose:
Tu affiches des flux sur une page php normale, mais tu désires rajouter une petite étoile avant les éléments datants de moins d'un jour.
C'est ca ?
Gilles ><>°
|
| 31.01.2008, 22:27 |
|
 |
xbee
Bisu
enregistré depuis : mai. 2007
Messages : 67
dernière visite: 05.04.08
|
Voilà, voilà, mais quand je regarde ce que contient le champs pubDate, j'ai l'impression de c'est assez divers et varié comme format même en RFC822 et je ne parle pas des sites qui ne le respecte pas. Donc, ma question était simplement de savoir si quelqu'un avait une fonction magique pour s'être confronté au problème ou pas. Mais peut être que je me pose des questions existentielles pour rien, je n'ai pas essayé encore ...
P.S.: la fonction "M'avertir lorsqu'une réponse est envoyée" est censée envoyer un mail à chaque réponse ? Parce que je l'ai plusieurs fois cochée et je n'ai jamais rien reçu ... :(
"Power corrupts. PowerPoint corrupts absolutely."
My personnal (french) Websites: http://www.xbee.net (0.8)
and http://fczone.xbee.net (0.764)
|
| 01.02.2008, 06:57 |
|
 |
Gilles
Grand Maître
enregistré depuis : jui. 2005
Messages : 2192
dernière visite: 08.07.08
|
Alors,
pour résoudre ton problème il va falloir créer un plugin et utiliser smarty.
dans le dossier plugins de Feeds/templates/ créer un fichier function.markstar.php
et dedans mettre
- <?php
- function smarty_function_markstar($params,&$smarty)
- {
-
- $date = $params['date'];
- //faire la détection de la date (la mettre en timestamp)
-
- //déterminer si date_actuelle (timestamp) - 1 jour < date feed
-
- si oui return <img src="aaa' />
- sinon return false
-
- }
dans ton template (que je t'invite à copier dans ton thème : modules/Feeds/pntemplates le déplaceer dans /themes/modules/Feeds)
tu met à l'endroit ou tu veux l'étoile :
<!--[markstar date=$date]-->
Gilles ><>°
|
| 01.02.2008, 08:43 |
|
 |
xbee
Bisu
enregistré depuis : mai. 2007
Messages : 67
dernière visite: 05.04.08
|
C'est fait (avant même de voir ta réponse) et cela a l'air de marcher, je vois des étoiles partout ... (non, non, je n'ai rien pris de particulier :))
Merci
Aller voilà ma copie, il y a certainement une façon de faire + simple
- /**
- * Smarty function to check feed date
- *
- *
- * Example
- * <!--[assign var=date value=$feeditem->get_date()]-->
- * <!--[is_newfeed date=$date ref=2 assign=isnew]-->
- * <!--[if $isnew eq 'yes']-->
- * ...
- *
- * @author xbee
- * @since 01/2008
- * @param array $params All attributes passed to this function from the template
- * @param object &$smarty Reference to the Smarty object
- */
- function smarty_function_is_newfeed($params, &$smarty)
- {
- extract($params);
-
- // pas de bras, pas de chocolat ...
- if (!isset($date))
- {
- return "no";
- }
-
- // par défaut un jour
- if (!isset($ref))
- {
- $ref = 1;
- }
-
- // on vire le "local time format" en fonction de la plateforme (pour le strtotime)
- // la date d'un flux RSS 2.0 devant être en RFC822 soit en anglais
- if (stristr(getenv('OS'), 'windows'))
- {
- setlocale(LC_TIME, 'eng');
- }
- else
- {
- setlocale(LC_TIME, 'en_US');
- }
-
- $now = time(); // récup timestamp courant
- $olddate = strtotime($date); // conversion date à vérifier en timestamp
- $diff = ($now - $olddate) / (3600 * 24);
-
- $ret = "no";
- if ($diff <= $ref)
- {
- $ret = "yes";
- }
-
- setlocale (LC_TIME, pnConfigGetVar('locale'));
- if (isset($assign))
- {
- $smarty->assign($assign, $ret);
- }
- else
- {
- return $ret;
- }
- }
"Power corrupts. PowerPoint corrupts absolutely."
My personnal (french) Websites: http://www.xbee.net (0.8)
and http://fczone.xbee.net (0.764)
|
| 01.02.2008, 15:27 |
|
 |
Gilles
Grand Maître
enregistré depuis : jui. 2005
Messages : 2192
dernière visite: 08.07.08
|
Citation :
Aller voilà ma copie, il y a certainement une façon de faire + simple
oui, je pense...
tente de reprendre le plugin que j'ai commencé, ensuite, fait une expression régulière pour rechercher le format (s'il y a un +, un Z, qu'un seul espace).
Ensuite, extrait-en la date, crée le timestamp et fait une comparaison !
J'ai l'impression que dans ton plugin, la gestion des différents cas est difficile...
++
Gilles ><>°
|
| 01.02.2008, 20:01 |
|
 |
xbee
Bisu
enregistré depuis : mai. 2007
Messages : 67
dernière visite: 05.04.08
|
Mon but n'est pas de faire qqchose qui va marcher partout, cela fonctionne (enfin je pense) chez moi et cela me suffit. Mon (véritable) problème était d'identifier les choses à prendre en compte, quel champs de la classe simplepie que fournit le module Feeds, quel "locale" utiliser, quelle fonction pour convertir en timestamps. Maintenant que cela "marche", j'ai tellement d'autres problèmes sur mon nouveau site en .8 que je vais laisser cela comme cela tant que cela marche. Maintenant si cela peut être utile à qqun comme base par la suite, il y a un bout de code qui existe ... :)
Merci !
"Power corrupts. PowerPoint corrupts absolutely."
My personnal (french) Websites: http://www.xbee.net (0.8)
and http://fczone.xbee.net (0.764)
|
| 01.02.2008, 23:08 |
|
 |