Plusieurs variables sont définies dans le fichier Config/config.php
.
Si vous développez vos propres outils en PHP, il est bon d'utiliser ces variables pour une meilleure portabilité du code.
Les variables les plus utiles :
$g_config->db_name
: nom de la base données$g_config->basehref
: URL de votre site (ex : «http://irfu.cea.fr» ou «http://irfu.cea.fr/Sap»)$g_config->url['pere']
: URL du site père (site d'Institut)$g_config->basedir
: répertoire racine de votre site (ex : «/PHoCEA/web/IRFU» ou «/PHoCEA/web/IRFU/Sap»)$g_config->filedir['pere']
: répertoire racine du site d'Institut (ex : «/PHoCEA/web/IRFU» même si vous êtes sur le site de l'Irfu/SAp)$g_config->ldapdepartmentnumber
: votre unité (ex : «IRFU» ou «IRFU/Sedi»)Vous pouvez accéder de la même façon à toutes les variables présentes dans Config/config.php
.
Pour utiliser ces variables dans une fonction, insérer la ligne global $g_config;
Exemple :
public function toto(){
global $g_config;
echo $g_config->basehref;
}
Votre site est connecté en lecture à la base de données $g_config->db_name
indiquée dans le fichier Config/config.php
.
L'objet de connexion, $g_db2
, utilise le user usernav
. usernav
doit donc avoir le droit SELECT sur votre base de données.
Dans les exemples suivants, on suppose qu'on travaille sur une table tbl_test
composée de 3 colonnes :
Voici comment effectuer des requêtes avec la classe Class/Cdb2.php
<?php
$sql="SELECT * FROM tbl_test";
$result=$g_db2->get_all($sql); // met resultat ds tableau $result
?>
Ce code donnera un tableau PHP :
//Ligne 1
$result[0]["id"]
$result[0]["titre"]
$result[0]["resume"]
//Ligne 2
$result[1]["id"]
$result[1]["titre"]
$result[1]["resume"]
etc.
Pour afficher le résultat :
for($i=0;$i<count($result);$i++){
echo "<p>".$result[$i]["titre"]."</p>";
echo "<p>".$result[$i]["resume"]."</p>";
}
Autre syntaxe possible :
while( list($i,$row)=each($result) ){
echo "<p>".$row["titre"]."</p>";
echo "<p>".$row["resume"]."</p>";
}
Fonctions disponibles pour faire une sélection dans une table SQL :
$res=$g_db2->get_all($sql);
// toutes les lignes dans un tableau (cles = le nom des colonnes)
$res=$g_db2->get_all($sql,"num");
// toutes les lignes dans un tableau (cles = un numéro)
$res=$g_db2->get_row($sql);
// une seule ligne dans un tableau (cles = le nom des colonnes)
$res=$g_db2->get_row($sql,"num");
// une seule ligne dans un tableau (cles = un numéro)
$res=$g_db2->get_col($sql);
// une colonne dans un tableau
$res=$g_db2->get_assoc($sql);
: un tableau associatif
// nb de lignes ds la table tbl_unit
$nb=$g_db2->nb_de_lignes('tbl_unit');
// nb de lignes ds la table tbl_unit avec une clause where
$where="acronyme LIKE '%monsite%'";
$nb=$g_db2->nb_de_lignes('tbl_unit',$where);
$sql="SELECT COUNT(*) FROM tbl_test WHERE id=1";
$res=$g_db2->get_row($sql,"num");
echo "<p>Nb de reponses = ".$res[0]."</p>";
Attention pour que cela fonctionne, il faut donner le droit en écriture à usernav
sur la table tbl_test .
Attention pour que cela fonctionne, il faut donner le droit en écriture à usernav
sur la table tbl_test .
Si la table a une colonne auto-incrément
<?phpSi pas d'auto-incrément
<?phpDans ce cas de figure, ce n'est plus usernav
qui écrit dans la table mais le login de la personne connectée.
La classe Cdb2Admin
est à utiliser pour tout ce qui concerne les modérateurs.
Pour faire un script accessible aux "simples membres", utiliser Cdb2Submit
. Cdb2Submit
se base sur le log/pass qu'on reçoit par mail lorsqu'on s'inscrit. Elle peut aussi utiliser un annuaire LDAP pour le log/pass. Dans ce cas, préciser les paramètres dans GlobalConfig/ldapConfig.ini
La commande GRANT permet de donner le droit en écriture sur la table tbl_test à usernav
.
La classe Class/Cfile.php
propose plusieurs méthodes pratiques.
Ces méthodes sont accessibles par l'objet $g_file
Taille d'un fichier affiché en Mo ou Go
L'extension d'un fichier (ex : jpg, doc, pdf etc.)
Tous les fichiers d'un répertoire en balayant aussi les sous-répertoires
Le contenu d'un répertoire sans le contenu des sous-répertoires et en masquant certains fichiers
Le contenu d'un répertoire (retourne un tableau plus évolué)
Plein d'infos sur un fichier
La classe Class/Cdate.php
propose plusieurs méthodes pratiques.
Ces méthodes sont accessibles par l'objet $g_date
inverser une date
Ecrire une date en français
Exemples d'affichage avec les différentes options
Mise à jour : 24/06/2019