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

Statut
N'est pas ouverte pour d'autres réponses.

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 !!
 

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 ^^ Ca pourrait m'être vachement utile =]
 
1er
OP
guslinux

guslinux

Gamerz'ien

Ezekiel !

Elite
Ca a moins de gueule que ma classe perso :p Fin bon les gouts et les couleurs ^^.
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 :)
 
1er
OP
guslinux

guslinux

Gamerz'ien
Ez3kieL a dit:
Ca a moins de gueule que ma classe perso :p Fin bon les gouts et les couleurs ^^.
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 :)
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...
 

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:
 
1er
OP
guslinux

guslinux

Gamerz'ien
Ez3kieL a dit:
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:
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).
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut