J’ai marqué le 17-07-2007

code_fu – AJAX file uploads in Rails using attachment_fu and responds_to_parent
In this walkthrough, I go through the available options and an example using attachment_fu to handle file uploads and image thumbnailing, and responds_to_parent to implement the iframe remoting pattern to work around javascript’s security restrictions o
Classé dans
Make a remote URL work like a file upload (in Rails) [ruby] [rails] [remote] [url] [upload] [file] [acts_as_attachment] [attachment_fu]
Classé dans

Scrollable

Dans la quête du formulaire parfait, voici quelques lignes de javascript qui aident à faire ceci.

1. Du bruit
2. Du bruit
3. Du bruit
4. Du bruit
5. Je devrai être mis en avant au chargement de la page
6. Du bruit
7. Du bruit
1. Du bruit
2. Du bruit
3. Je devrai être mis en avant au chargement de la page
4. Du bruit
5. Du bruit
6. Du bruit
7. Du bruit

Ceci est très pratique quand vous avez beaucoup d’élément dans une liste, et que vous souhaitez mettre en avant l’un d’eux. Par exemple vous avez une série de cases à cocher, et vous souhaitez mettre en avant la plus probable.

Le code

Ceci est les lignes de Javascript qui repositionne le contenu de mon conteneur.

window.onload = function () {
	document.getElementById("scrollable1").scrollTop = document.getElementById("foo1").offsetTop - document.getElementById("scrollable1").offsetTop - 5;
	document.getElementById("scrollable2").scrollTop = document.getElementById("foo2").offsetTop - document.getElementById("scrollable2").offsetTop - 5;
}

Ceci est le CSS employé

div.scrollable {
	height: 3em; 
	padding: 0; 
	overflow: auto; 
	border: 1px inset grey; 
	background:#111; 
	color:#eee
}
div.scrollable .scroll-item {
	padding: 2px; 
	margin: 0; 
	min-height: 1em;
}
div.scrollable .scroll-item[id] {
	background : #f55;
}

Ceci est mon code xhtml dont l’affichage est conditionné par le script et la CSS.

<div class="scrollable" id="scrollable1">
	<div class="scroll-item">1. Du bruit</div>
	<div class="scroll-item">2. Du bruit</div>
	<div class="scroll-item">3. Du bruit</div>
	<div class="scroll-item">4. Du bruit</div>
	<div class="scroll-item" id="foo1">5. Je devrai être mis en avant</div>
	<div class="scroll-item">6. Du bruit</div>
	<div class="scroll-item">7. Du bruit</div>
</div>
<div class="scrollable" id="scrollable2">
	<div class="scroll-item">1. Du bruit</div>
	<div class="scroll-item">2. Du bruit</div>
	<div class="scroll-item" id="foo2">3. Je devrai être mis en avant</div>
	<div class="scroll-item">4. Du bruit</div>
	<div class="scroll-item">5. Du bruit</div>
	<div class="scroll-item">6. Du bruit</div>
	<div class="scroll-item">7. Du bruit</div>
</div>

Un léger aperçu d’Identikit 2

Trois semaines sans nouvelles. Je travaille trop. Je fignole un petit site interne tout en WordPress. Et pour cela, j’ai réécris le plugin Identikit. J’ai écouté les désidérata de mes petits camarades, j’ai pris mon courage à deux mains, mis à plat mes idées, et ai retenu plusieurs axes d’améliorations : Modularité, Sécurité, Rapidité, Internationalité.

<h3>Modularité</h3>

Pour les bloggueurs, le plugin ne se contentera plus de gérer les avatars utilisateurs. Actuellement, il est capable de gérer les avatars utilisateurs (local, gravatar, pavatar, favatar), de gérer les favicons, d’illustrer les différents articles, et d’illustrer les catégories. Et tout ça est hautement configurable.

Pour les bidouilleurs , j’ai tout cassé pour tout rationaliser. Le script principal est transformé en une seule classe. Dedans s’y trouve toutes les méthodes standardisées et les créations à la volée. L’avantage est de ne déclarer la classe qu’une seule fois, au lieu de créer une nouvelle instance à chaque appel (ceci optimise considérablement les perfs). Tous les traitements sont consolidés. Cette classe monte d’autres classes qui traitent des différentes parties. Les différentes fonctions des thèmes appelleront directement les méthodes de la classe principale.

<h3>Optimiser</h3>

J’ai tout réécris. Rien que ça. Dans le monde de l’invisible, avec le concours de Jeena Paradies, j’ai réécris le script qui débusque les pavatars dans les pages des utilisateurs. Il m’a aussi fait par d’une lacune de sécurité. Maintenant, le script s’assure de ne télécharger que des images. J’ai écris des alternatives pour essayer de rendre les scripts utilisables dans d’autres configurations (curl sinon fgets, imagemagick sinon gd2…).

Dans le monde du visible, l’ancien script ramait lorsqu’une personne laissait un message sur le blog. C’est parce que le script de téléchargement s’effectuait avant le rechargement de la page de réponse. Maintenant il n’y a plus ce soucis par une triche odieusement astucieuse. Au lieu d’afficher immédiatement l’avatar de l’utilisateur il y aura une petite icône de remplacement (c’est ce qui fait toute la différence !). Et c’est cette petite icône qui se chargera de lancer le script, ne pénalisant pas la navigation de l’utilisateur.

Sinon je tente de rendre possible l’usage de ce script avec les pseudos jolies urls avec un index.php Enfin pour être en accord avec les specs des pavatars, je tente d’écrire une interface de modération des avatars.

<h3>Internationalisation</h3>

Puisque la demande internationale est forte, je vais rendre le biniou international.

<h3>The resume in English</h3>

Excuse my English. Three weeks without a word… Well, i’m working to much !

I’m making a little website with WordPress for my job. To make this, i’m rewriting the plugin Identikit. I have listen to wishes from every folks, taken my courage in both hands, sended my ideas back to the drawing board and keep 3 axes for improvement : Modularity, Optimisation and Internationalization

Actually, the prototype can manage users’ avatars and pavicons. add icons to the articles, and icons & colors to the categories. And everything is customisable. I’ve broken everything for rationalize everything. The main script is now a unique class with all methods mutualised. This main class is onl loaded one time by the system, instead of creating a new instance for every calls. This class is overloaded by differents class (one by subject).
I’m optimising the code for making it more flexible and secure. Also i’m optimising the navigation for the visitors. The autodiscoveries functions will not slow down pages. And for the end, i will make this plugin internationalizable.