Utiliser PHP::PEAR pour générer les input

Discussion dans 'Web, design' créé par guslinux, 17 Mars 2007.

Statut de la discussion:
Fermée.
  1. Offline
    guslinux Gamerz'ien
    Dans le continuité de la création d'un templates en utilisant la gestion de la cache par php, voici un petit post sur l'utilisation des librairies PEAR pour générer les champs input.

    En voici quelques implémentation :
    Code:
    // Librairies
    require_once "HTML/QuickForm.php";
    require_once 'HTML/QuickForm/select.php';
    require_once 'HTML/QuickForm/date.php';
    require_once 'HTML/QuickForm/text.php';
    require_once 'HTML/QuickForm/autocomplete.php';
    require_once 'HTML/QuickForm/hierselect.php';
    
    // Date
    $options = array(
    		'language'  => 'fr',
    		'format'    => 'dMY',
    		'minYear'   => 2001,
    		'maxYear'   => 2005
    		);
    		
    $date = new HTML_QuickForm_date('Date', null, $options, null);
    echo $date->toHTML();
    
    // Text autocomplete
    $text = new HTML_QuickForm_autocomplete('Text','Text', array('Hugues Massart','Hugo Boss','Jean-Pierre Lansman'), $attributes = null);
    $text->setValue('Test');
    echo $text->toHTML();
    
    // Double selectbox
    $marque = array();
    $modele = array();
    
    $marque[0] = "Renault";
    $marque[1] = "Peugeot";
    $marque[2] = "Citroen";
    
    $modele[0][0] = "Scenic";
    $modele[0][1] = "Laguna";
    $modele[0][2] = "Velsatis";
    $modele[1][3] = "407";
    $modele[1][4] = "607";
    $modele[2][5] = "Xsara";
    $modele[2][6] = "Picasso";
    $modele[2][7] = "C5";
    
    
    $select  = new HTML_QuickForm_hierselect('ma_voiture');
    $select->setOptions(Array($marque,$modele));
    echo $select->toHTML();
    
    On remarque que il y a souvent beaucoups de paramètres. A mon sens, l'idéal serait de faire une petite librairie de fonction qui font appel à PEAR et renvoient directement le résultat.

    @+ pour de nouvelles aventures !!
    guslinux, 17 Mars 2007
    #1
  2. Offline
    Ezekiel ! Elite
    Tu peux montrer un exemple online ?
    Je suis en train de faire une classe PHP qui utilisent pas mal AJAX pour générer des forms :p Ca pourrait m'être vachement utile =]
    Ezekiel !, 17 Mars 2007
    #2
  3. Offline
    guslinux Gamerz'ien
    guslinux, 17 Mars 2007
    #3
  4. Offline
    Ezekiel ! Elite
    Ca a moins de gueule que ma classe perso :p Fin bon les gouts et les couleurs :p.
    En plus j'ai bcp moins de code :
    Code:
    	$form = new Formulaire(1);
    	$form->ouvreFieldset('Test Formulaire');
    		$form->ajouteInput('test', 'Test', 'text', 'Post', true);
    		$form->ajouteInput('test2', 'Test', 'text', 'Post', true, 'Email');
    		$form->ajouteInput('test3', 'Test', 'text', 'Post', true, 'Az09');
    		$form->ajouteInput('test4', 'Test', 'text', 'Post', true, 'Lettre');
    		$form->ajouteInput('test5', 'Test', 'text', 'Post', true, 'Entier');
    		$form->ajouteInput('test6', 'Test', 'text', 'Post', true, 'Flottant');
    		$form->ajouteInput('test7', 'Test', 'text', 'Post', true);
    		$form->ajouteInput('test8', 'Test', 'text', 'Post', false);
    		$form->ajouteInput('test9', 'Test', 'text', 'Post', false);
    		$form->tableauInfo['test']['completion'] = true;
    		$form->ajouteSelect('lol', 'Test', array ('lol' => 'Test', '<<debutOptgroup1>>' => 'Titre', 'lol3' => 'fsdfs', 'lolgdfg' => 'fsdfsd','<<finOptgroup1>>' => 'Titre'));
    	$form->fermeFieldset();
    	echo $form->verifForm();
    	echo $form;
    	
    	$form = new Formulaire(1);
    	$form->ouvreFieldset('Test');
    	$form->ajouteInput('test', 'Test', 'text');
    	$form->fermeFieldset();
    	echo $form->verifForm();
    	echo $form;
    Le "true" siginifie que le champ est nécessaire & le 'Post' signifie que la valeur $_POST sera la valeur par défaut.
    Je suis sur que ça donnera des idées à des webmasters tout ça :)
    Ezekiel !, 18 Mars 2007
    #4
  5. Offline
    guslinux Gamerz'ien
    Pas mal :)
    La seule chose c'est que dans mes programmes j'ai des formulaires sur deux colonnes et avec une mise en page plus complexe...
    guslinux, 18 Mars 2007
    #5
  6. Offline
    Ezekiel ! Elite
    C'est le gros point faible de ma classe...
    Le changement de mise en page est assez galère à effectuer.
    Je devrais utiliser des templates mais je suis assez novice en la matière :dead:
    Ezekiel !, 18 Mars 2007
    #6
  7. Offline
    guslinux Gamerz'ien
    Lis mon post sur la mise en cache ... ca donne un très bon résultat et de manière hyper simple !

    Exemple de template : http://devel.edoplan.be/PHP5/NewTemplate/edit.phps (Fais voir la source)
    Dans mon module de routage je fais l'inclusion du script de contrôle (Controler) et ensuite l'inclusion de ce template (View).
    guslinux, 19 Mars 2007
    #7
Statut de la discussion:
Fermée.