Godefroy de Compreignac
Suivre le flux RSS des articles
Suivre le flux RSS des commentairesDétecter les sites que vos visiteurs utilisent
Skreo, le 1 Août 2008 à 02:34Je me suis souvenu d'un article très intéressant sur lequel j'étais tombé il y a un ou deux mois, présentant une classe javascript permettant de détecter quels réseaux sociaux utilisent les visiteurs. En regardant le code de plus prêt, je l'ai trouvé compliqué pour pas grand chose, avec l'utilisation d'une iframe et un code pas très optimisé.
Voici donc un code que je viens de pondre, parce que je pense qu'il pourra être utile, aussi bien pour vous que pour moi
J'utilise ici le framework Mootools 1.2 , mais je pense que c'est facilement adaptable à d'autres. Le principe est simple, on utilise une "faille" du CSS qui consiste à récupérer le style de liens après avoir appliqué un style particulier aux liens visités ("a:visited").Une petite démo pour commencer : checkvisited.html
On va donc commencer par faire un peu de CSS :
a.test_visited { display: block; }
a.test_visited:visited { display: none; }C'est tout pour le CSS !
Maintenant, le Javascript :// Implémentation de la fonction checkVisited
// pour les chaînes de caractères (String)
String.implement({
checkVisited : function(){
var e = (new Element("a", {
href: this,
"class" : "test_visited"
}))
.inject(document.body),
b = e.getStyle("display")=="none";
e.destroy();
return b;
}
});
// Implémentation de la fonction checkVisited pour
// les tableaux (Array) : tester une liste d'urls
Array.implement({
checkVisited : function(){
var b = false;
this.each(function(s){
if(s.checkVisited())
b = true;
})
return b;
}
});Ces deux implémentations permettent de vérifier une URL ou une liste d'URLs.
On va reprendre l'exemple des réseaux sociaux que traite Aza Raskin dans son article. D'abord, on crée un conteneur pour l'affichage du résultat :
Ensuite, on crée la liste et on la traite :
// Liste de réseaux sociaux
var sites = {
"Digg": ["http://digg.com", "http://digg.com/login"],
"Reddit": ["http://reddit.com", "http://reddit.com/new/", "http://reddit.com/controversial/", "http://reddit.com/top/", "http://reddit.com/r/reddit.com/", "http://reddit.com/r/programming/"],
"StumbleUpon": ["http://stumbleupon.com"],
"Yahoo Buzz": ["http://buzz.yahoo.com"],
"Facebook": ["http://facebook.com/home.php", "http://facebook.com", "https://login.facebook.com/login.php"],
"Del.icio.us": ["https://secure.del.icio.us/login", "http://del.icio.us/", "http://delicious.com"],
"MySpace": ["http://www.myspace.com/"],
"Technorati": ["http://www.technorati.com"],
"Newsvine": ["https://www.newsvine.com", "https://www.newsvine.com/_tools/user/login"],
"Songza": ["http://songza.com"],
"Slashdot": ["http://slashdot.org/"],
"Ma.gnolia": ["http://ma.gnolia.com/"],
"Blinklist": ["http://www.blinklist.com"],
"Furl": ["http://furl.net", "http://furl.net/members/login"],
"Mister Wong": ["http://www.mister-wong.com"],
"Current": ["http://current.com", "http://current.com/login.html"],
"Menaeme": ["http://meneame.net", "http://meneame.net/login.php"],
"Oknotizie": ["http://oknotizie.alice.it", "http://oknotizie.alice.it/login.html.php"],
"Diigo": ["http://www.diigo.com/", "https://secure.diigo.com/sign-in"],
"Funp": ["http://funp.com", "http://funp.com/account/loginpage.php"],
"Blogmarks": ["http://blogmarks.net"],
"Yahoo Bookmarks": ["http://bookmarks.yahoo.com"],
"Xanga": ["http://xanga.com"],
"Blogger": ["http://blogger.com"],
"Last.fm": ["http://www.last.fm/", "https://www.last.fm/login/"],
"N4G": ["http://www.n4g.com"],
"Faves": ["http://faves.com", "http://faves.com/home", "https://secure.faves.com/signIn"],
"Simpy": ["http://www.simpy.com", "http://www.simpy.com/login"],
"Yigg": ["http://www.yigg.de"],
"Kirtsy": ["http://www.kirtsy.com", "http://www.kirtsy.com/login.php"],
"Fark": ["http://www.fark.com", "http://cgi.fark.com/cgi/fark/users.pl?self=1"],
"Mixx": ["https://www.mixx.com/login/dual", "http://www.mixx.com"],
"Google Bookmarks": ["http://www.google.com/bookmarks", "http://www.google.com/ig/add?moduleurl=bookmarks.xml&hl=en"],
"Subbmitt": ["http://subbmitt.com/"]
},
t = []; // Variable dans laquelle on va stocker la liste de sites visités par l'utilisateur
// On vérifie pour chaque site de la liste
for(var i in sites){
if(sites[i].checkVisited())
t.push(i);
}
// On affiche le résultat
$("visited_sites").set("html", "<strong>Sites visités : </strong>" + t.join(", "));C'est fini !
Chez moi, ça fonctionne impeccablement avec Firefox 3, Opéra 9.5, IE 6, et IE 7.
Si vous avez un problème d'incompatibilité ou une suggestion, n'hésitez pas ! Par exemple, on pourrait, comme Aza, traiter pour une URL quelconque l'URL avec et sans les "www".Merci de me faire un petit lien de retour si vous utilisez ce script quelque part

4 commentaires[PHP] Enlever tous les accents d'une chaîne
Skreo, le 25 Juillet 2008 à 20:46Voici ma fonction pour enlever tous les accents d'une chaîne de caractères tout en respectant l'encodage (cette fonction traite très bien les textes UTF-8 par exemple) :
function removeAccents($txt){
$txt = str_replace('œ', 'oe', $txt);
$txt = str_replace('Œ', 'Oe', $txt);
$txt = str_replace('æ', 'ae', $txt);
$txt = str_replace('Æ', 'Ae', $txt);
mb_regex_encoding('UTF-8');
$txt = mb_ereg_replace('[ÀÁÂÃÄÅĀĂǍẠẢẤẦẨẪẬẮẰẲẴẶǺĄ]', 'A', $txt);
$txt = mb_ereg_replace('[àáâãäåāăǎạảấầẩẫậắằẳẵặǻą]', 'a', $txt);
$txt = mb_ereg_replace('[ÇĆĈĊČ]', 'C', $txt);
$txt = mb_ereg_replace('[çćĉċč]', 'c', $txt);
$txt = mb_ereg_replace('[ÐĎĐ]', 'D', $txt);
$txt = mb_ereg_replace('[ďđ]', 'd', $txt);
$txt = mb_ereg_replace('[ÈÉÊËĒĔĖĘĚẸẺẼẾỀỂỄỆ]', 'E', $txt);
$txt = mb_ereg_replace('[èéêëēĕėęěẹẻẽếềểễệ]', 'e', $txt);
$txt = mb_ereg_replace('[ĜĞĠĢ]', 'G', $txt);
$txt = mb_ereg_replace('[ĝğġģ]', 'g', $txt);
$txt = mb_ereg_replace('[ĤĦ]', 'H', $txt);
$txt = mb_ereg_replace('[ĥħ]', 'h', $txt);
$txt = mb_ereg_replace('[ÌÍÎÏĨĪĬĮİǏỈỊ]', 'I', $txt);
$txt = mb_ereg_replace('[ìíîïĩīĭįıǐỉị]', 'i', $txt);
$txt = str_replace('Ĵ', 'J', $txt);
$txt = str_replace('ĵ', 'j', $txt);
$txt = str_replace('Ķ', 'K', $txt);
$txt = str_replace('ķ', 'k', $txt);
$txt = mb_ereg_replace('[ĹĻĽĿŁ]', 'L', $txt);
$txt = mb_ereg_replace('[ĺļľŀł]', 'l', $txt);
$txt = mb_ereg_replace('[ÑŃŅŇ]', 'N', $txt);
$txt = mb_ereg_replace('[ñńņňʼn]', 'n', $txt);
$txt = mb_ereg_replace('[ÒÓÔÕÖØŌŎŐƠǑǾỌỎỐỒỔỖỘỚỜỞỠỢ]', 'O', $txt);
$txt = mb_ereg_replace('[òóôõöøōŏőơǒǿọỏốồổỗộớờởỡợð]', 'o', $txt);
$txt = mb_ereg_replace('[ŔŖŘ]', 'R', $txt);
$txt = mb_ereg_replace('[ŕŗř]', 'r', $txt);
$txt = mb_ereg_replace('[ŚŜŞŠ]', 'S', $txt);
$txt = mb_ereg_replace('[śŝşš]', 's', $txt);
$txt = mb_ereg_replace('[ŢŤŦ]', 'T', $txt);
$txt = mb_ereg_replace('[ţťŧ]', 't', $txt);
$txt = mb_ereg_replace('[ÙÚÛÜŨŪŬŮŰŲƯǓǕǗǙǛỤỦỨỪỬỮỰ]', 'U', $txt);
$txt = mb_ereg_replace('[ùúûüũūŭůűųưǔǖǘǚǜụủứừửữự]', 'u', $txt);
$txt = mb_ereg_replace('[ŴẀẂẄ]', 'W', $txt);
$txt = mb_ereg_replace('[ŵẁẃẅ]', 'w', $txt);
$txt = mb_ereg_replace('[ÝŶŸỲỸỶỴ]', 'Y', $txt);
$txt = mb_ereg_replace('[ýÿŷỹỵỷỳ]', 'y', $txt);
$txt = mb_ereg_replace('[ŹŻŽ]', 'Z', $txt);
$txt = mb_ereg_replace('[źżž]', 'z', $txt);
return $txt;
}On peut faire plus simple, certes, mais contrairement à ce qu'on peut voir habituellement, cette fonction traite véritablement tous les accents existants, et fonctionne avec tous les encodages.
un commentaireRetrouvez d'un clic toutes les versions d'une page Web
Skreo, le 20 Juillet 2008 à 21:12En voulant retrouver l'ancienne version d'une page web tout à l'heure, j'ai utilisé Archive.org et j'ai eu l'idée d'en faire un petit bookmarklet. C'est bien pratique par exemple si vous ne retrouvez plus une information sur une page qui a changé, ou que cette page a été supprimée.
Pour ajouter le bookmarklet à votre navigateur, glissez-déposez ce lien dans vos favoris :
ArchivesEnsuite, pour afficher les différentes versions d'une page web, il vous suffira de cliquer sur "Archives" dans vos favoris

2 commentairesTagzeo : Réservez votre tag !
Skreo, le 19 Juillet 2008 à 14:57
Un petit moyen de plus pour augmenter le référencement de votre site ou de votre blog, et de recueillir des visiteurs égarés : je vous présente Tagzeo, que l'ami Rob vient de mettre en ligne.
Une inscription rapide à ce service vous permettra de réserver un mot clé sur la page d'accueil de Tagzeo, avec un lien vers votre site. Cela peut devenir intéressant pour le référencement de votre site si Tagzeo vient à être connu. Surtout que les bons mots clé ne sont pas encore réservés, alors dépéchez-vous

Un système de points vous permettra de mettre en avant votre mot clé en lui rajoutant de la couleur, en le mettant en gras ou en lui augmentant sa taille. Evidemment, les points sont payant. Un reproche toutefois : ces modifications ne tiennent pas compte de la sémantique, et ne seront donc pas perçues par les moteurs de recherche (tout est en CSS).
3 commentairesFoxmarks : Synchronisez vos marque-pages Firefox
Skreo, le 15 Juillet 2008 à 01:33
Pourquoi utiliser des services comme del.icio.us alors Firefox 3 gère très bien les marque-pages, surtout avec la "barre géniale" ? Peut-être pour l'aspect "social" me-direz vous, je m'en fiche, passons.
Ce que je voulais, c'est utiliser simplement mes marque-pages avec Firefox, mais qu'ils restent les mêmes sur les différents PC que j'utilise, et que je puisse y accéder de n'importe où. C'est là que Foxmarks intervient : il suffit de s'inscrire sur leur site, et de télécharger l'extension.
L'extension est discrète et configurable, elle synchronise automatiquement les marque-pages avec le site my.foxmarks.com, ce qui permet de toujours les avoir sous la main. De plus, l'interface du site est très bien faite, en Ajax et companie :-)
2 commentaires
[1] 2 3 4 5 6 ...



Haut de page
