août 23 2008

Les Styles Sheets Alternatifs en Dynamique

Catégorie : CSSJulien - 13:42

Qu’est ce que les styles sheets alternatifs ?

Pour commencer, il faut savoir que votre navigateur a été conçu afin de pouvoir afficher des sites sous différentes formes styles. Si et seulement si, l’integrateur du site a prévu cette fonctionnalité.

Vous pouvez changer de style via le menu “Affichage > Style de la page” (i.e. sous Firefox)

VOIR UN EXEMPLE

Pourquoi dynamiques ?

C’est très simple, vous connaissez toutes et tous un site ou vous pouvez changer le “design” du site sans le recharger complétement ? Et bien cette petite prouesse technologique nous est possible grâce à JavaScript.

Ainsi, vous remplacez simplement l’action du menu d’affichage de votre fureteur par du JavaScript beaucoup plus (?) convivalement.

Introduction

Pour le mettre en place, vous devez créer un document comme ceci:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
  3.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4.     <script type="text/javascript" src="js/jquery.js"></script>
  5.     <script type="text/javascript" src="js/ssad.js"></script>
  6.     <link rel="stylesheet" title="style1" href="css/premier.css">
  7.     <link rel="alternate stylesheet" title="style2" href="css/second.css">
  8.     <link rel="alternate stylesheet" title="style3" href="css/troisieme.css">
  9.     <link rel="alternate stylesheet" title="style4" href="css/quatrieme.css">
  10.     <title>Titre du site</title>
  11.   </head>
  12.     <div>
  13.       <a href="#" rel="style1" class="styleSwitch">Premier</a> -
  14.       <a href="#" rel="style2" class="styleSwitch">Second</a> -
  15.       <a href="#" rel="style3" class="styleSwitch">Troisième</a> -
  16.       <a href="#" rel="style4" class="styleSwitch">Quatrième</a>
  17.     </div>
  18.     <p class="paragraphe_1">
  19.       Je suis le paragraphe un !
  20.     </p>
  21.     <p class="paragraphe_2">
  22.       Moi, je suis le paragraphe deux !
  23.     </p>
  24.     <p class="paragraphe_3">
  25.       Ben moi, je suis le paragraphe trois !
  26.     </p>
  27.   </body>
  28. </html>

Vous remarquerai que nous y avons joint quatre styles différents, deux scripts javascript (jquery et le plugin de changement de style).
La structure n’est pas très compliquée, trois paragraphes seulement ;-)

DEMONSTRATION

Tags: , , , ,


août 19 2008

PHP et les Espaces de Noms ou Namespaces

Catégorie : Non classé, PHPJulien - 20:32

Qu’est ce qu’un namespaces ?

Une des nouveautés majeure de PHP 5.3 est le support des namespaces. Mais qu’est-ce donc que les espaces de nom ?

Pour l’expliquer très simplement, il suffit de remonter à l’époque ou l’envie vous prenait de créer une fonction appelée date.

Votre fonction déclarée par le mot clé function se retrouvée dans la contexte global.

Par conséquent, comme PHP intègre déjà une fonction native appelée date dans le contexte global, et qu’il est impossible de re-déclarer une fonction.

Une erreur de la forme suivante vous était remontée :

Fatal error: Cannot redeclare date()

C’est à ce moment que les espaces de nom entrent en jeu !

Les namespaces permettent de créer des espaces décalés par rapport à l’espace global.

Ainsi, il est possible dans un espace de nom de déclarer des noms de fonctions et classes connues dans l’espace global !

Comment utiliser les namespaces ?

L’utilisation d’un espace de nom est très simple, il s’utilise comme ceci :

Déclarer un namespace

  1. <?php
  2. // test_a.php
  3. namespace MySpace::MySubSpace;
  4. function MyFunction()
  5. {
  6. $str = ‘Julien Breux’; // Petit coucou pour Google ;)
  7. return $str;
  8. }
  9. ?>

Utiliser un namespace par chemin absolue

  1. <?php
  2. // test_b.php
  3. require(‘test_a.php’);
  4.  
  5. $result = MySpace::MySubSpace::MyFunction();
  6. ?>

Utiliser un namespace par “importation”

  1. <?php
  2. // test_c.php
  3. require(‘test_a.php’);
  4.  
  5. // Exemple 1
  6. use MySpace;
  7. $result = MySubSpace::MyFunction();
  8.  
  9. // Exemple 2
  10. use MySpace::MySubSpace;
  11. $result = MyFunction();
  12. ?>

Utiliser un namespace avec des alias

  1. <?php
  2. // test_d.php
  3. require(‘test_a.php’);
  4.  
  5. use MySpace::MySubSpace::MyClass as MyOtherClass;
  6. $result = new MyOtherClass();
  7. ?>

Aller plus loin

Quelques points importants sont aussi à noter avec l’arrivée des espaces de nom:

- La constante __NAMESPACE__ est chargée de retourner le nom du namespace courant.

- Possibilité de déclarer une constante avec le mot clé CONST à l’intérieur un namespace.

- Pour utiliser une fonction de l’espace de nom global, nous utilisons l’accesseur directe ::MyGlobalFunction();

Mot de la fin

Les namespaces, c’est bien !

Dans le prochain article, nous parlerons de la librairie PHAR intégrée en natif à PHP6.

Tags: , , ,


août 15 2008

Projet d’évaluation pour le CESI

Catégorie : PHPJulien - 20:40

Préambule

Comme vous le savez, je ne serai plus affecté au CESI à partir du lundi premier septembre.

La formation oblige à réaliser un projet portant sur les technologies PHP, MySQL, xHTML et CSS. (Oui, oui, celles qui fond de moi un expert bientôt certifié)

C’est pour cela que j’offre un semblant de réponse.

Notez que ce projet doit-être réaliser par des néophytes total sur ces technologie.

Je devrai donc coder quelque chose de très abordable. (Pas de techniques avancées malheureusement)

Ceci dit, avant de prendre mes fonction au sein de L.M.V. peut-être développerai-je le même projet façon orienté objet… qui sait ?

Introduction

J’ai apporté une nuance à ce projet, les utilisateurs lambda peuvent eux aussi ajouter des incidents, ce que je pense beaucoup plus logique. (Mais ce n’était pas le cas dans le projet d’origine… ou l’on supposé que les informations étaient prisent par téléphone ou par mail… intérêt d’une telle application dans un tel cas ?)

L’application doit permettre la gestion par un administrateur des incidents informatiques qui surviennent au sein d’une entreprise.

Ces incidents sont soumis par les utilisateurs (le personnel de l’entreprise) et peuvent concerner des problèmes d’affichage, des dysfonctionnements, des coupures réseaux ou des difficultés liées à un applicatif particulier.

Les acteurs sont divisés en deux groupes:

  • Le(s) administrateur(s)
  • Le(s) utilisateur(s)

Les administrateurs peuvent:

  • Créer / Modifier / Supprimer des utilisateurs autorisés à soumettre des incidents
  • Modifier / Supprimer des incidents
  • Transformer l’incident en “résolut” avec la résolution du problème (Ajouté personnel)

Les utilisateurs peuvent:

  • Ajouter / Consulter des incidents (en globalité ou par critères)
  • Consulter les incidents résolus (Ajouté personnel)

NOTE

Dans la mesure ou je ne vais pas vous macher tout les travail, le modèle de base de données a été changé.

Tags: , ,


août 13 2008

Site multilingue

Catégorie : PHPJulien - 19:47

Bonjour,

Suite à l’article de mon ami Didier de php-experts.org sur le système permettant l’utilisation d’un site multilingue, je poste le mien aussi :p

Pour l’utiliser, c’est très simple, il vous suffit d’utiliser en plus les sessions.

Voici le fichier du système de langue “lang.inc.php“:

  1. <?php
  2.  
  3. function getLang()
  4. {
  5.   $langAllowed = array(‘fr’, ‘en’, ‘es’);
  6.   if(isset($_GET[‘lang’]) && !empty($_GET[‘lang’]) && in_array($_GET[‘lang’], $langAllowed)):
  7.     $_SESSION[‘lang’] = $_GET[‘lang’];
  8.     $lang = $_SESSION[‘lang’];
  9.   elseif(empty($_SESSION[‘lang’])):
  10.     $browserLanguage = explode(‘,’, $_SERVER[‘HTTP_ACCEPT_LANGUAGE’]);
  11.     $_SESSION[‘lang’] = substr($browserLanguage[0], 0, 2);
  12.     $lang = $_SESSION[‘lang’];
  13.   else:
  14.     $lang = $_SESSION[‘lang’];
  15.   endif;
  16.   return $lang;
  17. }
  18. ?>

Voici un fichier d’exemple “exemple.php“:

  1. <?php
  2. require_once(‘lang.inc.php’);
  3. print("<b>Le site est en:</b> ");
  4. switch(getLang())
  5. {
  6.   case‘fr’:
  7.     print("Fran&ccedil;ais");
  8.   break;
  9.   case‘es’:
  10.     print("Espagnol");
  11.   break;
  12.   case‘en’:
  13.     print("Anglais");
  14.   break;
  15. }
  16. <b>Passer le site en:</b> ");
  17. print("<a href=\"?lang=fr\">Fran&ccedil;ais</a> - ");
  18. print("<a href=\"?lang=es\">Espagnol</a> - ");
  19. print("<a href=\"?lang=en\">Anglais</a> - ");
  20. print("<a href=\"?lang=\">V&eacute;rifier</a>");
  21. ?>

En espèrent que cette portion de code aura répondu à vos attentes ;)

DÉMONSTRATION

Source disponible sur le Wiki.

EDIT: Ajout de la vérification de la langue suite au commentaire de Savageman.

Tags: , ,


août 13 2008

Qui dit développement avancé PHP… dit Anglais ou English

Catégorie : Langues, Vie du BlogJulien - 19:05

Bonjour,

Récemment, je me suis retrouvé avec un ami développeur Américain…

Il est vrai que notre Anglais, à nous Français est parfois mauvais.

Je vous donne donc un bon conseil pour apprendre indirectement à parler l’anglais.

Voici le site de Michel Thomas

Heu… bon courage :D

Tags: ,


août 11 2008

Nouveau job, nouvelle vie ??

Catégorie : Vie du BlogJulien - 19:28

Bonjour à toutes et à tous !

Comme vous le savez certainement, lorsque l’on est autodidacte, il est très difficile de se faire une place dans un milieu. Surtout très dur de justifier les connaissances quand il n’y a pas de diplôme “type”. Bref…

J’avais décider de finalement opter pour un contrat pro au sein d’une petite entreprise d’un seul employé (moi), de deux associés, ainsi que de multiples stagiaires ( en 12mois) non rémunérés.

Seulement, ma vocation est d’évoluer rapidement au sein d’une structure fiable et évolutive.

Je commence donc aux alentours du 15 Septembre dans la société “La Mode est à Vous”.
Afin de lui faire bénéficier de mes connaissances.

Julien Breux chez L.M.V.

Julien Breux chez L.M.V.

C’est une très bonne nouvelle, donc champagne……..

Tags: , ,


août 09 2008

Forum PHP 2008 - 8 et 9 décembre 2008 à Paris

Catégorie : ConférencesJulien - 11:54

Bonjour,

Comme vous le savez surement, le forum PHP 2008 se tiendra à Paris le 8 et 9 décembre.

Je serai donc présent, et peut-être conférencier ? qui sait ? ;-)

Merci à l’association l’afup.

Tags: ,


août 09 2008

Ha Ha Ha… PHP 4.4.9 released!

Catégorie : PHPJulien - 11:42

Bonjour !

J’avais envie de rigoler un peu…. car PHP 4.4.9 released!

Article sur PHP Net

Moi, vue la puissance de PHP5, je dit: “Merci PHP4, tu nous as permis de comprendre que tu devez te faire remplacer, ton modéle objet ne nous manquera pas! Bisou !”


août 05 2008

PHP5.3 est une brute !

Catégorie : PHPJulien - 20:29

Et oui, je vous l’avais annoncé, la version 5.3 de PHP a aussi sa propre brute.

Jeu à découvrir.

Merci à Motion-Twin, une fois de plus !

Tags: , , ,


août 05 2008

Nouvelle constante magique __DIR__

Catégorie : PHPJulien - 10:31

Encore une belle nouvelle qui est arrivée il y’a déjà un bon moment, mais que j’aimerai vous faire partager…

Avant, nous faisions:

  1. <?php
  2. $currentDir = dirname(__FILE__);
  3. ?>

Maintenant, nous ferons:

  1. <?php
  2. $currentDir = __DIR__;
  3. ?>

Tags:


Page suivante »