Redimensionner une fenêtre (ou une PopUp) en Javascript

L'ojectif est de redimensionner une fenêtre ou une popup, en réduisant, par exemple, 90px de hauteur.

 

Je suis conscient que cela peut paraître bizarre d’effectuer un window.open de 728 large sur 590 de haut, si après, on modifie la hauteur pour obtenir 500 de haut.
Donc vous vous demandez, pourquoi ne pas ouvrir la PopUp en 728×500 directement.
Simplement, car dans certain cas de situation, il est plus simple de demander à la PopUp de s’adapter au client après son ouverture, plutôt qu’à l’ouverture elle-même.
Par exemple pour « masquer » un bord sous certaine condition.
Vous comprendrez mon cas plus bas 🙂

(passer directement au code)

Mon cas de siutation est le suivant :

Liens.html
Une page avec des liens vers des images, indiquant en dur la taille de la fenêtre dans le windows.open().

images.php
Un script d’affichage d’image contant :
– Un logo
– Mon image
– un Leaderboard de 728×90

Le script (images.php) est le même pour chaque image, la page liens.html, connaît, d’après une base de donnée, la hauteur et la largeur de l’image (la place qu’elle prend), et adapte la taille de la popup en conséquence.

L’idée est la suivante :
Adapter la taille de la PopUp (images.php) contant le logo, l’image, et le leaderboard en fonction de la taille de l’image.
Seulement, le Leaderboard lui peut s’afficher sous certaine condition (géo targeting par exemple).
C’est pour cela, qu’afin d’éviter un espace supplémentaire en bas de la fenêtre, nous allons, réadapter cette dernière en fonction de si le Leaderboard est appelé ou pas.

En faite, tout ce blabla pour 3 lignes de code JS, car je ne vais pas présenter ici, ni images.php, ni rien d’autre 🙂 juste la fonction qui va redimensionner le tout 🙂

La dite fonction est : window.resizeTo(x,y)
X = La largeur
y= La hauteur.

1) On détecte la taille actuelle de la popup

var windowWidth;
var windowHeight;

//en fonction du navigateur                  
if (parseInt(navigator.appVersion)>3)
{
 if (navigator.appName=="Netscape") {
  windowWidth = window.innerWidth;
  windowHeight = window.innerHeight;
 }
 if (navigator.appName.indexOf("Microsoft")!=-1) {
  windowWidth = document.body.offsetWidth;
  windowHeight = document.body.offsetHeight;
 }
}

2) on établie la nouvelle taille de la fenêtre

//on détermine la nouvelle taille de la fenêtre en supprimant 90 px
windowNewHeight= windowHeight90

//on redimensionne le popup avec la nouvelle hauteur
window.resizeTo(windowWidth, windowNewHeight)

Waouw .. rude. Je sais

Dans mon cas de situation j’ai mis le tout dans une fonction JS qui était appelée, uniquement si  le banner ne s’affichait pas, par exemple, si le visiteur ne provenait pas de Suisse.

3) facultatif, afficher la taille de la fenêtre avant la redimension
            document.write(
                    "Largeur = "+windowWidth+"<br>"
                    +"hauteur = "+windowHeight
                    )

 
4) On pourrait aller un peu plus loin on ne spécifiant pas la hauteur et la largeur de la popup dans le window.open() mais directement en se basant sur les propriétés de l’images directement.

Par exemple avec un :
imageWidth = document.images[0].width;
imageHeight = document.images[0].height;

Erreur dans les questionnaires de l'HEPL

Les étudiants désireux d’entrer en Haute Ecole Pédagogique du canton de Vaud (HEPL),
Doivent passer un certain nombre d’examens.

Jusque là tout semble des plus normal, mais ayant parcouru les questionnaires, je me suis rendu compte qu’ils comportaient un certain nombre d’erreurs ou des imprécisions dans les questions elle-même.

Voici mon compte rendu.Il est évident que mon point de vu est celui d’un informaticien de métier, pointilleux sur les termes, et que ces étudiants n’entre pas dans cette école pour ressortir avec un Master d’informatique.
Mais, je trouve tout de même anormale que ces questionnaires comportent ce type d’erreurs.

Voici quelques exemples, tirés de l’examen théorique de 2006 disponible à cette adresse :
http://www.hepl.ch/mediastic/
Si le document en question a été supprimé, vous pouvez le téléchargé ici :
2006_Test_ de_ connaissances.pdf

Question 5 :
Mon ordinateur se fige, que faire ?
La réponse correcte étant :
utiliser un raccourci clavier pour forcer à qui quitter ou redémarrer

Sur cette question, il est important de noter 2 choses.
Personnellement, si l’ordinateur « se fige » ne je vais pas redémarrer ce dernier sans attendre, dans le cas où j’ai un document important d’ouvert et non enregistré.
Une application gourmande peut « figer » l’ordinateur durant le traitement de l’information.
Exemple typique, travaille d’une image ou vidéo, qui demande énormément de ressource à l’ordinateur.
Donc attendre 15 minutes (ou plus), peut être une solution, si nous ne sommes pas pressé.
Il est a remarquer, par l’utilisateur, qu’effectivement, même si après cette longue attente, ni le disque dur travail, ni les LED du pc clignotent, et qu’effectivement rien ne se passe au niveau de la machine, la, il faudrait envisager un redémarrage.

Il est a noté que ce type de question se pose principalement sur des ordinateurs sous Windows.

Question 11 :
Attention, dans le cas du document test 2006 présenté ci-dessus, la réponse est correct.
« le document ne se ferme pas »

Une amie ayant passé ce test, a obtenu la réponse fausse pour la raison suivante :
 « sur Mac, la fenêtre se ferme, mais l’application ne quitte pas »
Donc il est bon a noter à se point qu’on précise pas le système d’exploitation utilisé, ni dans la question, ni dans le questionnaire.
Je précise ceci pour certaine prochaine question…

Question 13 :
Aucun erreur dans cette question, mais il est intéressant de noté que le seul navigateur cité est « Microsoft Internet Explorer », logiciel Microsoft intégré à Windows et qui n’est plus disponible depuis la version 5 pour MacOS.
Pourquoi cette remarque ?
Vu que nous sommes sous MacOS (voir commentaire question 11), pourquoi le navigateur cité n’est-il pas Safari ?

Question 15 :
« Le suffixe .doc identifie un document généralement créé par le logiciel »
Apple works, Photoshop, Word, Explorer.
La bonne réponse étant bien « Word ».
Mais à nouveau, la question est au sujet d’un produit Microsoft.
Même remarque que sur la question 13, il est désormais plus qu’évident que cet examen est basé sur des cas de système étant sous Windows, alors à nouveau, pourquoi cette remarque concernant les applications MacOS ?

Question 26 :
Voici LA question contenant LA plus grosse erreur, et qui sincèrement, que je trouve inadmissible de la par d’une Haute école.
« Quel site ne peut pas être hébergé en suisse ».
www.site.com
www.site.ch
www.site.fr
www.site.org

La bonne réponse étant, aucun, tout ses sites web peuvent être hébergé en suisse.
D’après  le professeur corrigeant et ayant créer ce test, la bonne réponse serait .
www.site.fr. ce qui est totalement faux.
Il est impossible d’enregistrer en Suisse, un nom de domaine en .fr, mais il n’est pas impossible de l’héberger en Suisse. C’est-à-dire que le(s) serveur(s) répondant au domaine site.fr soient localisés en suisse.
La question est fausse, cette réponse concerne l’enregistrement du nom et non l’hébergement du site Internet, car il faut une adresse française pour enregistrer un domaine en .fr.

Question 27 :
A nouveau une question liée à Internet et aux noms de domaine.
Il semblerait que le responsable ait certaine lacune dans ce domaine.
« Dans l’adresse : http://www.edunet.ch/classes/rolle.html »
– L’url est mal formatée
Le nom de domaine est « edunet »
– Le serveur contient un seul dossier
– La page contient un fichier à télécharger.

La bonne réponse serait « le nom de domaine est edunet ».
Ici réponse incomplète, un nom de domaine, est composer d’au moins un nom (de min 2-3 caractères suivant l’extension) attaché à un suffixe (TLD) (TOP Level Domaine).
La réponse correct, serait ici : edunet.ch
Si on en suis la logique de cette examen, « .ch » serait aussi un domaine.

Question 32 :
Laquelle de ces adresses E-mail est susceptible d’être correcte :
emmanuel.flaction@edunet.ch
– emmanuel.flaction@édunet.ch
– emmanuel flaction@edu-net.ch
– emmanuel flaction@edunet.ch

D’après les réponses de cet examen, la bonne réponse serait :
emmanuel.flaction@edunet.ch
Alors que toutes ses adresse peuvent être correcte.
Explication :
Les domaines en .ch avec accent sont possibles et disponibles depuis le 1er Mars 2004.
Voir :
https://nic.switch.ch/reg/ocView.action?res=/reg/guest/faqs/idn.jsp&plain&request_locale=fr

De plus, les RFC 3696 autorise les espaces dans les adresses électroniques.

Voila, je trouve bien dommage que ce type d’erreurs se trouvent dans des examens de Haute Ecole.

Imprimante : Impossible de continuer l'opération en raison du manque de ressources.

Il peut arriver que ce message d'erreur apparaîsse lors de l'ajout d'une imprimante sous windows (2000, XP).

" Impossible de continuer l'opération en raison du manque de ressources. Le sous-système d'impression n'est pas disponible " 

 

Ceci provient du spooler d'impression qui est arrêté ou planté.

Pour cela, il faut :

1) Cliquez sur Démarrer/Exécuter puis saisissez : services.msc
ou se rendre dans la gestion des services.
(démarrer -> paramètre -> Panneau de configuration -> Outils d'adminstration -> Services)
2) Accédez aux propriétés du service: Spouleur d'impression.
(Clique droit -> propriété)
3) Cliquez sur le bouton Arrêter puis sur le bouton Démarrer.
Ou si il est désactivé, le réactiver
Sinon :

1) Redémarrez en mode sans échec.
2) Vérifiez que le service Spouleur d'impression ne soit pas démarré.
3) Dans l'Explorateur Windows supprimez l'ensemble des fichiers présents dans Windowssystem32spoolprinters.
4) Redémarrez puis réactivez le service Spouleur d'impression.
 

OWA (Outlook Web Access) rédaction des E-mails avec Vista

Dans Microsoft Windows Vista, le contrôle ActiveX d'édition HTML dynamique est supprimé du navigateur Internet Explorer.

 

De ce fait, une fonctionnalité exploitée par Microsoft Exchange 2003 Outlook Web Access (OWA) est manquante.

Voici une mise à jour qui remplace cette fonctionnalité obsolète sur les serveurs Microsoft Exchange 2003 pour que Microsoft Exchange 2003 Outlook Web Access (OWA) continue à fonctionner correctement.

 Voir : Mise à jour pour Exchange 2003 (KB 911829)

Si le lien de téléchargement n'est plus disponible,
le patch est disponible ici :  Exchange2003-KB911829-v3-x86-FRA.zip

Statistiques des sous domaines dans Google Analytics.

De nos jours, l’exploitation de sous domaines sur un site internent est très fréquent.
Album photo, shop, forum, etc… sont bien souvent, pour des raisons pratiques, ou techniques séparés du reste du site disponible sur le sous domaine WWW.
Voici comment, obtenir les stats séparées de ses sous domaine dans votre compte Google Analytics.

 

1) Modification du tag fournit par Google.
Modifier votre tag
<script type="text/javascript">
_uacct = "UA-WWXXYYZ-XX";
urchinTracker();
</script>

Par 

<script type="text/javascript">
_uacct = "UA-WWXXYYZ-XX";
_udn="votredomaine.ch";
urchinTracker();
</script>

Il faut donc ajouter la variable javascript "_udn" contenant votre nom de domaine, ici votredomaine.ch
_udn="votredomaine.ch";

UPDATE :  Avec le nouveau code de suivi (ga.js)
Il faut ajouter un pageTracker._setDomainName();

Code SANS :
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>

<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-WWXXYYZ-XX");
pageTracker._trackPageview();
</script>

AVEC :

<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>

<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-WWXXYYZ-XX");
pageTracker._trackPageview();
pageTracker._setDomainName(".votredomaine.ch");
</script>

Attention, dans mon exemple, j'utilise le domaine : Lovalvo.net

2) Création d'un filtre
2.1 – Une fois dans votre interface, cliquez sue le lien "modifier" du profil où appliquer les filtres.

2.3 – Puis sur "+ Ajouter un filtre".

2.4.1 – Indiquer un nom pour votre filtre
2.4.2 – Type de filtre :  Filtre personnalisable

2.5.1 – Selectionner "Avancé"
2.6.2 – Champ A -> Extraire A : "Nom d'hôte (hostname)" -> (.*)
2.6.3 – Champ B -> Extraire B : "URI de la demande (request URI)" -> (.*)
2.6.4 – Sortie vers -> Constructeur : "URI de la demande (request URI)" -> /$A1$B1

Puis laisser les champs suivant par defaut.
Voici un exemple de ce que vous devriez avoir.

2.7 – Cliquez sur "Terminer", vos filtres seront appliqués sur vos futures stats, visibles dès 09h00 le lendemain matin 🙂
 

Optimisation du référencement d'un site en AJAX

Le web 2.0 apporte de nos jours beaucoup dans le plaisir de la navigation pour vos internautes, et une expérience utilisateur extraordinaire,seulement, faire de belle application en AJAX n’est pas toujours ce qu’il y a de meilleures pour votre référencement.

Vous trouverez ici, quelques petites astuces, en provenance d’un article publié par Google.

Voici quelque explication récritent par Michael Wyszomierski et Greg Grothaus:

  • L'Indexation : Pour qu'un site Intenret développé en AJAX soit coorectement indexé par Google, il faut qu'il contienne des liens HTML classiques (balise a avec un attribut href valide) et non pas uniquement des liens en JavaScript.
    Effectivement, sauf dans quelques rares exceptions, Google ne tient pas compte du code Javascript et des liens dans ce dernier.
  • L'Accessibilité : Google recommande de tester son site en utilisant un navigateur comme Lynx (ou tout autres outil en ligne basé sur Lynx, Ex: seebot.org). La désactivation du JavaScript dans son navigateur classique est aussi une solution, ou l'utilisation d'un plugin comme l'extension Web Developer de firefox.
    En gros, votre site web doit rester consultable et visitable sans javascript. L'expérience utilisateur peut être enrichie par des fonctions JavaScript (par exemple en AJAX) mais le contenu de votre site internet doit reste lisibe sans JavaScript.
  • Les deux methodes : il est possible d'effectuer des liens qui exploitent les fonctionnalités en AJAX et qui restent compatibles avec les moteurs de recherche. Il suffit d'utiliser la même astuce que celle qui permet d'indexer des pages affichées en pop-up .
    Cette astuce consiste à construire un lien href classique, contant l'url valide et une action JavaScript avec un OnClick, par exemple.
    Les utilisateurs qui ont un navigateur avec le JavaScript activé et fonctionnel profiteront des fonctionnalités prévues par le développeur JavaScript, et les autres (entre autre les moteurs de recherche) suivront le lien classique. Voici un exemple de code :
<a href="mapageajax.htm" onclick="mafonctionjs('mapageajax.htm'); return false”>Mon lien</a>

Pour info, il est bon de se rappeler que Google ignore ce qui suit le symbole # dans une URL.

le site browsegoods.com qui est un exemple typique de ce qui est mauvais pour le référencement d'un site en Ajax…
L'expérience utilisateur et l'interface est génial, mais elle est totalement inadapté aux Bots des moteurs de recherche.

Défragmentation Offline (hors ligne) des bases de données Exchange 2003

AAAh Baaah ouai… Comme tout bon serveur Exchange lui faut une défrag des Bases de données de temps à autres, en dehors de celle programmée lors des maintenances quotidiennes.

 

Bon donc, il faut appliquer cette maintenance on dira Mmmmmh, 1 fois par mois dans un monde parfait, histoire d'être tranquil.

Attention cette opération n'est pas sans risque, c'est pour cela que nous allons défragementer les bases dans un nouveau fichier, histoire de pas tout détruire, et pouvoir revenir en arrière en cas de pépin.

Nous utiliserons en ligne de commande (shell) l'outil ESEUTIL dispo dans :
C:/Program Files/EXCHSRVR/BIN  (ou emplacement de votre serveur exchange).

Il est recommandé de disposer de 110% en espace libre, de l'espace utilisé par votre base de donnée. ( pour ceux qui pige pas, si votre base fait 10Mo, vous avez besoin de 11Mo d'espace libre sur votre disque.)

Etape 1 :  Arrêt des services.
Pour une défragmentation Offline, nous devons arrêter le service de banque d'information exchange, afin que les fichiers de bases de données, ne soient plus utilisés.
Pour cela -> Panneau de configuration -> Outils d'administrations -> Services :
Arrêter (avec un clique droit par exemple) le service: Microsoft Exchange – Banque d'informations.

Dès ce moment la, les messages ne sont plus distribuer, votre serveur mail n'est pas injoignable, le service SMTP fonctionne toujours, et met les messages en queue, et les distriburas que le service de banque d'informations sera à nouveau actif.

Etape 2 : Défragementation des bases.
Dans :
C:/Program Files/EXCHSRVR/MDBDATA
Il y a deux fichiers (ou plus suivnt votre config)
Priv1.edb base de vos boites aux lettres.
Pub1.edb base des dossiers publique.
Il faut déframenter TOUTES VOS BASES . edb les une après les autres.
Attention, suivant la taille de vos bases, ceci peut prendre jusqu'a 12heures de temps.

Avec l'outils ESEUTIL nous allons executer la commande suivante : 

C:/>"C:/Program Files/Exchsrvr/bin/eseutil.exe" /d /p "C:/Program Files/Exchsrvr/MDBDATA/priv1.edb" /t
"C:/Program Files/Exchsrvr/MDBDATA/priv2.edb"

Nous itiliserons les paramètres /d /p afin d'acroître les performances et diminuer les risques en cas de problèmes durant la maintenance.

/d engendre la création de la base de donnée défragmentée dans un nouveau fichier dans notre exemple : prive2.edb

/t quand à lui n’est pas requise mais permet de contrôler le nom et l’emplacement de la nouvelle version de la base de données.

Effectuer cette manupilation avec Pub1.edb (sur pub2.edb).

Etape 3 : On renomme les fichiers
Une fois votre défrag terminée, il suffit de renommer votre fichier priv.edb en priv.edb-backup et votre fichier priv2.edb en pub1.edb
(Idem avec pub1.edb…)

 

Etape 4 : On relance le service
Une fois vos bases déframentées, il suffit de redémarrer le service "Microsoft banque d'information" et vérifier que tout fonctionne.

Quand vous estimez que votre maintenance est un succès, à vous de supprimer ou pas, vos fichiers de backup non déframentés

 

Google Analytics (urchin) avec Flash

Voici une class permettant l'utilisation de Google Analytics dans flash.

Utilisation :  

[code lang=”actionscript”]import AnalyticsURL;
//prevenir urchin qu’on change de section du site
AnalyticsURL.getInstance().track(”contact”);
//ouvrir un popup de taille 600X200
AnalyticsURL.getInstance().openURL(”http://luca.lovalvo.net”,”popup”,600,200);
//ouvrir un lien externe dans une nouvelle page
AnalyticsURL.getInstance().openURL(”http://luca.lovalvo.net”,”blank”);
//ouvrir un fichier à telecharger
AnalyticsURL.getInstance().downloadFile(”http://luca.lovalvo.net/pixel.gif”);[/code]

Télécharger la class : AnalyticsURL.as

Url de l'auteur :
http://seraf.mediabox.fr/2006/11/26/utiliser-google-analytics-de-facon-transparente-dans-flash/

Changer la signature par défaut et ajouter un logo dans horde (IMP)

Voici ce qu'il faut modifier dans horde afin de modifier la signature par defaut, et ajouter un logo dans la messagerie open source, horde.

 

Changer la signature.

dans /horde/imp/config, il suffit d'éditer le fichier "trailer.txt".

 

Ajouter un logo.

Dans /horde/config/config.php ajouter :
$conf['logo']['image'] ='/logo.jpg';

'/logo.jpg' étant le chemin de votre image.