nyroBlog
Bannière NyroBlog, par emi
Image par emi - ?

Tag : JavaScript


WikiJournal est en ligne

Wiki JournalSur certains projets, on s'investit tellement qu'on a envie qu'ils marchent.
Bien sûr, on passe par des phases de doutes, on ne sait pas trop si ça va marcher, on ne sait plus. Mais on fait quand même.

Ce projet est une commande de La Communication Directe, qui m'a trouvé sur google au mois de décembre dernier. Il m'a fourni un cahier des charges que j'ai lu et annoté pendant un week-end à Lyon. Retour sur Besançon pour lui faire un devis. J'étais en concurrence avec 2 autres entreprises (pas des freelance) : j'étais plus cher et plus long. J'ai eu le contrat car j'avais donné la sensation de maîtriser plus ses attentes que les autres. En effet, je travaillais déjà (et je travaille toujours) sur la refonte d'un site du même genre.

Parlons un peu du projet à proprement parlé : WikiJournal est un site national désireux d'être proche de vous. Pour cela, tous les contenus sont localisés par régions, départements et 'pays'; on peut consulter le site au niveau national ou bien au niveau de chaque région. C'est la vision du client. Dans ce journal, on y trouve des articles présentant les régions, ce qu'on peut y faire, etc... Il y a aussi des petites annonces gratuites pour vendre ou acheter ce que vous voulez, un agenda local pur annoncer vos manifestations ou trouver de quoi faire ce week-end et un annuaire professionnel pour trouver votre plombier.

Dans chaque partie, vous pouvez soit consulter les ajouts effectués par les utilisateurs par catégories et/ou par localisations, mais aussi en ajouter par des formulaires qui sont à la fois simples, concis et faciles d'utilisation. Tous les ajouts et modifications doivent être validés pour apparaître sur le site.
Pour ce faire, le client dispose d'une administration protégée, dont j'ai fait le graphisme depuis un design récupéré sur OSW. Voici le résultat :
Administration WikiJournal
Ici pour les petites annonces. Evidemment, il n'y en a pas beaucoup, le site vient tout juste d'être lancé.
Comme à mon habitude, j'utilise TinyMCE (que j'affectionne particulièrement) dans l'administration pour gérer des pages fixes du site, ou le contenu des articles.

Il y a beaucoup d'Ajax dans le site. Par exemple, pour recharger les liste déroulantes lorsqu'on sélectionne une nouvelle localisation. Ce n'est pas la première fois que j'en fait, mais c'est le premier projet où il y en a autant.

Un gros travail a été fait pour optimiser le référencement. Si vous regarder les URLS des pages de résultats, vous verrez par exemple ceci :
http://www.wikijournal.fr/articles,r11,Midi_Pyrenees.html
http://www.wikijournal.fr/articles,r16,Provence_Alpes_Cote_d_Azur.html
On ne sait pas encore trop ce que va donner cet URL Rewriting, mais c'est toujours plus beau que des paramétres passé en GET. Bien sûr, un travail similaire a été fait sur les titres des pages, qui reprennent à peu près le même principe.

De plus, tous les formulaires d'ajout de données (ou de contact) utilise un captcha fait maison pour éviter tout pourrisage par des robots malveillant. En voici un exemple :
Captcha

Et où gagne-t-il de l'argent ?
Il mise tout sur 2 choses :

  • Les Google Ads qui sont présentes un peu partout, plus ou moins dominantes. Personnelement, je les trouve pas vraiment envahissante.
  • Les bandeaux publicitaires, qu'il n'est pas encore possible d'acheter; ce sera possible un peu plus tard, quand le site aura grandi. Lorsqu'on achète un bandeau, la personne désirant affichée sa pub pourra sélectionné la partie du site, la catégorie de la partie, mais aussi la localisation où il veut afficher sa pub. Ainsi, il peut cibler ces affichages et avoir un retour sur les clics plus intéressants

J'ai aussi mis en place PhpMyVisites pour qu'il puisse suivre ses visite au jour le jour. Il commence déjà à regarder quelles recherches tapent les visiteurs qui arrivent son site, et à le paramétrer pour ne pas se prendre en compte dans les stats. Cet outil est vraiment adaptéà n'importe qui !

Sortie de TinyMCE 2.1.1

Une dernière verion du célèbre éditeur WYSIWYG TinyMCE vient de sortir.

Enormément de corrections de bug pour les liens, l'édition en plein écran et d'autres encore.
Quelques petits apports aussi, entre autres :

  • Ajout simpfilifé des vidéos de Youtube ou Google Vidéo en passant simplement l'URL de celle-ci
  • Les boutons d'annulation fonctionnement maintenant avec les plugins
  • Un nettoyage du code inutile et réécriture de certaines parties
  • Une nouvelle option qui permet de charger un fichier template, pas forcément sur le même site : il est donc possible d'utiliser un même fichier template pour plusieurs sites.

L'annonce de la sortie
Le changelog complet
TinyMCE

Le webmail idéal

Cela fait quelques temps que j'en rêve, et je viens d'en parler avec Miho.

Puisqu'un blog sert aussi à ça, je vous livre mon idée, ainsi que toutes les réflexions que j'ai pues me faire.

1) Ce que j'utilise
Depuis plus de 3 ans maintenant, j'utilise Thunderbird sur mon ordinateur qui fonctionne à merveille. Pas moins de 7 comptes mails paramétrés, des possibilités d'aller chercher les mails d'hotmail, gmail et autres services du genre.
Un filtre anti-spam sans équivalent, des fonctionnalités de recherche et de tri (apportées avec la dernière version) qui deviennent vite indispensable, une stabilité à toutes épreuves (mes plantages doivent se compter sur les doigts de la main).
Tout ceci pour dire que je suis pleinement satisfait de Thunderbird.

2) Les webmail existants
On connaît à peu près tous Gmail qui marche très bien avec son interface très simple mais tellement pratique, Hotmail et son nouveau webmail Live avec du tout beau Ajax, Horde et son interface simple et efficace.
Un peu moins connu mais néanmoins très intéressant, RoundCube (sous licence GNU) nous propose une très belle interface, avec glisser/déposer des messages (j'adore ce truc), interface simple et claire, rapide à chargée. Manque la possibilité d'éditer ses mails avec un WYSIWYG. Il fonctionne sur mon téléphone, même le double-clique est géré !

3) Ce dont je rêve
La réponse est simple : un mélange des deux ! Hé oui, je ne veux pas perdre tous les avantages de Thunderbird, mais je veux pouvoir lire mes mails depuis n'importe où, et surtout n'importe quelle plateforme (Windows, Mac, Linux, IE ou FireFox, téléphone, etc...), de la même façon qu'avec Thunderbird.
La solution qui me paraîtrait idéal serait la suivante :

  1. Il y aurait plusieurs interface possibles à la lecture des mails : le logiciel traditionnel et le webmail (éventuellement disponible en plusieurs version, selon la plateforme)
  2. L'idée serait de stocker les mails, dossiers, paramètres et tout ce qui est utile au logiciel sur un serveur. De cette façon, les mails sont à un seul endroit et toutes les interfaces de lecture éditions des mails utiliseraient ces éléments. Avec Thunderbird, je pense que certains pourraient facilement bidouiller ce genre de chose, en passant par un VPN ou quelque chose du genre. L'inconvénient ici serait qu'on a besoin d'être connecté pour consulter sa messagerie. Une sauvegarde locale des 50 derniers mails ?
  3. Pour le webmail, il utiliserai donc ces mêmes paramétres, et fournirai une interface adapté à la plate-forme de l'appareil l'affichant : une version full Ajax pour FireFox (dans l'idée de RoundCube), une version beaucoup plus light pour les téléphones, etc...

Bien sûr, la réception des emails se feraient au niveau du serveur, et non de l'application, puisqu'il y a plusieurs interfaces : la récupération des emails seraient donc plus rapide, du fait de la grosse connexion que possède un serveur dédié (100 Mbps) comparé à une connexion classique.
De plus, et c'est l'idée principale, on peut accéder aux mêmes dossiers, avec les mêmes plugins (si disponibles) depuis n'importe où et de n'importe quel moyen qui soit !
Lors d'un changement d'ordinateur par exemple, pas besoin de se soucier de la sauvegarde des emails, puisqu'ils sont ailleurs.

Alors vous allez me dire : Mais dans ce cas, pourquoi ne pas simplement utilisé un webmail classique, en le paramétrant comme il faut ?
Tout simplement car je ne connais pas de webmail intégrant un antispam aussi puissant que Thunderbird, que je n'ai pas encore trouvé LE webmail qui me convient, et parce que je veux pouvoir consulter (et rédiger) mes mails hors-ligne. Et puis, le logiciel reste quand même beaucoup plus rapide et robuste qu'un webmail.

Qu'en pensez-vous ? Est-ce que vous connaissez des solutions équivalentes ou qui répondraient à mes attentes ? Quels logiciels/webmails utilisez-vous ?

Passage à Netvibes

NetvibesCa y est, je suis passé à Netvibes !

Avant, j'utilisai RSS Xpress qui marche parfaitement, mais qui a l'inconvénient d'être un logiciel. Or, avec tous les changements d'endroits, d'ordinateur, j'avais besoin de ce système. Je n'avais jamais franchi le pas je ne sais pas trop pourquoi.

Mais voilà, c'est fait depuis 2 heures que j'y suis passé, et je ne regrette pas. J'ai pu importer tous mes flux en passant par un fichier OPML, chaque catégorie dans un nouvel onglet.

Un petit tour dans les options de Netvibes, quelques changements de la mise en page (le thème Coriander), l'ajout de modules supplémentaires pour les emails, la météo locale, un flux RSS de podcasts... Bref, j'adore, et je pense que je vais y rester.

Je l'ai préferé à iGoogle pour les paramétrages plus fins et plus adapté. Je n'ai pas véritablement testé WebWag

Reste plus qu'une version mobile complète qui marche sur mon P990i avec Opéra. La version mobile (m.netvibes.com n'affiche que l'onglet général et mobile, s'il existe).

Si vous hésitez encore, n'attendez plus ! L'essayer, c'est l'adopter.

PS, petit bonus : Pour indiquer que tous les flux RSS d'un onglet sont lus, cliquez sur le nombre entre parenthèses ! (Merci Florian pour ce petit truc)

Validation W3C et JavaScript

Je me prenais la tête pour faire passer la validation W3C en XHTML 1.0 Transitional d'une page contenant un formulaire et ses vérifications javascript.

J'avais des erreurs dans mon javascript, sur cette ligne :

for (var i=0;i

Une simple boucle for en somme. La validation me disait que l'attribut length n'existait pas et que je n'avais pas le droit d'utiliser de ; à cet endroit.

En réfléchissant, j'ai compris qu'il m'interprétait mon comme un début de balise.

Donc, la solution pour pallier à ça est toute simple : il suffit d'inverser le test ! Ma boucle devient donc :

for (var i=0;champ.length>i;i++) {

Super simple, mais tellement pratique !