\table

Définition de la classe 'table'.

Cette classe permet de 'tabler' les champs suivant une requete.

Summary

Methods
Properties
Constants
__destruct()
__construct()
setParams()
getParam()
setParam()
getKeyForColumnName()
composeURL()
countActions()
saveActionsNumber()
saveUserActions()
getColumnsName()
display()
displayHeader()
composeSearchTab()
displaySearch()
displayPagination()
composeChamp()
composeTri()
composeSearchValue()
normalizeSearchValue()
normalizeFieldValue()
composeSimpleSearch()
composeAdvancedSearch()
composeQuery()
createSQLW()
isAdvancedSearchEnabled()
composeExportUrl()
serialize_criterions()
unserialize_criterions()
displayGlobalContainerStart()
displayGlobalContainerEnd()
displayTableContainerStart()
displayTableContainerEnd()
displayTableHeadLineStart()
displayTableHeadLineEnd()
displayToolbarContainerStart()
displayToolbarContainerEnd()
displayTableStart()
displaySearchContainerStart()
displaySearchContainerEnd()
$db
$aff
$table
$serie
$champAffiche
$champRecherche
$tri
$selection
$sql
$sqlC
$options
$_etatRechercheAv
$dbChampRechercheAv
$htmlChampRechercheAv
$paramChampRechercheAv
$_rechercheAvanceeFaite
$absolute_object
$wildcard
$advs_default_form
$_advs_id
$_om_validite
$actions
$actions_order_c
$actions_order_l
$actions_number_c
$actions_number_l
$max_actions_number
$export
$_global_actions
No constants found
init_om_application()
addToLog()
add_aggregate_filters()
_del_substr()
getPostedChampRechercheAv()
displayAdvancedSearch()
initHtmlChampRechercheAv()
add_action_to_global_actions()
process_global_action_validity()
process_global_action_edition()
process_global_action_export()
display_global_actions()
$f
N/A
gen_advs_id()
No private properties found
N/A

Properties

$db

$db :null|\database

Instance de connexion à la base de données.

Type

null|\database

$aff

$aff :string

Nom de l'objet metier

Type

string

$table

$table :string

Critere from de la requete

Type

string

$serie

$serie :integer

Nombre d'enregistrement(s) par page

Type

integer

$champAffiche

$champAffiche :array

Tableau des champs a afficher

Type

array

$champRecherche

$champRecherche :array

Tableau des champs sur lesquels la recherche est effectuee

Type

array

$tri

$tri :string

Critere de tri de la requete

Type

string

$selection

$selection :string

Clause de selection dans la requete

Type

string

$sql

$sql :string

Requete

Type

string

$sqlC

$sqlC :string

Requete qui compte le nombre d'enregistrement

Type

string

$options

$options :array

Liste des options

Type

array

$_etatRechercheAv

$_etatRechercheAv :boolean

Etat de la recherche avancee : true -> activee, false -> desactivee

Activer la recherche avancee

Pour activer la recherche avancee sur un objet particulier, rendez-vous dans le fichier sql/[...]/objet.inc.php de l'objet et ajoutez le tableau suivant aux tableaux d'options:

EX: $options[] = (1) array('type' => 'search', (2) 'display' => true, (3) 'advanced' => $champs, (4) 'default_form' => 'advanced', (5) 'absolute_object' => 'om_utilisateur');

(1) 'type' : OBLIGATOIRE Permet de definir le type de l'option. Pour une recherche il faut saisir 'search'.

(2) 'display' : OBLIGATOIRE Permet d'afficher ou non la recherche, tout en conservant sa configuration Supporte les valeurs 'true' et 'false'.

(3) 'advanced' : OBLIGATOIRE Permet de preciser que le formulaire de recherche est un formulaire de recherche avancee. Cette cle doit contenir le tableau des champs configures pour la recherche (voir plus bas pour la configuration).

(4) 'default_form' : optionnel Permet de choisir quel formulaire de recherche est ouvert par defaut. La valeur 'advanced' permet d'afficher le formulaire de recherche multi-criteres. Les autres valeurs ou si 'default_form' n'est pas configure, affichent le formulaire de recherche mono-critere.

(5) 'absolute_object' : OBLIGATOIRE Permet de specifier le nom de la table en base de donnees de l'objet recherche.

Type

boolean

$dbChampRechercheAv

$dbChampRechercheAv :array

Liste des champs configures pour le formulaire de recherche avancee.

Cette liste sera initialisee seulement si la recherche avancee est activee.

Type

array

$htmlChampRechercheAv

$htmlChampRechercheAv :array

Liste des attributs 'name' des champs HTML composant le formulaire de recherche avancee.

Ces valeurs sont les cles du tableau $_POST contenant les valeurs a rechercher.

Cette liste sera initialisee seulement si la recherche avancee est activee.

Type

array

$paramChampRechercheAv

$paramChampRechercheAv :array

Tableau de parametres permettant de construire le formulaire de recherche avancee et d'interroger les bonnes tables et colonnes de la base de donnees.

Les cles de ce tableau sont les noms des champs du formulaire de recherche.

Les valeurs sont des tableaux associatif contenant la configuration du champ a savoir : la colonne et la table dans laquel s'effectuera la recherche de sa valeur, son type, sa taille, etc.

I - Configuration simple

EX: array('dentifiant_utilisateur' (1) =>

         (2)    array('colonne' => 'om_utilisateur',
         (3)          'table'   => 'om_utilisateur',
         (4)          'type'    => 'text',
         (5)          'libelle' => _('Identifiant'),
         (6)          'taille'  => 10,
         (7)          'max'     => 8));

(1) 'identifiant_utilisateur' : OBLIGATOIRE Nom unique du champ HTML (attribut name du champ).

(2) 'colonne' : OBLIGATOIRE Nom de la colonne de la base de donnees qui sera interrogee si $_POST contient la cle 'identifiant_utilisateur'.

(3) 'table' : OBLIGATOIRE Nom de la table de la base de donnees qui sera interrogee si $_POST contient la cle 'identifiant_utilisateur'.

(4) 'type' : OBLIGATOIRE Type du champ HTML a afficher. Cela peut-etre date, text, select, ou tout autre type supporte par la classe formulaire. Pour les champs de type select, le nom du champ HTML (1) doit etre le meme que le nom de la colonne (2). A corriger.

(5) 'libelle' : OBLIGATOIRE Le label qui sera affiche a cote du champ dans le formulaire de recherche.

(6) 'taille' : optionnel La taille du champ HTML (attribut size).

(7) 'max' : optionnel La longueur maximale de la valeur du champ (attribut maxlength).

II - Configuration avancee

1) - Creer un intervalle de date

EX: Recherche des utilisateurs crees entre telle et telle date

 $champs['date_de_creation'] =

         array('colonne' => 'creation_date',
               'table'   => 'user',
               'libelle' => _('Date de creation'),
               'type'    => 'date',
               'where'   => 'intervaldate');

Cette configuration permet de creer deux champs HTML datepicker:

  • date_de_creation_min : permet de saisir une date minimale
  • date_de_creation_max : permet de saisir une date maximale

    Ces champs permettent de rechercher les uilisateurs dont la date de de creations est incluse dans l'intervalle saisi, bornes comprises. Il est possible de ne saisir qu'une seule date afin de rechercher les utilisateurs ayant ete crees avant ou apres une date particuliere.

2) - Creer un champ de recherche avec menu deroulant personnalise

EX: Recherche des utilisateurs administrateurs

L'information se trouve directement dans la table utilisateur.

 $champs['administrator'] =

         array('colonne'   => 'is_admin',
               'table'     => 'user',
               'libelle'   => _('Administrateur'),
               'type'      => 'select',
               'subtype'   => 'manualselect',
               'args'      => $args);

 $args[0] = array('', 'true', 'false');
 $args[1] = array(_('Tous'), _('Oui'), _('Non'));

Cette configuration permet de creer un champ HTML de type select avec trois choix:

  • Tous (valeur '')
  • Oui (valeur 'true')
  • Non (valeur 'false')

    Le tableau $args[0] contient les valeurs associes aux choix. Elles seront recherchees telles quelles dans la base de donnees.

    En selectionnant 'Oui', la requete sera construite comme suit:

    WHERE user.is_admin::varchar like 'true'

    Il est possible de saisir n'importe quelle chaine de caracteres dans $args[0] et pas seulement des valeurs booleenes.

    Attention cette recherche n'est pas sensible a la casse. Plusieurs fonction de formatage sont appelees sur 'user.is_admin' avant de tester l'egalite.

3) - Tester si une donnee est presente ou non dans un groupe de donnee

EX: Recherche des utilisateurs administrateurs

L'information se trouve non pas dans la table utilisateur mais dans la table administrateur disposant d'une colonne user_id (cle etrangere). Il faut utiliser une sous-requete pour recuperer l'ensemble des identifiants de le table administrateur afin de tester si un identifiant utilisateur est present dans cette liste.

 $champs['administrator'] =

         array('colonne'  => 'id',
               'table'    => 'user',
               'libelle'  => _('Type d'utilisateur'),
               'type'     => 'select',
               'subtype'  => 'manualselect',
               'where'    => 'insubquery',
               'args'     => $args,
               'subquery' => $subquery);

 $args[0] = array('', 'true', 'false');
 $args[1] = array(_('Tous'),
                  _('Administrateurs'),
                  _('Utilisateurs simples'));

 $subquery = 'SELECT user_id FROM admin';

Cette configuration permet de creer un champ HTML de type select avec trois choix:

  • Tous (valeur '')
  • Administrateurs (valeur 'true')
  • Utilisateurs simples (valeur 'false')

    Le tableau $args[0] contient les valeurs associes aux choix. La valeur 'true' indique que les identifiants des utilisateurs doivent se trouver dans la sous-requete, la valeur 'false' indique qu'ils ne doivent pas se trouver dans la sous-requete. Contrairement a l'exemple 2, elles ne seront pas recherchees telles quelles dans la base de donnees et ne doivent surtout pas etre modifiees.

    En selectionnant 'Administrateurs', la requete sera construite comme suit:

    WHERE user.id IN (SELECT user_id FROM admin)

Type

array

$_rechercheAvanceeFaite

$_rechercheAvanceeFaite :boolean

Permet de savoir si une recherche avancee a ete effectuee.

Ce parametre est false:

  • par defaut
  • lorsque la recherche avancee n'est pas activee
  • lorsque la recherche avancee est activee et que les champs soumis par le formulaire de rechreche avancee sont tous vide

Type

boolean

$absolute_object

$absolute_object :string

Nom de la classe métier pour la recherche avancée.

Type

string

$wildcard

$wildcard :array

Configuration du wildcard des recherches.

Type

array

$advs_default_form

$advs_default_form :string

Permet de definir quel formulaire de recherche avancee est ouvert par defaut

'simple' -> mono-critere 'avanced' -> multi-critere

Dans tous les autres cas, la recherche mono-critere est affichee

Type

string

$_advs_id

$_advs_id :

Attribut contenant un identifiant unique de recherche avancee

Type

$_om_validite

$_om_validite :boolean

Permet de savoir si le tableau actuel est un tableau d'objets a date de validite.

Type

boolean

$actions

$actions :

Liste des actions accessible par l'utilisateurs.

Type

$actions_order_c

$actions_order_c :

Ordre des actions en coin.

Type

$actions_order_l

$actions_order_l :

Ordre des actions de gauche.

Type

$actions_number_c

$actions_number_c :

Nombre d'actions affichables en coin.

Type

$actions_number_l

$actions_number_l :

Nombre d'actions affichables a gauche.

Type

$max_actions_number

$max_actions_number :

Nombre maximum d'actions affichees.

Type

$export

$export :

Tableau des type d'export possible pour le resultat de la recherche avancee

Type

$_global_actions

$_global_actions :array

Liste des actions globales.

Type

array

$f

$f :null|\application

Instance de la classe 'application'.

Type

null|\application

Methods

__destruct()

__destruct()

Destructeur.

__construct()

__construct(string  $aff,string  $table,integer  $serie,array  $champAffiche,array  $champRecherche,string  $tri,string  $selection,string  $edition = "",array  $options = array(),null|string  $advs_id = null,boolean  $om_validite = false): void

Constructeur.

Cette methode permet d'affecter tous les parametres aux attributs de la classe auxquels ils correspondent

Parameters

string $aff

Nom de l'objet metier

string $table

Critere from de la requete

integer $serie

Nombre d'enregistrement(s) par page

array $champAffiche

Tableau des champs a afficher

array $champRecherche

Tableau des champs sur lesquels la recherche est effectuee

string $tri

Critere de tri de la requete

string $selection

Clause de selection dans la requete

string $edition

Lien vers edition pdf

array $options
null|string $advs_id
boolean $om_validite

setParams()

setParams(array  $params = array()): void

Mutateur pour la propriété 'params'.

Parameters

array $params

getParam()

getParam(null|string  $param = NULL): string

Accesseur pour la propriété 'params'.

Parameters

null|string $param

Returns

string

setParam()

setParam(null|string  $param = null,null|string  $value = null): void

Mutateur pour la propriété 'params'.

Parameters

null|string $param
null|string $value

getKeyForColumnName()

getKeyForColumnName(string  $columnname = ""): string

Retourne la clé numérique correspondante au nom de colonne ou au label dans la propriété 'champAffiche'.

Parameters

string $columnname

Nom de colonne ou label.

Returns

string

composeURL()

composeURL(array  $params = array()): string

Compose une URL.

Le principe est d'utiliser la propriété 'params' pour tous les paramètres de l'URL sauf si ils ont une valeur dans le paramètre passé.

Parameters

array $params

Tableau de valeurs à surcharger.

Returns

string

countActions()

countActions(array  $actions): integer

Retourne le nombre d'actions affichables pour une liste donnee.

Parameters

array $actions

Tableau d'actions.

Returns

integer

saveActionsNumber()

saveActionsNumber(): void

Compte le nombre d'actions affichables: - en coin - a gauche

Une action affichable est une action ayant un lien non vide et != '#'.

saveUserActions()

saveUserActions(mixed  $actions)

Initialise le tableau $this->actions avec un tableau donne.

$this->actions est le tableau des actions que l'utilisateur a le droit d'effectuer.

Parameters

mixed $actions

liste des actions

getColumnsName()

getColumnsName(resource  $resource = null): array

Retourne la liste des colonnes de la ressource de base de données (résultat de requête) passée en paramètre.

Parameters

resource $resource

Ressource de base de données (résultat de requête).

Returns

array

display()

display(array  $params = array(),array  $actions = array(),mixed  $db = NULL,string  $class = "tab",boolean  $onglet = false): void

Affichage principal.

Parameters

array $params
array $actions
mixed $db
string $class

Prefixe de la classe CSS a utiliser

boolean $onglet

displayHeader()

displayHeader(array  $info,string  $class = "tab",boolean  $onglet = false): void

Calcule et affiche la ligne d'entête du tableau.

Parameters

array $info
string $class

Prefixe de la classe CSS a utiliser

boolean $onglet

composeSearchTab()

composeSearchTab(): void

Gestion de la recherche.

displaySearch()

displaySearch(string  $style = "tab"): void

Methode permettant l'affichage de la recherche

Cette methode permet d'afficher le formulaire de recherche

Parameters

string $style

Prefixe de la classe CSS a utiliser

displayPagination()

displayPagination(integer  $nbligne,string  $style = "tab",boolean  $onglet = false): void

Calcule et affiche le bloc de pagination.

Parameters

integer $nbligne
string $style

Prefixe de la classe CSS a utiliser

boolean $onglet

composeChamp()

composeChamp(): string

Méthode de composition de la liste des champs du SELECT

Returns

string

composeTri()

composeTri(): string

Méthode de composition du tri

Returns

string

composeSearchValue()

composeSearchValue(string  $value): string

Méthode permettant de retraiter la chaîne recherchée en intégrant les valeurs multiples séparées par une ',' ainsi que l'échappement des caractères interdits

Parameters

string $value

Chaîne recherchée.

Returns

string

normalizeSearchValue()

normalizeSearchValue(string  $value): string

Méthode permettant de faire les traitements d'échappements et de normalisation sur une chaîne destinée à la recherche

Parameters

string $value

Chaîne recherchée à normaliser.

Returns

string

normalizeFieldValue()

normalizeFieldValue(string  $searchField): string

Méthode permettant de normaliser les valeurs des champs de recherche en vue de les comparer aux valeurs recherchées

Parameters

string $searchField

Champ de recherche à normaliser.

Returns

string

composeSimpleSearch()

composeSimpleSearch(string  $champ,string  $tri): void

Composition et stockage de la requête dans le cas d'une recherche simple.

Parameters

string $champ

Critère SELECT de la requête.

string $tri

Critère TRI de la requête.

composeAdvancedSearch()

composeAdvancedSearch(\[type]  $champ,\[type]  $tri): \[type]

Méthode de composition de la recherche avancée.

Parameters

\[type] $champ

[description]

\[type] $tri

[description]

Returns

\[type] —

[description]

composeQuery()

composeQuery(): void

Methode de construction de la requete

Cette methode permet de construire les deux requetes sql sqlC en concatenant les differents parametres

createSQLW()

createSQLW(string  $searchField,string  $searchValue,string  $opp): string

Création de la requête

Parameters

string $searchField
string $searchValue
string $opp

Returns

string

isAdvancedSearchEnabled()

isAdvancedSearchEnabled(): boolean

Retourne true si la recherche avancee est activee, false sinon.

Configure la recherche au premier appel si celle ci est activee.

Returns

boolean —

etat de la recherche avancee: activee/desactivee

composeExportUrl()

composeExportUrl(array  $params = array()): string

Compose une URL pour l'export.

Le principe est d'utiliser la propriété 'params' pour tous les paramètres de l'URL sauf si ils ont une valeur dans le paramètre passé.

Parameters

array $params

Tableau de valeurs à surcharger.

Returns

string

serialize_criterions()

serialize_criterions(array  $post): void

Stocke en variable de session les critères de la recherche avancée.

Parameters

array $post

Critères de la recherche avancée.

unserialize_criterions()

unserialize_criterions(): array

Retour les critères de la recherche avancée.

Returns

array

displayGlobalContainerStart()

displayGlobalContainerStart(): void

Layout.

displayGlobalContainerEnd()

displayGlobalContainerEnd(): void

Layout.

displayTableContainerStart()

displayTableContainerStart(): void

Layout.

displayTableContainerEnd()

displayTableContainerEnd(): void

Layout.

displayTableHeadLineStart()

displayTableHeadLineStart(string  $style = "tab"): void

Layout.

Parameters

string $style

Classe CSS.

displayTableHeadLineEnd()

displayTableHeadLineEnd(): void

Layout.

displayToolbarContainerStart()

displayToolbarContainerStart(): void

Layout.

displayToolbarContainerEnd()

displayToolbarContainerEnd(): void

Layout.

displayTableStart()

displayTableStart(string  $class = ""): void

Layout.

Parameters

string $class

Classe CSS.

displaySearchContainerStart()

displaySearchContainerStart(): void

Layout.

displaySearchContainerEnd()

displaySearchContainerEnd(): void

Layout.

init_om_application()

init_om_application(): boolean

Initialisation de la classe 'application'.

Cette méthode permet de vérifier que l'attribut f de la classe contient bien la ressource utils du framework et si ce n'est pas le cas de la récupérer.

Returns

boolean

addToLog()

addToLog(string  $message,integer  $type = DEBUG_MODE): void

Ajout d'un message au système de logs.

Cette méthode permet de logger un message.

Parameters

string $message

Message à logger.

integer $type

Niveau de log du message.

add_aggregate_filters()

add_aggregate_filters(array  $filters,string  $opp): string

Cree une chaine en ajoutant les criteres de recherche avancee utilisant des fonctions d'aggregation les uns a la suite des autres.

Cela permet de construire l'expression SQL devant se placer apres la clause HAVING.

Parameters

array $filters

liste des crietes de recherche

string $opp

operateur binaire 'AND' ou 'OR'

Returns

string —

l'expression se placant apres le HAVING

_del_substr()

_del_substr(string  $str,string  $substr,string  $rep = ""): string

Supprime la chaine $substr de $str si $substr existe.

Methode insensible à la casse

Parameters

string $str

...

string $substr

...

string $rep

optionnel, $rep peut remplacer $substr

Returns

string —

le parametre $str traite

getPostedChampRechercheAv()

getPostedChampRechercheAv(boolean  $with_table_prefix = false): array

Retourne la liste des champs de recherche avancee qui ont ete envoyes par POST et dont la valeur n'est pas vide.

Cela permet d'utiliser dans la clause SQL WHERE uniquement les champs sollicites.

De plus, si la requete SQL contient des alias de table comme utilisateur as u le parametre $with_table_prefix permet de retourner la liste des champs. (A condition que le parametre table_prefix existe).

Parameters

boolean $with_table_prefix

...

Returns

array

displayAdvancedSearch()

displayAdvancedSearch(): void

Affiche le formulaire de recherche avancée.

initHtmlChampRechercheAv()

initHtmlChampRechercheAv(): array

Permet d'initialiser la liste des champs HTML a afficher par le formulaire de recherche avancee.

Returns

array —

liste des attributs "name" des champs

add_action_to_global_actions()

add_action_to_global_actions(array  $action = array()): void

Mutateur pour la propriété '_global_actions'.

Parameters

array $action

Tableau de configuration d'une action

process_global_action_validity()

process_global_action_validity(): void

Gère l'action globale 'om_validite'.

process_global_action_edition()

process_global_action_edition(): void

Gère l'action globale 'edition pdf'.

process_global_action_export()

process_global_action_export(): void

Ajoute les boutons d'export globaux.

Si l'export est paramétré dans le tableau $options du fichier .inc.php d'un objet, cette méthode va afficher le bouton au dessus du listing.

display_global_actions()

display_global_actions(): void

Affiche les actions globales.

gen_advs_id()

gen_advs_id(): string

Retourne un identifiant unique pour ka recherche avancée.

Returns

string