IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Système] Class html possible?


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 14
    Points : 5
    Points
    5
    Par défaut [Système] Class html possible?
    Bonjour,

    J'aimerai faire une class ou fonction "html" me permettant d'appeller une liste, un lien, un div ou autre pour mettre le minimum de html possible dans mon code.

    J'ai déja une class que j'ai repris du livre "pratique de mysql et php" qui me permet de faire un formulaire.

    voila l'idée:

    <?php
    require ('menu.php');
    class html{

    private $css;

    public function html(){
    echo "ca marche";
    }

    public function a($link, $css, $attr, $content){
    echo "<a href='$link'";
    if(isset($class)) return "'$css' = '$attr'";
    echo ">$content</a>";
    }

    public function div($attr, $insert, $css){
    echo "<div $css=\"$attr\">$insert</div>\n";
    }

    public function ul($css, $attr, $content, $condition){
    echo "<ul";
    if(isset($class)) return "'$css' = '$attr'";
    echo ">\n";
    while ($condition){
    echo "<li>"
    .$content
    ."</li>\n";
    }
    echo "</ul>\n";
    }

    }
    ?>
    <?php
    $i = 1;
    $html = new html;
    $html->div("test", "ceci est un test", "id");
    $html->ul("id", "list", $i++, $i <= 10);
    $html->a("http://free.fr", "id", "lien 1", "FREE");


    ?>
    Le probleme c'est que le "while" de la fonction "ul" ne prend pas en compte la condition... y a t'il un moyen de la faire passer??

    Ceci n'est biensur qu'un test, si mon idée est absurde ou que je m'y prend mal dites le moi (me lynchez pas non plus hein!)

    Merci.

  2. #2
    Membre éclairé
    Avatar de Eric Berger
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2002
    Messages : 346
    Points : 663
    Points
    663
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     		while ($condition){
    		echo "<li>"
    			.$content
    			."</li>\n";
    		}
    Ton while va s'exécuter tant que $condition est vrai(TRUE) la doc php
    Dans le bloc du while, $condition n'est jamais modifié, donc soit on n'entre pas dans le while (si $condition vaut FALSE), soit on y entre pour ne jamais en ressortir.
    Si tu souhaites exécuter une seule fois le bloc, il faut utiliser l'instruction if.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Excuses moi mais je n'ai pas compris ce que tu veux me dire.

    lorsque j'appel ma fonction
    $html->ul("id", "list", $i++, $i <= 10);
    je lui demande que tant que $i est inférieur ou egal a 10 il rajoute 1.

    je récupere $i<=10 dans la variable $condition qu'execute le while, mais apparement il ne veut pas l'interpreter...

  4. #4
    Membre éclairé
    Avatar de Eric Berger
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2002
    Messages : 346
    Points : 663
    Points
    663
    Par défaut
    Tu as lu la page sur l'instruction while que je t'ai donnée?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    oui c'est d'ailleur de la que je tire mon exemple avec le $i car j'avais revérifier ici..

    Je ne suis peut etre pas tres perspicace sur ce coup la mais je ne voit absolument pas ou tu veux en venir et ce n'est pas un manque de bonne volontée!

    Pour ce qui est de la partie en anglais c'est deja plus complexe pour moi si c'est la que tu veux en venir, je vais essayer de décrypter mais si tu peux etre plus précis ce serait cool.

  6. #6
    Membre éclairé
    Avatar de Eric Berger
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2002
    Messages : 346
    Points : 663
    Points
    663
    Par défaut
    Désolé, mais là y'a trop à dire sur ton code, il faut que tu commence par bien comprendre les mécanismes de base, particulièrement le flux d'un programme (ca veut dire la chronologie d'exécution) parce-que là tu appele une fonction comme si c'était une boucle for, tu fais des return à mon avis sans comprendre ce que ça fait, etc...

    Je te suggère de prendre le temps d'aller lire cette partie de la documentation PHP. Si tu comprends bien les notions qui y sont expliquées, il te sera ensuite bien plus facile de créer des pages en PHP.

  7. #7
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Ton code devrait plutot etre de la forme suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public function ul($content, $condition){
       echo '<ul>';
       $i = 0;
       while ($condition($i)){
          echo '<li>';
          echo $content($i);
          echo '</li>';
       }
       echo '</ul>';
    }
    Et ensuite tu appelle de la facon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function content(&$i) {
       return $i++;
    }
    function condition($i) {
       return $i < 10;
    }
    ...
    $html->ul('content', 'condition');
    ...
    (Pas testé)

  8. #8
    Rédacteur

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Points : 1 071
    Points
    1 071
    Par défaut
    regarde du coté des templates, c'est mieux que ce type de bricolage

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    merci a vous 3!

    Eric Berger j'ai fait plusieurs tests avec ce script et j'ai laissé les return au lieu de echo, j'ai parcouru le chapitre que tu m'a suggerer de lire et je n'ai pas trouver ce que je cherchai, cependant j'en ai profiter pour apprendre encore

    Mr N., c'est exactement ce que je voulais a ceci pres que je ne comprend pas pourquoi le fait de mettre $i <= 10 par exemple n'est pas interprété, si tu as l'explication.. j'aime bien comprendre
    En tous cas ca fonctionne comme ca.

    wamania, je me doutait que les templates me fourniraient ce genre d'éléments mais je dois avoué que ca me fait peur de repartir encore dans un autre code, sans parler du fait de choisir quel systeme prendre.
    Dans mon site (a moin qu'il y ai des choses auxquels je n'ai pas encore pensé), je n'ai besoin que de ca, d'une class formulaire (que je possede deja et qui est beaucoup plus complete) et de fonctions header(), menu(), footer()...
    Si je suis a coté de la plaque dis le moi, sinon si il est possible de faire quelque chose de propre qui ne fasse pas trop bidouillage comme tu dis je veux bien des conseils.

    A note que je vais faire tout l'affichage du site avec des feuilles CSS et donc des <div> et non pas des <tr>.

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Mr N. c'est volontairement que tu as omis de mettre
    "\n"
    ?

  11. #11
    Rédacteur

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Points : 1 071
    Points
    1 071
    Par défaut
    les templates sont assez compliqué dans le concept (réflechir avant d'écrire), pas dans l'utilisation.

    et tu n'as aucun code à comprendre, juste 4 fonctions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    set_filename
    assign_vars
    assign_block_vars
    pparse

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Je viens de voir, ca me plait pas du tout!

    Pour faire un code propre tu es obligé de passer par les templates? et par conséquent de cree des pages .html...

    Y'a pas d'autres moyens de faire ?

  13. #13
    Rédacteur

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Points : 1 071
    Points
    1 071
    Par défaut
    Pour faire un code propre tu es obligé de passer par les templates? et par conséquent de cree des pages .html...
    Pour y mettre de l'HTML, je trouve ça plus bien, non?

    sinon tu as tjs XML + XSLT
    mais bon, c'est deja un peu plus haut niveau

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Tiens je fais une parenthese la dessus si tu veux biens, car je viens de me renseigner un peut sur le XML et ca m'interesse.

    Le premier Hic c'est le XSLT que je ne connais pas, hors je connais le CSS..
    Je viens de voir dans les grandes lignes les différences entre les deux.
    Est il indispensable de passer au XSL si j'utilise le XML? ou puis je me contenter du moin dans un premier temps du CSS?

    Xml + Xslt est un bon complement de php?

    Est ce que ca vaut le coup de me lancer la dedans, je vois que c'est utile notement pour ajouter du flux RSS...
    Est ce que c'est compliquer ? (genre le CSS c'est tout simple).

    tu me dis que c'est déja un peut plus haut niveau mais est ce que c'est mieu (plus pro) qu'un simple systeme de template?

  15. #15
    Rédacteur

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Points : 1 071
    Points
    1 071
    Par défaut
    J'avoue ne pas avoir fait suffisamment de XML+XSLT pour répondre concrètement à tes questions.
    Par contre

    Xml + Xslt est un bon complement de php?
    clairement
    Est ce que ca vaut le coup de me lancer la dedans, je vois que c'est utile notement pour ajouter du flux RSS...
    ça vaut le coup, après, ça dépend ce que tu veux faire. Pour une page perso, pas vraiment. Pas besoin de ça pour avoir un flux RSS.
    Est ce que c'est compliquer ? (genre le CSS c'est tout simple).
    pas vraiment, faut juste s'y mettre et absorber le mécanisme
    tu me dis que c'est déja un peut plus haut niveau mais est ce que c'est mieu (plus pro) qu'un simple systeme de template?
    Je connais des professionnels dans mon entourage qui crachent sur les templates et ont vendu leurs ames au XML/XSLT.
    Moi, j'aime bien mes templates
    A noter qu'en principe, le XHTML est sensé être du XML. La frontière entre tout ça devient floue je trouve

  16. #16
    Rédacteur

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Points : 1 071
    Points
    1 071
    Par défaut
    En relisant nos post, je me dis que tu devrais chercher du coté du MVC (Modèle Vue Contrôleur)
    notamment
    http://tahe.developpez.com/web/php/mvc/
    http://www.phpmvc.net/
    car au final, ça correspond pas mal à ce que tu cherche je crois
    j'ai un excellent livre à te conseiller sur ça et PHP5, j'ai pas le titre là, mais si ça t'interesse...

  17. #17
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Bon en tous cas tu m'aide bien en m'aiguillant ainsi.

    En attendant de revenir sur le probleme je vais essayer d'en apprendre un peut plus sur le couple, dans mon bouquin php5 avancé ils en parlent sur 2 chapitres en mettant le point sur le simpleXml qui apparement est sortie avec l'apparition de la version 5 de php...

    Le tout maintenant est de savoir quelle version apprendre et utiliser.

    On arrete jamais d'apprendre avec le developpement web...

  18. #18
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    mince j'ai laissé ma page ouverte un moment avant de valider le message.

    parfait je vais voir ca, merci de ton aide

  19. #19
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Merci wamania.

    En fait j'ai pas envi de trop me dispercé, j'ai déja l'impression de le faire suffisement :p mais je vais plutot m'orienter du cote du XML..

    Mais alors c'est encore un casse tete ce truc, j'ai pas compris si il faut choisir entre simpleXML, SAX, DOM ou un autre ou si ils sont complémentaires.?!

    Pareil la nuance entre XHTML et XML je la fait pas trop.

    bref je crois que je vais poser qques questions sur la partie xml du forum !

  20. #20
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Points : 691
    Points
    691
    Par défaut
    j'ai pas compris si il faut choisir entre simpleXML, SAX, DOM ou un autre ou si ils sont complémentaires.?!
    on peut deispactché en é partie DOM et sax
    dom cahrge l'arbre xml en memeoire quant a sax il parcouir le le fichie 'ligne par ligne'

    simplexml est une appproche simplifié de dom, et tu peut convertir un objet simplexml en dom et vice versa

    Pareil la nuance entre XHTML et XML je la fait pas trop.
    XHTML "c'est juste" HTML qui suit les regles XML

Discussions similaires

  1. Classes croisées possible ?
    Par seal3 dans le forum C++Builder
    Réponses: 6
    Dernier message: 16/10/2006, 18h21
  2. [C#] combobox et value c# comme en html possible ?
    Par korben06 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 25/07/2006, 01h16
  3. Copie système XP gratuitement, possible?
    Par joker vb dans le forum Windows XP
    Réponses: 6
    Dernier message: 02/02/2006, 13h36
  4. [CSS] copie des styles par défaut html...possible?
    Par luta dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 27/10/2005, 08h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo