Ce livre parle de ExtJS 4 et de toutes les (nouvelles) possibilités qu’offre le nouveau framework de Sencha, ansi que des comparaisons avec les anciennes versions, pour ceux qui connaissent déjà ExtJS.
Je suis au début :
C’est un livre très pédagogique, qui vous servira bien si vous débutez.
Vous aurez certainement quelques marque page, notamment en ce qui concerne le MVC, qui n’est pas facile à appréhender (selon moi). J’avais d’ailleurs fait un howto ici.
Mon conseil serait : achetez-le, il est très bien.
Notez cependant qu’il faut un bon niveau JavaScript pour comprendre le livre.
J’ai rencontré un problème incroyable : tout fonctionnait correctement sur tous les navigateurs : Internet Explorer, Firefox, et Safari. Mais pas sur Chrome ! Une fois n’est pas coutume, ce n’était pas Internet Explorer qui était le problème majeur !
Le problème est simple à expliquer : lorsqu’on s’inscrit sur http://papdevis.fr/ ou qu’on fait une recherche, j’enregistre le choix dans la session du côté du serveur. Rien dans les cookies.
Quand on clique sur « valider le devis », j’enregistre tout dans des variables de session côté serveur, et j’affiche un résumé de l’offre/proposition de devis.
De là, quand on clique sur « valider », hop, j’envoie simplement une variable "valider=1"
Seul problème : sur Chrome, le devis ne se validait pas parce que l’identifiant de session était réinitialisé ! Incroyable.
Le principe du site est simple : vous êtes un particulier, vous voulez qu’on vous contacte pour un devis, par exemple, baby sitter. Inscrivez vous, faites une « demande de devis ».
Les professionnels qui sont sur le site reviendront vers vous.
Tout est gratuit, il n’y a aucune publicité. Rien.
Côté technique, je laisse les professionnels de l’informatique regarder et dire ce qu’ils pensent du site à la fois côté esthétique mais aussi côté technique (c’est un des sites les plus rapides… au monde).
N’hésitez pas à laisser des suggestions, elles seront bienvenues !
Problème :
Chercher une variable dans les paramètres _GET, y compris en plein milieu (les solutions en général ne sont valides que si la variable est au début dans le _GET) Solution : RewriteCond %{QUERY_STRING} (^|&)nomvariable=valeur(&|$)
Problème :
Prendre en compte toute une séquence de caractères sauf le slash Solution : RewriteRule ^/([^/]+)/?$ page.php?page=$1 [L]
ou encore prendre tout sauf le slash et le point : RewriteRule ^/([^/\.]+)/?$ page.php?page=$1 [L]
On peut éxecuter du javascript dans Firefox directement dans la ligne de l’adresse Internet.
Attendez, c’est génial, je le redis, vous n’avez pas compris :
Savez vous qu’on peut éxecuter du javascript dans Firefox directement dans la ligne de l’adresse Internet ?
En pratique ça donne quoi ?
J’en ai marre de taper systématiquement mon identifiant et mon mot de passe pour me connecter à un intranet.
J’ai un bouton qui est un raccourci classique :
Et au lieu d’un raccourci « simple » genre http://translate.google.com/ c’est un code JavaScript comme ça : javascript:(function(){m='http://translate.google.com/translate?u='+encodeURIComponent(document.location)+'&langpair=en%7Cfr&hl=en&ie=UTF-8&oe=UTF-8';w=window.open(m,'addwindow','resizable=yes');setTimeout(function(){w.focus();},%20250);})();
Qu’est ce que ça fait : je peux être sur n’importe quelle page en anglais, je clique sur le bouton, et hop ! Il m’ouvre une autre fenêtre avec la page traduire via http://translate.google.com/. Magique !
Mais on peut faire encore plus pratique !
Par exemple, moi j’ai un raccourci pour me connecter sur un site personnel, mais ce dernier me demande toujours mon identifiant et mon mot de passe, qui sont systématiquement effacés, alors j’ai fait un second bouton dans lequel il y a du JavaScript qui remplit les champs automatiquement et simule le clic sur « valider ». Donc en pratique, je clique une fois, hop, la page s’affiche, je clique une seconde fois et je suis connecté. Je gagne un temps fou !
Et même chose pour les développeurs de paiement en ligne : vous en avez marre de remplir systématiquement les champs avec les numéros de cartes factices afin de tester, et de mettre une bonne date ? Hop il suffit de créer correctement un bon morceau de JavaScript et ça y est vous remplissez systématiquement TOUS les champs en un seul clic ! Gain de temps phénoménal.
Mais seul problème : ça ne fonctionne qu’avec les fichier *.TPL
Donc j’ai fait une demande sur stackoverflow : comment ouvrir un fichier HTML, et vérifier s’il y a dedans "{* *}" et si c’est le cas, appliquer la couleur Smarty.
Et maintenant, j’ai enfin tous les fichiers HTML qui s’affichent correctement. Je vous conseille vivement d’en faire autant, franchement ça m’aide bien que les "{* *}" soient enfin des commentaires et que les {foreach ...} soient bien colorisés.
Vous avez sûrement déjà été confronté au fait de vouloir afficher le contenu d’une variable Smarty.
J’ai décrit la version courte ici.
Maintenant, il peut arriver que l’affichage ne corresponde pas à ce que vous vouliez notamment parce que le print_r() et autre var_dump() affichent des retour chariot.
J’ai donc crée ma fonction plugin, qui fait cela :
/**
* Affiche le contenu d'une variable.
* Utilisation : {dump var=$variable_smarty}
*
* @param array $params Tableau de parametres
* @param object $smarty objet Smarty
* @return string Le dump
*/
public function smarty_dump($params,$smarty)
{
// Récupération des paramètres
if (!isset($params['var'])) {
throw new Exception(
"dump : paramètre 'var' obligatoire");
}
return
'<pre>'.
str_replace(
"\n", "<br />",
str_replace(
"\r", "",
var_export($params['var'],true)
)
).
'</pre>';
}
Ensuite, je déclare le plugin à Smarty :
$smarty->registerPlugin('function','dump',
array($this,'smarty_dump'));
Voici une petite astuce pour les développeurs de sites Internet.
Supposons que la page que vous êtes en train de développer soit du genre http://monsite.com/mapage.php.
Dans cette page, vous avez plusieurs liens/images vers le même site, mais seule l’adresse change un peu, par exemple http://autre.monsite.com/image1.png
Imaginez que quelques temps après, vous deviez changer de protocole et passer en mode sécurisé.
Vous devez changer aussi tous les autres liens, donc :
http://autre.monsite.com/image1.png
devient :
https://autre.monsite.com/image1.png
…
Eh bien voici l’astuce qui peut vous servir : vous pouvez demander au navigateur de rester sur le même type de protocole avec seulement deux slashes avant le nom du site. Notre exemple :