Darathor
Citation :
But : Ajoute une fonction permettant de générer un menu déroulant de selection d'une colonne d'une table de la base de données.
Auteur : Darathor (darathor@free.fr)
Version : DEV - C (07/10/2006)
Compatibilité phpBB : 2.0.21
Dans "includes/functions.php" :
Code :
#
# Trouver
#
?>
#
# Ajouter avant
#
// DEBUT MOD Get table fields
/**
* Renvoie un menu déroulant contenant la liste des champs de la table demandée.
*
* @param $table table dont on veut récupérer les champs.
* @param $name nom à donner à la variable représentée par le menu déroulant.
* @param $selected champ à selectionné par défaut.
* @param $can_no_select si cet argument est à TRUE, la première entrée du menu déroulant permettra de ne selectionner aucun champ.
*/
function get_table_fields($table, $name, $selected = '', $can_no_select = FALSE)
{
global $lang, $board_config, $phpbb_root_path, $phpEx, $db;
// Requête SQL de récupération des champs.
$GTFi_sql = 'SHOW fields FROM ' . $table;
if(!$GTFi_result = $db->sql_query($GTFi_sql))
{
message_die(GENERAL_ERROR, "Couldn't obtain fields list", "", __LINE__, __FILE__, $GTFi_sql);
}
// Gestion du MOD champs supplémentaires s'il est installé.
global $added_fields;
if($added_fields)
{
$extended_pofile_installed = TRUE;
}
else
{
$ChSu_functions_file = $phpbb_root_path . 'includes/functions_extended_profile.' . $phpEx;
if(file_exists($ChSu_functions_file))
{
include_once($ChSu_functions_file);
$extended_pofile_installed = TRUE;
}
else
{
$extended_pofile_installed = FALSE;
}
}
// Ouverture du menu.
$menu = '<select name="' . $name . '">';
// Si l'on a le droit de ne pas selectionner de champ...
if($can_no_select)
{
$menu .= '<option value="" style="font-weight: bold;">' . $lang['GTFi_aucun'] . '</option>';
}
// Parcours des champs.
while($row = $db->sql_fetchrow($GTFi_result))
{
$field = $row['Field'];
// On vérifie s'il s'agit du champ à selectionner.
if($selected == $field) { $is_select = ' selected="selected"'; }
else { $is_select = ''; }
// Vérification s'il s'agit d'un champ supplémentaire.
$is_added = preg_match('#^added_field_(.*)$#', $field, $field_id);
$field_data = $added_fields->get_fields_by_id($field_id[1]);
if($extended_pofile_installed && $is_added && ($field_data['field_name'] != ''))
{
$menu .= '<option value="' . $field . '"' . $is_select .' style="font-style: italic;">' . $field_data['field_name'] . '</option>';
}
else
{
$menu .= '<option value="' . $field . '"' . $is_select .'>' . $field . '</option>';
}
}
// Fermeture du menu.
$menu .= '</select>';
return $menu;
}
// FIN MOD Get table fields
Dans "language/lang_french/lang_main.php" :
Code :
#
# Trouver
#
?>
#
# Ajouter avant
#
// DEBUT MOD Get table fields
$lang['GTFi_aucun'] = 'Aucun';
// FIN MOD Get table fields