// }}}
// {{{ class SField [Base class]
-/** classe de base représentant un champ de recherche
- * (correspond à un champ du formulaire mais peut être à plusieurs champs de la bdd)
- * interface étendue pour chaque type de champ particulier
+/** classe de base représentant un champ de recherche
+ * (correspond à un champ du formulaire mais peut être à plusieurs champs de la bdd)
+ * interface étendue pour chaque type de champ particulier
*/
class SField
{
/** le nom du champ dans le formulaire HTML */
var $fieldFormName;
- /** champs de la bdd correspondant à ce champ sous forme d'un tableau */
+ /** champs de la bdd correspondant à ce champ sous forme d'un tableau */
var $fieldDbName;
- /** champ résultat dans la requête MySQL correspondant à ce champ
- * (alias utilisé pour la clause ORDER BY) */
+ /** champ résultat dans la requête MySQL correspondant à ce champ
+ * (alias utilisé pour la clause ORDER BY) */
var $fieldResultName;
- /** valeur du champ instanciée par l'utilisateur */
+ /** valeur du champ instanciée par l'utilisateur */
var $value;
// }}}
// {{{ constructor
/** constructeur
- * (récupère la requête de l'utilisateur pour ce champ) */
+ * (récupère la requête de l'utilisateur pour ce champ) */
function SField($_fieldFormName, $_fieldDbName='', $_fieldResultName='')
{
$this->fieldFormName = $_fieldFormName;
// }}}
// {{{ function get_request()
- /** récupérer la requête de l'utilisateur
- * on met une chaîne vide si le champ n'a pas été complété */
+ /** récupérer la requête de l'utilisateur
+ * on met une chaîne vide si le champ n'a pas été complété */
function get_request()
{
$this->value = trim(Env::v($this->fieldFormName));
// }}}
// {{{ function get_where_statement()
- /** récupérer la clause correspondant au champ dans la clause WHERE de la requête
+ /** récupérer la clause correspondant au champ dans la clause WHERE de la requête
* on parcourt l'ensemble des champs de la bdd de $fieldDbName et on associe
- * à chacun d'entre eux une clause spécifique
- * la clause totale et la disjonction de ces clauses spécifiques */
+ * à chacun d'entre eux une clause spécifique
+ * la clause totale et la disjonction de ces clauses spécifiques */
function get_where_statement()
{
if ($this->value=='') {
// }}}
// {{{ function get_order_statement()
- /** récupérer la clause correspondant au champ dans la clause ORDER BY de la requête
- * utilisé par exemple pour placer d'abord le nom égal à la requête avant les approximations */
+ /** récupérer la clause correspondant au champ dans la clause ORDER BY de la requête
+ * utilisé par exemple pour placer d'abord le nom égal à la requête avant les approximations */
function get_order_statement()
{
return false;
// }}}
// {{{ function get_url()
- /** récupérer le bout d'URL correspondant aux paramètres permettant d'imiter une requête d'un
- * utilisateur assignant la valeur $this->value à ce champ */
+ /** récupérer le bout d'URL correspondant aux paramètres permettant d'imiter une requête d'un
+ * utilisateur assignant la valeur $this->value à ce champ */
function get_url()
{
if (empty($this->value)) {
{
$this->fieldFormName = $_fieldFormName;
$this->get_request();
- if (preg_match(":[\]\[{}~/§_`|%$^=+]|\*\*:", $this->value)) {
- new ThrowError('Un champ contient un caractère interdit rendant la recherche impossible.');
+ if (preg_match(":[\]\[{}~/§_`|%$^=+]|\*\*:", $this->value)) {
+ new ThrowError('Un champ contient un caractère interdit rendant la recherche impossible.');
}
}
// }}}
// {{{ class NumericSField [Integer fields]
-/** classe de champ numérique entier (offset par exemple)
+/** classe de champ numérique entier (offset par exemple)
*/
class NumericSField extends SField
{
// {{{ constructor
/** constructeur
- * (récupère la requête de l'utilisateur pour ce champ) */
+ * (récupère la requête de l'utilisateur pour ce champ) */
function NumericSField($_fieldFormName)
{
$this->fieldFormName = $_fieldFormName;
// }}}
// {{{ function get_request()
- /** récupère la requête de l'utilisateur et échoue s'il ne s'agit pas d'un entier */
+ /** récupère la requête de l'utilisateur et échoue s'il ne s'agit pas d'un entier */
function get_request()
{
parent::get_request();
$this->value = 0;
}
if (!preg_match("/^[0-9]+$/", $this->value)) {
- new ThrowError('Un champ numérique contient des caractères alphanumériques.');
+ new ThrowError('Un champ numérique contient des caractères alphanumériques.');
}
}
{
// {{{ function get_request()
- /** récupère la requête de l'utilisateur et échoue si la chaîne contient des caractères
+ /** récupère la requête de l'utilisateur et échoue si la chaîne contient des caractères
* interdits */
function get_request()
{
parent::get_request();
- if (preg_match(":[\]\[<>{}~/§_`|%$^=+]|\*\*:", $this->value)) {
- new ThrowError('Un champ contient un caractère interdit rendant la recherche impossible.');
+ if (preg_match(":[\]\[<>{}~/§_`|%$^=+]|\*\*:", $this->value)) {
+ new ThrowError('Un champ contient un caractère interdit rendant la recherche impossible.');
}
}
// }}}
// {{{ function length()
- /** donne la longueur de la requête de l'utilisateur
- * (au sens strict i.e. pas d'* ni d'espace ou de trait d'union -> les contraintes réellement
- * imposées par l'utilisateur) */
+ /** donne la longueur de la requête de l'utilisateur
+ * (au sens strict i.e. pas d'* ni d'espace ou de trait d'union -> les contraintes réellement
+ * imposées par l'utilisateur) */
function length()
{
global $lc_accent,$uc_accent;
// }}}
// {{{ function get_single_where_statement()
- /** clause WHERE correspondant à un champ de la bdd et à ce champ de formulaire
- * @param field nom de champ de la bdd concerné par la clause */
+ /** clause WHERE correspondant à un champ de la bdd et à ce champ de formulaire
+ * @param field nom de champ de la bdd concerné par la clause */
function get_single_where_statement($field)
{
$regexp = strtr(addslashes($this->value), '-*', '_%');
// }}}
// {{{ function get_order_statement()
- /** clause ORDER BY correspondant à ce champ de formulaire */
+ /** clause ORDER BY correspondant à ce champ de formulaire */
function get_order_statement()
{
if ($this->value!='' && $this->fieldResultName!='') {
{
// {{{ function get_single_where_statement()
- /** clause WHERE correspondant à un champ de la bdd et à ce champ de formulaire
- * @param field nom de champ de la bdd concerné par la clause */
+ /** clause WHERE correspondant à un champ de la bdd et à ce champ de formulaire
+ * @param field nom de champ de la bdd concerné par la clause */
function get_single_where_statement($field) {
return $field.'="'.soundex_fr($this->value).'"';
}
{
// {{{ properties
- /** opérateur de comparaison (<,>,=) de la promo utilisé pour ce champ de formulaire */
+ /** opérateur de comparaison (<,>,=) de la promo utilisé pour ce champ de formulaire */
var $compareField;
// }}}
// {{{ constructor
/** constructeur
- * compareField est un champ de formulaire très simple qui ne sert qu'à la construction de la
+ * compareField est un champ de formulaire très simple qui ne sert qu'à la construction de la
* clause WHERE de la promo */
function PromoSField($_fieldFormName, $_compareFieldFormName, $_fieldDbName, $_fieldResultName)
{
// }}}
// {{{ function get_request()
- /** récupère la requête utilisateur et échoue si le champ du formulaire ne représente pas une
- * promotion (nombre à 4 chiffres) */
+ /** récupère la requête utilisateur et échoue si le champ du formulaire ne représente pas une
+ * promotion (nombre à 4 chiffres) */
function get_request()
{
parent::get_request();
$this->value = intval($this->value) + 1900;
}
if (!(empty($this->value) or preg_match('/^[0-9]{4}$/', $this->value))) {
- new ThrowError('La promotion est une année à quatre chiffres.');
+ new ThrowError('La promotion est une année à quatre chiffres.');
}
}
// }}}
// {{{ function is_a_single_promo()
- /** teste si la requête est de la forme =promotion -> contrainte forte imposée -> elle suffit
- * pour autoriser un affichage des résultats alors que <promotion est insuffisant */
+ /** teste si la requête est de la forme =promotion -> contrainte forte imposée -> elle suffit
+ * pour autoriser un affichage des résultats alors que <promotion est insuffisant */
function is_a_single_promo()
{
return ($this->compareField->value=='=' && $this->value!='');
// }}}
// {{{ function get_single_where_statement()
- /** clause WHERE correspondant à ce champ */
+ /** clause WHERE correspondant à ce champ */
function get_single_where_statement($field)
{
return $field.$this->compareField->value.$this->value;
// }}}
// {{{ function get_url()
- /** récupérer le bout d'URL correspondant aux paramètres permettant d'imiter une requête
- * d'un utilisateur assignant la valeur $this->value à ce champ et assignant l'opérateur de
- * comparaison adéquat */
+ /** récupérer le bout d'URL correspondant aux paramètres permettant d'imiter une requête
+ * d'un utilisateur assignant la valeur $this->value à ce champ et assignant l'opérateur de
+ * comparaison adéquat */
function get_url()
{
if (!($u=parent::get_url())) {
{
// {{{ properties
- /** tableau des classes correspondant aux champs groupés */
+ /** tableau des classes correspondant aux champs groupés */
var $fields;
/** type de groupe : ET ou OU */
var $and;
// }}}
// {{{ function field_get_where()
- /** récupérer la clause WHERE d'un objet champ de recherche */
+ /** récupérer la clause WHERE d'un objet champ de recherche */
function field_get_where($f)
{
return $f->get_where_statement();
// }}}
// {{{ function field_get_order()
- /** récupérer la clause ORDER BY d'un objet champ de recherche */
+ /** récupérer la clause ORDER BY d'un objet champ de recherche */
function field_get_order($f)
{
return $f->get_order_statement();
// }}}
// {{{ function field_get_url()
- /** récupérer le bout d'URL correspondant à un objet champ de recherche */
+ /** récupérer le bout d'URL correspondant à un objet champ de recherche */
function field_get_url($f)
{
return $f->get_url();
// }}}
// {{{ function get_where_statement()
- /** récupérer la clause WHERE du groupe de champs = conjonction (ET) ou disjonction (OU) de
- * clauses des champs élémentaires */
+ /** récupérer la clause WHERE du groupe de champs = conjonction (ET) ou disjonction (OU) de
+ * clauses des champs élémentaires */
function get_where_statement()
{
$joinText = $this->and ? ' AND ' : ' OR ';
// }}}
// {{{ function get_order_statement()
- /** récupérer la clause ORDER BY du groupe de champs = conjonction (ET) ou disjonction (OU) de
- * clauses des champs élémentaires */
+ /** récupérer la clause ORDER BY du groupe de champs = conjonction (ET) ou disjonction (OU) de
+ * clauses des champs élémentaires */
function get_order_statement()
{
$order = array_filter(array_map(array($this, 'field_get_order'), $this->fields));
// }}}
// {{{ function get_url()
- /** récupérer le bout d'URL correspondant à ce groupe de champs = concaténation des bouts d'URL
- * des champs élémentaires */
+ /** récupérer le bout d'URL correspondant à ce groupe de champs = concaténation des bouts d'URL
+ * des champs élémentaires */
function get_url($others=Array())
{
$url = array_filter(array_map(array($this, 'field_get_url'), $this->fields));
// }}}
-// vim:set et sw=4 sts=4 sws=4 foldmethod=marker:
+// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
?>