Web Sémantique

SourcePhpDerniersChangementsRSS1Point0

PagePrincipale :: DerniersChangements :: DerniersCommentaires :: ParametresUtilisateur :: Vous êtes 38.103.63.56
cnaacel

Le code de DerniersChangementsRSS1Point0 est :

<?php
# Generation d'un canal RSS 1.0 a partir des derniers changements

# Parametres : link : URI de base identifiant le canal (obligatoire)

# exemple : {{recentchangesrss10 link="DerniersChangementsRSS1Point0"}}
#
# copyright Equipe WikiNi et Eric van der Vlist 2004 mailto:vdv@dyomedea.com
#
# Licence GPL, vous etes libre d'utiliser et de modifier ce code a condition de
# laisser le copyright d'origine. Vous pouvez  bien sur vous ajouter a la liste
# des auteurs.
#
# Installation : copier le fichier dans le repertoire "actions" de WikiNi

if ($user $this->GetUser())
{
    
$max $user["changescount"];
}
else
{
    
$max 50;
}

if (
$pages $this->LoadRecentlyChanged($max))
{
    if (!(
$link $this->GetParameter("link"))) $link=$this->config["root_page"];
    
$output "<?xml version=\"1.0\" encoding=\"iso-8859-1\" ?>\n";
    
$output .= "<!-- RSS v1.0 generated by Wikini -->\n";
    
$output .= "<rdf:RDF\n";
    
$output .= "\txmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'\n";
    
$output .= "\txmlns:dc='http://purl.org/dc/elements/1.1/'\n";
    
$output .= "\txmlns='http://purl.org/rss/1.0/'>\n\n";
 
    
$output .= "<channel rdf:about='" $this->config["base_url"] . $link "'>\n";
    
$output .= "\t<title> Derniers changements sur "$this->config["wakka_name"]  . "</title>\n";
    
$output .= "\t<link>" $this->config["base_url"] . $link "</link>\n";
    
$output .= "\t<description> Derniers changements sur " $this->config["wakka_name"] . " </description>\n";
    
$output .= "\t<dc:language>fr</dc:language>\n";
    
$output .= "\t<items>\n";
    
$output .= "\t\t<rdf:Seq>\n";
    foreach (
$pages as $i => $page)
    {
        
$output .= "\t\t\t<rdf:li rdf:resource='" $this->config["base_url"] . $page["tag"] . "&amp;time=" rawurlencode($page["time"]) . "'/>\n";
    }
    
$output .= "\t\t</rdf:Seq>\n";
    
$output .= "\t</items>\n";
    
$output .= "</channel>\n\n";

    foreach (
$pages as $i => $page)
    {
        list(
$dayslash$time) = explode(" "$page["time"]);
        
$daypreg_replace("/-/"" "$dayslash);
        list(
$hh,$mm,$ss) = explode(":"$time);
        
$about $this->config["base_url"] . $page["tag"] . "&amp;time=" rawurlencode($page["time"]) ;
        
$output .= "<item rdf:about='$about'>\n";
        
$output .= "\t<title>" $page["tag"] . "</title>\n";
        
$output .= "\t<description> Modification de " $page["tag"] . " --- par " .$page["user"] . " le " $day ." - "$hh .":"$mm "</description>\n";
        
$output .= "\t<link>$about</link>\n";
        
$output .= "\t<dc:date>" $dayslash "T" $time "</dc:date>\n";
        
$output .= "</item>\n\n";
    }
    
$output .= "</rdf:RDF>\n";
    echo 
$output ;
}
?>


Validation

Attention, le flux ne valide pas du fait du format de la date (<dc:date>) qui n'intègre pas le fuseau horaire cf. http://feedvalidator.org/check?url=http://websemantique.org/DerniersChangementsRSS1Point0/xml.
Je pense qu'il faudrait adopter le format suivant :
(noter le +01:00 pour indiquer le fuseau horaire).
Il faut cependant déterminer le fuseau horaire. Je propose qu'il soit fixé par défaut à +00:00 soit :
Mais le fuseau horaire doit aussi pouvoir être spécifié par l'utilisateur ; il faudrait donc ajouter un second paramètre à la fonction :
par exemple : {{recentchangesrss10 link="DerniersChangementsRSS1Point0" zone="+01:00"}}
-- CharlesNepote

Numérotation de l'action

Pour faciliter le travail sur cette action, il faudrait lui ajouter un numéro de version :
-- CharlesNepote

Améliorer la sémantique du Fil RSS

Bizarrement, le fil RSS le plus pauvre que j'ai vu pour un wiki est celui de Websemantique.org ;-) Je propose d'utiliser plus de méta données et d'utiliser plus rigoureusement les balises RSS.
Voici mes suggestions d'amélioration :
-- FrancoisHodierne?

Vu. Tu as raison. Tes propositions sont faciles à mettre en oeuvre sur WikiNi. Il suffit de modifier le fichier SourcePhpDerniersChangementsRSS1Point0. Je pense m'en charger un jour... si ça t'amuse tu installes chez toi un WikiNi tout frais (0.4.1rc) et tu retravaille le SourcePhpDerniersChangementsRSS1Point0 (très facile à lire). Pour les éléments du module Wiki RSS, je peux te fournir les correspondances avec les objets WikiNi (par exemple pour <wiki:history> : $this->config["base_url"] . $page["tag"] . "/revision" ) ; sachant que WikiNi ne gère pas beaucoup de choses proposées.
-- CharlesNepote
Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]