headermask image

header image

Les ressources externes

Avec Open Laszlo il est possible d’intégrer des ressources telles qu’images, vidéos, textes ou fichiers XML sans avoir besoin de les intégrer à la compilation. Cela ne pose aucun problème lorsqu’on utilise le mode proxy, mais lorsqu’on est en mode SOLO, les ressources doivent êtres situés sur le même domaine que l’application.

Cela est dû à une restriction de sécurité du lecteur Flash, le lecteur refusera d’ouvrir une ressource si elle ne provient pas du même domaine que l’application.

En mode Proxy, ce problème ne se pose pas, car les ressources passent dans tout les cas par le serveur (d’où le terme proxy…).

Pour résumer (et pour montrer aussi que j’ai utilisé gliffy, un autre produit en OpenLaszlo ;) )

ça marche:

ça marche pas:

Pour contourner cette problématique mesure de sécurité, nous allons utiliser un petit script PHP pour simuler un proxy « du pauvre » :D

voilà le script que j’utilise pour remédier à ce problème :

Script PHP – getressources.php

  1.  <?php
  2.      $url = isset($_GET['url']) ? $_GET['url'] : 'bad';
  3.      $mime = isset($_GET['mime']) ? $_GET['mime'] : 'text/xml';
  4.      $code = isset($_GET['code']) ? $_GET['code'] : 'bad';
  5.      $vérif = 123456;
  6.     
  7.      if( (is_numeric ($code)) && ($code == $vérif) ){   
  8.          if ($url != "bad"){
  9.              header("Content-type: $mime");
  10.              $handle = fopen($url, "rb");
  11.              $contents = '';
  12.              while (!feof($handle)) {
  13.                  $contents .= fread($handle, 8192);
  14.              }
  15.              fclose($handle);
  16.              print $contents;
  17.          }
  18.          else{
  19.              print "URL introuvable";
  20.          }
  21.      }
  22.  ?>

on l’utilise ainsi :

http://www.misterpatate.fr/getressource.php?url=http://www.machin.com/image.jpg&mime=image/jpeg$code=123456

Par défaut si aucun type mime n’est passé, on utilise le type text/xml.

Le paramètre code permet d’éviter que le système soit utilisé par n’importe qui pour télécharger, c’est pas le top du top, je sais…

Ainsi dans une application OpenLaszlo, pour afficher le logo google par exemple:

Script LZX – logo Google

  1.  <?xml version="1.0" encoding="UTF-8" ?>
  2.  <canvas proxied="false">
  3.  <view ressource="http://www.misterpatate.fr/getressources.php?url=http://www.google.com/intl/fr_ALL/images/logo.gif&mime=image/gif&code=123456 "/>
  4.  </canvas>

Et la vous me dites « c’est très long », peut être, mais ça fonctionne :D .