Flash plein écran dans un site Web

Pour pouvoir mettre une animation flash en plein écran, il existe une commande flash fscommand(« fullscreen », « true »).  Le souci, c’est qu’elle ne fonctionne pas lorsque l’animation est intégrée dans une page Web.

Un contournement existe pour parer à ce problème. Il s’agit d’afficher le flash suivant la hauteur de l’écran. (Nous avons pris la hauteur car le plus souvent les écrans sont plus larges que hauts).  Définissons la hauteur voulue :

hauteur =  screen.availHeight - 60; //compatible Firefox et IE, on enlève 60
qui correspond à la hauteur de la barre navigateur

On ajoute un id aux balises <embed> et <object> pour accéder aux propriétés des éléments. Puis on modifie la hauteur et la largeur du flash :

if(document.getElementById('embed')) {
document.getElementById('embed').height = hauteur;
document.getElementById('embed').width = '100%';
} else {
document.getElementById('object').height = hauteur;
document.getElementById('object').width = '100%';
}

La largeur est à 100% car elle s’adapte automatiquement par rapport à la hauteur.

Et voilà une fonctionnalité plein écran facile à réaliser.

JavaScript window.open et Internet Explorer

En JavaScript, l’instruction « window.open(String url [, String nom] [, String options] ) » permet d’ouvrir une nouvel fenêtre ou un nouvel onglet (cela dépend de la configuration du navigateur). Cependant sous Internet Explorer, vous pouvez être confronté à un problème lors de l’exécution de cette instruction si cette dernière est appelée avec en second paramètre une chaine contenant un espace. Dans ce cas Internet Explorer ne crée pas la popup demandée.

Pour y remédier, un simple remplacement des espaces dans ce second paramètre par un underscore « _ » et le tour est joué.

Ruby on Rails test checkbox

Attention, un comportement différent du HTML standard en ce qui concerne les checkbox et Ruby on Rails. Vous avez sûrement déjà tester la présence d’un « name » de checkbox dans votre variable $_POST en php afin de savoir si cette checkbox avait été cochée (par sa simple présence vous saviez qu’elle l’était et en son absence vous saviez qu’elle n’était pas cochée). Et bien cela n’est plus possible en Ruby on Rails, en effet, Rails créé un hidden et il y a donc un passage obligatoire dans la variable params il faut donc faire le test sur la valeur plutôt que la présence.

moteur de recherche interne à un site internet

Le moteur de recherche libre (recherche de tout ou partie d’un mot sur tout un site), est un fonctionnalité courante mais qui peut s’avérer complexe à mettre en œuvre, notamment lorsqu’il s’agit de réaliser la recherche dans de nombreuses sources (multiples bases de données, fichiers…) et assez tolérante (accents, mais aussi fautes de frappe, caractères manquants…).

Une possibilité simple est de réaliser la recherche dans des fichiers de caches précédemment générés, via la fonction agrep (une recherche approximative).

La ligne suivante permet de fournir la liste des fichiers html qui contiennent le texte test, à un caractère près.

Liaison de 1 à 1 en Ruby on Rails

Pour réaliser une telle liaison, il est simple de s’apercevoir que l’on peut mettre l’identifiant de l’un dans la table de l’autre et ceci sans contrainte si ce n’est le sens même de cette liaison, exemple :
Prenons une personne qui possède une voiture, il est simple de penser que la personne possède une voiture et non que la voiture possède une personne. On peut donc indiquer que la voiture est une caractéristique de la personne (Objet avec plus d’importance). On va donc stocker la liaison dans la table personne avec l’identifiant de la voiture.

En Ruby on Rails, 2 liaisons belongs_to ne fonctionne pas, il faut donc ajouter une colonne voiture_id dans la table personne puis indiquer une liaison :

belongs_to :voiture

dans le model de Personne et une liaison :

has_one :personne

dans le model de Voiture.

Ainsi, vous venez de créer une liaison de un à un entre une personne et une voiture.

Gestion Favicon sur les navigateurs

Généralement déposer un fichier favicon.ico à la racine de votre site permet à celui-ci de l’utiliser automatiquement comme favicon.

Exception sous IE si le .ico n’est pas créé correctement, dans ce cas le favicon ne s’affiche pas.

Une solution efficace permettant de récupérer un favicon lisible par IE, sur ce site http://www.convertico.com

Après avoir remplacé votre ancien favicon, un petit coup de « vider votre cache » et normalement plus de soucis.

Nouvelles typos sur le Web

Vous en avez assez de Arial, Verdana et Trebuchet sur vos sites web ?  Alors passez à @font-face ! Très simple d’utilisation à l’aide du site www.fontsquirrel.com.

Démonstration :
– Allez sur le site www.fontsquirrel.com/fontface/generator, ajoutez une typo (au format otf) puis générez votre kit .
– Dé-zippez ce dernier et ouvrez le fichier stylesheet.css. Copiez la propriété @font-face dans votre feuille de style habituelle :
@font-face {
font-family: "Typo";
font-style: normal;
font-weight: normal;
src: url("typo.eot?") format("eot"),
url("typo-webfont.woff") format("woff"),
url("typo-webfont.ttf") format("truetype"),
url("typo-webfont.svg#webfontrTwnpuIE") format("svg");
}

– Copiez les fichiers de police fournis dans le zip (formats eot, woff, ttf et svg) dans le même répertoire que votre fichier css.

Et voilà, il n’y a plus qu’à tester !

No more IE 6 en Ruby

Internet Explorer 6 est bien ancien et ne respecte pas énormément de standards du web, il convient donc de ne plus continuer à intégrer son site internet pour ce genre de navigateur. Il est donc possible de proposer à un utilisateur possédant une telle version d’Internet Explorer de changer et mettre à jour vers un navigateur plus récent. Pour cela il suffit de détecter que le navigateur utilisé est bien IE 6. Ruby propose cette détection via le code suivant :

<% if request.user_agent.try(:include?, « MSIE 6.0 ») %>
Votre message et un lien pour mettre à jour le navigateur.
<% end %>

Comme vous pouvez le remarquer le code proposé vous permet donc de détecter le navigateur utilisé par l’internaute, il suffira de changer la chaine à rechercher pour les autres navigateurs. Ensuite, une fois que la détection est vérifiée, il vous suffi d’afficher un joli message invitant l’internaute à modifier la version de son navigateur avec un lien vers cette nouvelle version et le tour est joué.

Afficher de l’html généré en Rails 3

Avec Rails 2, pour afficher une variable contenant de l’html (par exemple généré par TinyMCE), rien de plus simple :

Avec Rails 3, c’est un peu plus compliqué. La ligne de code précédente, affichera le texte de la variable brut, sans le style html mais avec les balises en tant que texte. Pour parer à ce problème, deux solutions existent :

Et voilà !