Skip to content

Instantly share code, notes, and snippets.

@stuff
Created February 17, 2010 15:34
Show Gist options
  • Save stuff/306717 to your computer and use it in GitHub Desktop.
Save stuff/306717 to your computer and use it in GitHub Desktop.
UWA skeleton, french version
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:widget="http://www.netvibes.com/ns/" >
<head>
<title>Titre du widget</title>
<link rel="icon" type="image/png" href="http://www.netvibes.com/favicon.ico" />
<meta name="author" content="John Doe" />
<meta name="website" content="http://exemple.org" />
<meta name="description" content="Une description" />
<meta name="keywords" content="voici, des, mots-clefs" />
<meta name="screenshot" content="http://exemple.org/widget-full.png" />
<meta name="thumbnail" content="http://exemple.org/widget-logo.png" />
<meta name="apiVersion" content="1.2-ginger" />
<meta name="autoRefresh" content="20" />
<meta name="debugMode" content="true" />
<link rel="stylesheet" type="text/css" href="http://www.netvibes.com/themes/uwa/style.css" />
<script type="text/javascript" src="http://www.netvibes.com/js/UWA/load.js.php?env=Standalone"></script>
<style type="text/css">
/*
déclarez vos règles css ici, en les préfixant du nom de votre widget
*/
.MonWidget h1 {
color:green;
}
</style>
<widget:preferences>
<preference name="url" type="text" label="URL" defaultValue="http://feeds.feedburner.com/NetvibesDevBlog" />
<preference name="password" type="password" label="Password" />
<preference name="displayImages" type="boolean" label="Display images?" defaultValue="true" />
<preference name="limit" type="range" label="Number of items to display" defaultValue="10" step="1" min="1" max="25" />
<preference name="category" type="list" label="Category" defaultValue="1st" onchange="onCategoryPrefChange">
<option value="all" label="all" />
<option value="1st" label="First category" />
<option value="2nd" label="Second category" />
<option value="3rd" label="Third category" />
</preference>
<preference name="search" type="hidden" defaultValue="" />
</widget:preferences>
<script type="text/javascript">
var MonWidget = {
// variable servant à stocker les données (cache)
data: null,
// variable servant à stocker les éléments du dom du widget
elements: {},
// cette methode est appelée par widget.onLoad
load: function(){
// création du squelette de base
MonWidget.buildSkeleton();
// chargement d'un flux rss en ajax, MonWidget.parse est utilisé en callback
UWA.Data.getFeed(widget.getValue('url'), MonWidget.parse);
},
// nous créeons ici le squelette de base du widget
buildSkeleton: function(){
// on s'assure que le corps du widget est complètement vide
widget.body.empty();
// on créer un DIV qui sera le conteneur principal, que l'on inject dans le corps du widget
MonWidget.elements['conteneur'] = widget.createElement('div', {
'class' : 'MonWidget'
}).inject(widget.body);
// affichage d'un message pour faire patienter pendant le chargement
MonWidget.elements['conteneur'].setText('Chargement...');
},
// est appelée quand le flux rss est totalement chargé.
// 'data' contient alors le flux transformé en JSON par le proxy de netvibes
parse: function(data){
// on remplis notre variable 'MonWidget.data' avec les infos qui nous interressent
MonWidget.data = {
'titreFlux': data.title,
'titrePremierArticle': data.items[0].title
}
// on lance finalement l'affichage final de notre widget
MonWidget.display();
},
// methode pour afficher le résultat de notre requête ajax
display: function(){
var html = '<h1>' + MonWidget.data.titreFlux + '</h1>';
html += '<h2>' + MonWidget.data.titrePremierArticle + '</h2>';
MonWidget.elements['conteneur'].setHTML(html);
}
};
// widget.onLoad est la première méthode appelée par le framework UWA pour démarrer votre widget
widget.onLoad = MonWidget.load;
// widget onRefresh est appelé quand l'utilisateur clique sur le bouton pour rafraichir le widget,
// ici nous appelons directement la methode widget.onLoad du dessus.
widget.onRefresh = widget.onLoad;
// cette méthode est appelée quand l'utilisateur change la préférence "category"
widget.onCategoryPrefChange = widget.onLoad;
</script>
</head>
<body>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment