En fait, j'utilise JW Image Rotator pour le diaporama en flash. Ce player est génial et très bien documenté. On peut le faire communiquer avec du JavaScript très simplement. C'est donc ce que j'ai fait avec la liste déroulante qui va envoyer l'url de la playlist à recharger.
Pour gagner du temps et être vraiment simple à utiliser, j'ai décider de ne pas avoir d'administration et que le simple fait d'envoyer un nouveau dossier mettrait en ligne les photos. La liste déroulante est donc générée en PHP pour faire apparaitre tous les dossiers existants. Le script générant la playlist récupère juste la liste des fichiers du dossier demandé et ressort un fichier XML, au format souhaité.
Etant donné que j'ai hébergé ce script sur mon ftp de free, j'ai du changer un peu les fonctions de récupération des dossiers/images pour qu'il fonctionne. si vous êtes dans le même cas, utiliser fonc.free.php à la place de fonc.php et tout ira bien.
Enfin, j'ai mis en place un rss pour permettre aux gens de suivrent simplement l'actualité de mes photos. Il suffit simplement de créer un flux XML au format demandé et on a un beau fil RSS tout nouveau tout beau !
NB : Pour mettre en place ce script sur votre site, vous devrez sans doute modifier des petits trucs dans tous les fichiers. Faites un tour complet avant.
Histoire de ma vie de tous les jours à Los Angeles pendant mon stage.
Hier dimanche, la veille de commencer véritablement le stage, j'ai fait une virée le long de l'océan, que je n'avais pas encore vu...
Départ à 2:00 PM en commençant par descendre quelques rues à pied histoire de voir aussi, puis bus N°1 sur Whashington Blvd pour en sortir juste à côté de la plage.
Premières impressions : ça grouille de monde, ça bouge partout, des gens de tous genres et tous style. Los Angeles ne manque pas à sa réputation de melting pot du monde. une ambiance de vacances évidement sur l'Ocean Front Walk, le long chemin qui longe toute la côte de Los Angeles, séparé en deux pour les piétions et vélos/skate/roller. On y trouve toutes sortes de magasins à touristes : lunettes, T-Shirt, fast-food, chapeau, tatouages au hennain, musiciens, artistes, etc... Beaucoup de stands pour vendre tout et n'importe quoi à l'effigie du Rastafari et de l'Afrique, des très belles photos de LA encadrées (je vais y retourné pour m'en acheter une, c'est sûr), des gens qui vont font le portrait, qui tire les cartes et tellement d'autres choses...
Après une petite heure de marche, je m'assois dans l'herbe pour manger un Snickers (un peu fondu), boire un peu d'eau et me reposer un petit coup. C'est là que je me rends compte que les gens qui sont sur leurs vélos ne prennent pas forcément le temps, on croirait qu'ils vont au boulot. Dommage pour eux. Et s'ils vont faire une petite sieste, il faut s'accrocher : avions publicitaires, hélicoptère, sonnettes des vélos, voitures un peu plus loin et j'en passe. Mais à l'ombre des palmiers, ça doit être bien agréable quand même.
Sur un grand ponton, ils ont installé quelques manèges pour distraire tout ce monde. La police locale, Santa Monica, y a même un bureau, juste pour le fun. Sur les photos, vous pourrez voir des croix et des cercueils sur la plage, juste à côté de ce ponton : chaque croix représente un soldat mort en Irak... Et des pancartes expliquent un peu l'histoire, des photos des disparus sont affichés. C'est assez glauque, mais c'est un des seuls moyens qu'ils ont trouvé pour protester en touchant la population.
Le long de la plage, des concerts s'organisent de différents styles. Quand je partais un bon nombre de personnes se regroupaient sur la plage autour d'un groupe de percussionniste. Mais comme ça faisait déjà 3 heures que je marchais, la fatigue commençait à me tiraillé. La prochaine fois que j'y retournerai, ça sera plus tard pour avoir droit à un beau coucher de soleil et gouter à la fiesta sur la playa de LA !
Les photos sont donc sur la page que j'avais déjà donnée. Il y en a 125, par flemme de trier. Pour celle avec la Bubba Gump, penser à Forsest Gump, je pense qu'il y a un rapport... La dernière photo est le freeway de l'autre jour, avec le soleil se couchant, à 8:00 PM.
PS : je pense que de nouveaux headers vont arriver avec cette série de photos...
Histoire de ma vie de tous les jours à Los Angeles pendant mon stage.
Je n'ai pas encore pu profiter pleinement de la ville aujourd'hui. Je devais faire le nécessaire pour ma carte de sécurité sociale, acheter un téléphone ici, me renseigner pour le bus et faire quelques achats pour manger.
Pour la carte de sécurité sociale, pas de problèmes, je la recevrai dans 3 semaines. J'ai juste un peu galéré pour trouvé où se trouvait les bureaux : dans un grand immeuble. Heureusement, un agent de vérification des voitures garées qui venait de mettre une prune m'a bien renseigné.
Ce fut mon premier voyage en bus. Pour l'aller, il était quasiment vide, juste 4/5 autres personnes. Au retour, il était blindé, une personne a même raté son arrêt à cause de ça.
Les premières courses : impressioné devant le choix et à la vue de tous ces mets tous sans doute aussi gras les uns que les autres... J'ai acheté juste une boisson et quelques plats surgelés.
Pour le téléphone, j'ai cherché en vain un magasin. Je recommencerai demain en cherchant d'abord l'adresse véritable et en regardant sur Google map pour être sûr de trouver !
Avec tout ça, pas encore vraiment le temps de prendre des photos. Pour l'instant je n'en ai que 3 que j'ai mis sur ma petite page créée pour l'occasion (je donnerai les sources plus tard). Vous pouvez vous abonner au RSS pour savoir directement quand j'en mettrai de nouvelles.
Petite description rapide des photos :
L'avion : c'est celui que j'ai pris pendant 13 heures au dessus de l'angleterre, Irlande, Atlantique, Groenland, Canada et USA. Le service de Swiss Airline était très bien, rien à redire.
Le dollar : Figure emblématique de l'amérique. De l'autre côté, on peut lire : "In god we trust", expression qu'on retrouve sur tous les billets et pièces.
le Freeway (autoroute en français) : toujours plein de voiture, jour et nuit
Voilà, j'espère que je pourrai prendre assez rapidement d'autres photos pour vous les partager !
Lorsqu'on doit lister des éléments provenant d'une base de données avec énormément de liaisons dans la requête, le traitement prend quelques secondes et le serveur en prend un coup à chaque affichage de page.
Pour palier à ça, il faut mettre en place un système de cache des pages de listing.
Un système de cache consiste en l'enregistrement de la page une fois totalement traitée (donc ce qu'on affiche, le code HTML final) puis à le ressortir lors de l'appel suivant de la même page. Bien sûr, dans tout bon système de cache, on peut spécifier la durée de vie de ce cache (1 heure par exemple) pour qu'il soit effacé au delà et remplacé par un nouveau.
Avec ceci, on gagne donc en ressource serveur (beaucoup moins de connexions vers le serveur MySQL) mais les pages affichées ne sont pas synchronisées à l'instant T, on a 1 heure maximum de décalage. Même si ce n'est pas énorme, ce peut être handicapant dans certains cas, il faut le garder à l'esprit.
Pour un site que j'ai mis en ligne samedi dernier, qui utilise jusqu'à 11 tables dans ses listings, j'ai dû mettre en place un tel système pour gagner en temps d'affichage. L'avantage est que les listings changent une ou deux fois par jour au grand maximum, pas du tout pour la plupart. Le temps du cache est donc pour l'instant d'une heure, mais il est possible que je le monte à 2 voir 3 heures.
Pour mettre en place un tel système, j'ai regardé s'il n'existait pas un bout de code ou une classe sous licence GPL prête à l'emploi. Après quelques googlisations, j'ai trouvé mon bonheur.
Un petit tour dans le code pour changer le dossier d'enregistrement du cache afin de le rendre inaccessible depuis le site, et pour voir comment il générait ses noms de cache.
Il utilise simplement l'URL de la page demandée, y ajoute tous les paramètres donnés en GET et en fait le MD5 (pour avoir toujours la même longueur de nom fichier et pas de problèmes avec des caractères spéciaux) et y donne l'extension .cache.
Le gros plus de cette classe, c'est qu'elle permet de mettre en cache la page PHP zone par zone. On peut ainsi imaginer une page avec une partie sans cache (le menu avec les infos de connexion par exemple), une partie avec un cache d'une heure (un listing qui change assez souvent) et une partie avec un cache d'une journée (un classement journalier par exemple).
De plus, si vous voulez forcer la reconstruction du cache, il suffit de mettre le paramètre rebuild en GET dans l'URL de la page.
Une classe à ajouter à votre librairie de toute urgence ! (et le site dans vos favoris...)
Fadela Amara, Secrétaire d'Etat à la politique de la Ville, a ouvert deux blogs.
Le premier est un "blog officiel qui s'adressera à l'ensemble de nos concitoyens pour les entendre sur la politique de la ville qui n'a pas vocation à s'adresser uniquement à une catégorie de population", a-t-elle indiqué. Le second, accueilli sur la plateforme skyblog.com de la radio musicale Skyrock - première radio des 13-24 ans - vise les jeunes. "Il faut que la jeunesse se sente partie prenante du plan banlieue. Ce sera une discussion en direct avec les jeunes des quartiers en difficulté. Je veux libérer cette parole-là."
Et à la vue de quelques commentaires, je plains les préposé à ce blog pour la validation des commentaires...
Quelques extraits :
Je mais un commentaire
pour dire que moi la politique je ne mis interaissent pas trop sauf dernièrement lors des elections presidentielle mais je n'ai pas encore vraiment un opinion
Je m'y suiis déjà iinteressey , may iil ya bcp de priiviileges pr ley persOnnes agey , ke pr nOus ley jeunes... Ce que je tve nul' parce que je pense qu'On pOurraiit fayre bcp de chOz !
Pr ley "viieux" ey pr ley jeunes !!
Et encore tellement d'autres.
Tout pousse les jeunes qui arrivent sur ce blog à commenter : tutoiement, questionnement (dans le texte ou dans les vidéos). La plupart des billets ont une vidéo et deux phrases, le plus souvent des questions.
Sur les 12 billets actuels du blog, 11 ont été postés le 30 juillet à la suite, à partir de 19h20. Le dernier date du 31 juillet vers 12h30. A voir donc si de nouveaux billets vont arriver ou pas et si ce qui ressort des commentaires est vraiment prix en compte.
On voit ici qu'on peut aller jusqu'à 3 niveaux de profondeur (Berline ou 125 par exemple) mais qu'on a aussi des catégories au 2ème niveau (Location). Avec un nombre fixe de niveaux, c'est assez simple : une table MySQL pour chaque niveau, avec chacun un identifiant vers sa catégorie mère et le tour est joué. Là, nous allons devoir faire autrement.
1) La table MySQL Pour commencer, voici la structure de la table MySQL que j'utilise :
CREATE TABLE cat ( id_cat int not null auto_increment primary key, rid_cat int default '0', nom varchar(50) not null );
id_cat : identifiant unique de la catégorie. rid_cat : clé étrangère, qui fait référence à la catégorie mère, s'il y en a une. nom : le nom de la catégorie.
Avec cette table, n'importe quel élément qui doit être rattaché à une catégorie le sera avec son id_cat, indifférement de son niveau, puisque toutes les catégories sont stockées dans cette même table.
Maintenant que la façon de stockée ces catégories est en place, voyons comment tirer parti de cette structure
2) La récupération des catégories mères Pour la navigation, il est toujours agréable de mettre en place en haut de la page le cheminement des catégories depuis l'accueil. Par exemple Accueil > Auto-Moto > Auto quand on se trouve sur la page des autos, avec un lien sur chaque intitulé pour revenir sur la page concernée.
Pour récupérer toutes les catégories mères d'une catégorie donnée, nous allons utiliser une fonction récursive. Les mathophobes, rester avec nous, il n'y a pas de grands rapports avec les suites ou séries mathématiques que vous connaissez. Le rapport vient du fait que cette fonction va faire des appels à elle-même pour avancer dans la hiérarchie. Voici cette fonction PHP :
function recupMere($idCat) { $data = mysql_fetch_array(mysql_query("SELECT id_cat,rid_cat,nom FROM cat WHERE id_cat='$idCat'")); $ret = ''; if (!empty($data['rid_cat'])) $ret = recupMere($data['rid_cat']).' > '; $ret.= $data['nom']; return $ret; }
En fait, on continue la recherche de la mère tant que rid_cat n'est pas vide. A chaque nouvelle catégorie rencontrée, on concatène avec > comme séparateur pour arriver au résultat escompté.
3) La récupération des catégories filles Pour la première fonction, la simplicité venait du fait qu'une catégorie a 0 ou 1 catégorie mère, ce qui permet de créer la chaine simplement. Pour récupérer les filles, c'est un peu plus compliqué selon ce qu'on veut en faire. Voici par exemple une fonction permettant de créer une liste déroulante avec toutes les sous-catégories de la catégorie demandée :
function selFilles($idCat=0, $mere='') { $ret = ''; $req = mysql_query("SELECT id_cat,nom FROM cat WHERE rid_cat='$idCat'"); while ($row = mysql_fetch_array($req)) { $ret.= '<option value="'.$row['id_cat'].'">'.$mere.$row['nom'].'</option>'."\n"; $ret.= selFilles($row['id_cat'],$mere.$row['nom'].' > '); } return $ret; }
Le premier paramètre sert à spécifier la catégories à partir de laquelle on veut afficher les sous-catégories. Par défaut il vaut 0, ce qui veut dire qu'on afficherait toutes les catégories de la base. Avec notre exemple, on obtiendrai ceci : Le second paramètre est utilisé pour conserver le chemin parcourut jusque là. On aurait pu aussi rappeler la première fonction, mais on économise ainsi des requêtes MySQL, autant ne pas s'en priver !
Bien sûr, on peut imaginer des autres applications, pour sortir les catégories dans un fichier XML pour une utilisation dans Flash par exemple.
Vous pouvez télécharger les sources, avec quelques exemples et la base de donnée utilisée dans l'exemple.
Si vous avez d'autres idées ou suggestions pour cet article, n'hésitez pas, les commentaires sont là pour ça.
Me lançant dans l'aventure -bloggesque- depuis quelques mois, j'essaye ici de faire partager ma passion du web a travers différentes infos, utiles et inutiles... Le pincipale étant de se faire plaisir.
Bonne lecture.