logo

NPDS : Gestion de contenu et de communauté


Content & Community Management System (CCMS) robuste, sécurisé, complet, performant, parlant vraiment français, libre (Open-Source) et gratuit.
41 visiteur(s) et 0 membre(s) en ligne.
Activité du Site

Pages vues depuis 25/05/2001 : 109 370 849

  • Nb. de membres 8 695
  • Nb. d'articles 1 695
  • Nb. de forums 26
  • Nb. de sujets 8
  • Nb. de critiques 92

Top 10  Statistiques

Index du forum »»  SFORM »» SForm et date

Modérateur(s)developpeurjpbJireck

Poster une réponse dans le sujet

A propos des messages publiés :
Les utilisateurs anonymes peuvent poster de nouveaux sujets et des réponses dans ce forum.

 

Aperçu des sujets :

developpeur developpeur
Posté : 27 févr. 2003 à 20:32
bien cooool !
Pascal Pascal
Posté : 27 févr. 2003 à 18:57
Voila ça roule, je t'envoie sform par email c'est mieux

Une date en timestamp -> champ hidden
nom,intitulé, valeur rien pour date du jour ou timestamp,type stamp
// Date timestamp
$m->add_date("date","","",'stamp');

Une date pour champ de formulaire
nom, intitulé,valeur idem stamp,type date,obli ou nom
La date est tjrs controlee
// Date au format JJ/MM/YYYY type date
$m->add_date("date","Date","",'date',true);
developpeur developpeur
Posté : 27 févr. 2003 à 18:02
c'est pour : <TIMESTAMP> => qui est automatique et HIDDEN alors que <DATE> serait un champ d'un formulaire.

Le stockage est idem mais ni la représentation XML ni la mécanique du formulaire

Enfin c'est un avis
Pascal Pascal
Posté : 27 févr. 2003 à 17:50
C'est vrai que pour moi c'est plus pratique de travailler avec des timestamp dans les champs date de la base entre autre, que de vulgaires dates toutes moches, je jete un oeil.

Mais quand tu dis les deux la j'vois pas.
C'est stockage interne en timestamp affichage en clair


[ Message édité par : Pascal : 27-02-2003 17:57 ]
developpeur developpeur
Posté : 27 févr. 2003 à 17:46
voui mais le TimeStamp ? on pourrait avoir les 2
Pascal Pascal
Posté : 27 févr. 2003 à 15:54
Bon...
Enlevé la fonction add_date, on se sert de add_field :

function add_field($name,$en, $value='', $type='text', $obligation=false, $size='50', $diviseur='5', $ctrl='') {
if ($type=="submit") {$name=$this->submit_value;}
if ($type=="date") {$size=10; $ctrl='date';}

$this->form_fields[count($this->form_fields)]=array(
'name'=>$name,
'type'=>$type,
'en'=>$en,
'value'=>$value,
'size'=>$size,
'diviseur'=>$diviseur,
'obligation'=>$obligation,
'ctrl'=>$ctrl
);
}

Dans print_form rajoute :

case 'date':
$str.="<tr class=\"text\"><td class=\"text\">".$this->form_fields[$i]['en'];
$style = "text";
// Si la date initial est nulle on en crée une à la date du jour
if ($this->form_fields[$i]['value']=="") $this->form_fields[$i]['value']=date("d/m/Y");
// Si key_close, pas la peine de dire que c'est un champs obligatoire
if($this->form_fields[$i]['obligation'] && $this->form_key_status!="close"){
$this->form_check.=" && (f.elements['".$this->form_fields[$i]['name']."'].value!='')";
$style = "oblig";
$str.=" <font color=red>*</font><td>";
} else $str.="<td>";

// Charge la valeur et analyse la clef
if ($this->form_fields[$i]['name']==$this->form_key) {
$this->form_key_value=$this->form_fields[$i]['value'];
if ($this->form_key_status=="close") {
$str.="<input type=hidden name='".$this->form_fields[$i]['name']."' value='".$this->form_fields[$i]['value']."'>";
$str.="<b>".$this->form_fields[$i]['value']."</b>";
} else {
$str.="<input class=$style type=".$this->form_fields[$i]['type']." name='".$this->form_fields[$i]['name']."' value='".$this->form_fields[$i]['value']."' size=".($this->form_fields[$i]['size']+1)." maxlength=".$this->form_fields[$i]['size'].">";
}
} else {
$str.="<input class=$style type=".$this->form_fields[$i]['type']." name='".$this->form_fields[$i]['name']."' value='".$this->form_fields[$i]['value']."' size=".($this->form_fields[$i]['size']+1)." maxlength=".$this->form_fields[$i]['size'].">";
}
break;

Dans make_response :

case 'date':
if ($this->form_fields[$i]['ctrl']!="") {
$this->control($this->form_fields[$i]['name'],$this->form_fields[$i]['en'],$GLOBALS[$this->form_fields[$i]['name']],$this->form_fields[$i]['ctrl']);
}
// Charge la valeur de la clef puisqu'on peut indexer sur la date pourquoi pas
if ($this->form_fields[$i]['name']==$this->form_key) {
$this->form_key_value=$GLOBALS[$this->form_fields[$i]['name']];
}
$this->answer[$i].="<DATE>\n";
$this->answer[$i].="<".$this->form_fields[$i]['name'].">".$GLOBALS[$this->form_fields[$i]['name']]."</".$this->form_fields[$i]['name'].">\n";
$this->answer[$i].="</DATE>";
break;

Aff_response (pas de changement) :

case 'date':
$str.="<tr bgcolor=$bg><td>".$this->form_fields[$i]['en'];
$str.="<td>";
$str.="<b>".$GLOBALS[$this->form_fields[$i]['name']]." </b>";
break;

Dans control :

case 'date':
// Date en tableau
$date = explode("/",$valeur);
if (!checkdate($date[1],$date[0],$date[2])) {
$this->error($nom,"Date non valide");
exit ();
}
break;

Je crois que c'est mieux que le premier


[ Message édité par : Pascal : 27-02-2003 15:54 ]
Pascal Pascal
Posté : 27 févr. 2003 à 12:10
Je regarde.. que je puisse combiner mes besoins avec :)
Je resume saisie et gestion d'un champ date format dd/mm/yyyy ca ira ?
developpeur developpeur
Posté : 27 févr. 2003 à 11:56
je pensais remplacer par et a l'intégration d'un vrai champ date (en reprenant le code de plannification des news par exemple), ce qui permettrais vraimment d'étendre les fonctions de SFORM
Pascal Pascal
Posté : 27 févr. 2003 à 11:41
Effectivement ça crée un champs caché avec le timestamp au moment où le formulaire est affiché à l'écran.

Si ta question est est-ce un champ où l'on peut saisir une date, pour l'instant non, mais je pourrais regarder ça.
developpeur developpeur
Posté : 27 févr. 2003 à 11:32
on est d'accord que c'est plus un timestamp qu'une date ?