Affichage :
Le laboratoire de Darathor Index du Forum

Le laboratoire de Darathor

Ressources diverses, principalement sur les fourms phpBB
[MOD] Extended profile (DEV - L)

Ce forum est verrouillé, vous ne pouvez pas poster, ni répondre, ni éditer les sujets. Ce sujet est verrouillé, vous ne pouvez pas éditer les messages ou faire de réponses.

Rechercher dans ce sujet :
Messages
Darathor Sexe : Masculin
Site Admin
Membre

Inscrit le : 02 Nov 2003
Messages : 1101
Localisation : Strasbourg
MessagePosté le : 07 Oct 2006 14:45
Masquer ce messageAfficher ce message
Répondre en citantAjouter à liste des messages à citerRetirer de la liste des messages à citer
Citation :
But : Ce Sous-MOD gère l'inclusion des feuilles de style générées par Additionnal files dans les headers.

Prérequis :
- [Sous-MOD] Additionnal files (1.0)
- [Sous-MOD] Get table fields (1.0)

Auteur : Darathor (darathor@free.fr)
Version : DEV - L (07/10/2006)
Compatibilité phpBB : 2.0.21


Requêtes SQL :
Code :
CREATE TABLE `phpbb_extended_profile_contexts` (
  `context_id` mediumint(8) NOT NULL auto_increment,
  `context_name` varchar(50) NOT NULL default '',
  `context_name_key` tinyint(1) NOT NULL default '0',
  `context_internal_name` varchar(25) NOT NULL default '',
  `context_alias` varchar(25) NOT NULL default '',
  `context_test_visibility` tinyint(1) NOT NULL default '1',
  `context_display_empty` tinyint(1) NOT NULL default '0',
  `context_generate_values` tinyint(1) NOT NULL default '1',
  `context_template_block` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`context_id`),
  UNIQUE KEY `context_name` (`context_name`)
);

INSERT INTO `phpbb_extended_profile_contexts` (`context_id`, `context_name`, `context_name_key`, `context_internal_name`, `context_alias`, `context_test_visibility`, `context_display_empty`, `context_generate_values`, `context_template_block`) VALUES (1, 'ChSu_contexts_posts', 1, 'posts', '', 1, 0, 1, 'display_posts_block');
INSERT INTO `phpbb_extended_profile_contexts` (`context_id`, `context_name`, `context_name_key`, `context_internal_name`, `context_alias`, `context_test_visibility`, `context_display_empty`, `context_generate_values`, `context_template_block`) VALUES (2, 'ChSu_contexts_memberlist', 1, 'memberlist', '', 1, 1, 1, 'display_memberlist_block');
INSERT INTO `phpbb_extended_profile_contexts` (`context_id`, `context_name`, `context_name_key`, `context_internal_name`, `context_alias`, `context_test_visibility`, `context_display_empty`, `context_generate_values`, `context_template_block`) VALUES (3, 'ChSu_contexts_profile_view', 1, 'profile_view', '', 1, 0, 1, 'display_profile_view_block');
INSERT INTO `phpbb_extended_profile_contexts` (`context_id`, `context_name`, `context_name_key`, `context_internal_name`, `context_alias`, `context_test_visibility`, `context_display_empty`, `context_generate_values`, `context_template_block`) VALUES (4, 'ChSu_contexts_profile_edit', 1, 'profile_edit', '', 0, 1, 1, 'edit_block');
INSERT INTO `phpbb_extended_profile_contexts` (`context_id`, `context_name`, `context_name_key`, `context_internal_name`, `context_alias`, `context_test_visibility`, `context_display_empty`, `context_generate_values`, `context_template_block`) VALUES (5, 'ChSu_contexts_admin_edit', 1, 'admin_edit', '', 0, 1, 1, 'edit_block');
INSERT INTO `phpbb_extended_profile_contexts` (`context_id`, `context_name`, `context_name_key`, `context_internal_name`, `context_alias`, `context_test_visibility`, `context_display_empty`, `context_generate_values`, `context_template_block`) VALUES (6, 'ChSu_contexts_memberlist_header', 1, 'memberlist_header', 'memberlist', 1, 1, 0, 'display_memberlist_header_block');

CREATE TABLE `phpbb_extended_profile_fields` (
  `field_id` mediumint(8) unsigned NOT NULL auto_increment,
  `unique_id` varchar(250) NOT NULL default '',
  `field_position` mediumint(8) unsigned NOT NULL default '1',
  `field_type` varchar(30) NOT NULL default '0',
  `field_configuration` varchar(255) NOT NULL default '',
  `field_reference` tinyint(1) NOT NULL default '0',
  `field_alias` varchar(60) default NULL,
  `field_name` varchar(50) NOT NULL default '',
  `field_name_key` tinyint(1) NOT NULL default '0',
  `field_description` text NOT NULL,
  `field_description_key` tinyint(1) NOT NULL default '0',
  `field_text` text NOT NULL,
  `field_text_key` tinyint(1) NOT NULL default '0',
  `field_needed` tinyint(1) NOT NULL default '0',
  `field_visibility` varchar(50) NOT NULL default '',
  `field_contexts` varchar(250) NOT NULL default '',
  `field_mod` int(11) NOT NULL default '0',
  PRIMARY KEY  (`field_id`),
  KEY `champ_position` (`field_position`)
);

CREATE TABLE `phpbb_extended_profile_choices` (
  `choice_id` mediumint(8) unsigned NOT NULL auto_increment,
  `unique_id` varchar(250) NOT NULL default '',
  `field_id` mediumint(8) unsigned NOT NULL default '0',
  `choice_position` mediumint(8) unsigned NOT NULL default '1',
  `choice_internal_value` varchar(40) NOT NULL default '',
  `choice_name` varchar(255) NOT NULL default '',
  `choice_name_key` tinyint(1) NOT NULL default '0',
  `choice_description` text NOT NULL,
  `choice_description_key` tinyint(1) NOT NULL default '0',
  `choice_default` tinyint(1) default '0',
  `choice_mod` int(11) NOT NULL default '0',
  PRIMARY KEY  (`choice_id`)
);


Dans "include/constants.php" :
Code :
#
# Trouver
#
?>

#
# Ajouter avant
#
// DEBUT MOD Extended Profile
define('EXTENDED_PROFILE_FIELDS_TABLE', $table_prefix.'extended_profile_fields');
define('EXTENDED_PROFILE_CHOICES_TABLE', $table_prefix.'extended_profile_choices');
define('EXTENDED_PROFILE_CONTEXTS_TABLE', $table_prefix.'extended_profile_contexts');
// Les valeurs des types de champs doivent être consécutives et commencer à 1.
define('CHSU_BOOLEAN', 'BooleanField');
define('CHSU_MULTIPLE', 'MultipleField');
define('CHSU_SMALLTEXT', 'TextField'); //
define('CHSU_TEXT', 'TextField');
define('CHSU_EXTENDED_BOOLEAN', 'BooleanField'); //
define('CHSU_LINK', 'LinkField');
define('CHSU_DATE1', 'TimestampDateField');
define('CHSU_DATE2', 'PartialDateField');
define('CHSU_CUSTOM', 'CustomField');
// Ne pas oublier d'incrémenter cette valeur après avoir ajouté un type.
define('CHSU_NB_TYPES', 9);
// FIN MOD Extended Profile


Dans "admin/index.php" :
Code :
#
# Trouver
#
   include('./page_header_admin.'.$phpEx);

#
# Ajouter après
#
   // DEBUT MOD Extended Profile
   include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_extended_profile.' . $phpEx);
   // FIN MOD Extended Profile


Dans "admin/admin_users.php" :
Code :
#
# Trouver
#
require($phpbb_root_path . 'includes/functions_validate.'.$phpEx);

#
# Ajouter après
#
// DEBUT MOD Extended Profile
include_once($phpbb_root_path . 'includes/functions_extended_profile.' . $phpEx);
// FIN MOD Extended Profile

#
# Trouver
#
      //
      // Update entry in DB
      //

#
# Ajouter avant
#
      // DEBUT MOD Extended Profile
      $extended_profile_sql = $added_fields->get_fields_update_sql($userdata, $userdata, 'admin_edit', $error, $error_msg);
      // FIN MOD Extended Profile

#
# Trouver
#
         $sql = "UPDATE " . USERS_TABLE . "

#
# Ajouter avant
#
         // COMMENTAIRE MOD Extended Profile : La requête qui suit a été modifiée.
         // -- DEBUT Ajouté
         //  " . $extended_profile_sql[0] . "
         // -- FIN Ajouté

#
# Trouver une ligne commençant par
#
            SET " . $username_sql . $passwd_sql

#
# Ajouter à la fin de la ligne
#
 " . $extended_profile_sql[0] . "

#
# Trouver
#
         $s_hidden_fields .= '<input type="hidden" name="user_rank" value="' . $user_rank . '" />';

#
# Ajouter après
#
         // DEBUT MOD Extended Profile
         $s_hidden_fields .= $added_fields->get_fields_values($this_userdata, $userdata, 'admin_edit', 'hidden_fields');
         // FIN MOD Extended Profile

#
# Trouver
#
         'S_PROFILE_ACTION' => append_sid("admin_users.$phpEx"))
      );

#
# Ajouter après
#
      // DEBUT MOD Extended Profile
      $added_fields->get_edit_fields($this_userdata, $userdata, 'admin_edit');
      // FIN MOD Extended Profile


Dans "subsilver/admin/user_edit_body.tpl" :
Code :
#
# Trouver
#
      <input class="post" type="text" name="dateformat" value="{DATE_FORMAT}" maxlength="16" />
     </td>
   </tr>   

#
# Ajouter après
#
   {ADVANCED_BLOCK}


Dans "includes/usercp_register.php" :
Code :
#
# Trouver
#
//
// Check and initialize some variables if needed
//

#
# Ajouter après
#
// DEBUT MOD Extended Profile
include_once($phpbb_root_path . 'includes/functions_extended_profile.' . $phpEx);
// FIN MOD Extended Profile

#
# Trouver
#
   include($phpbb_root_path . 'includes/functions_validate.'.$phpEx);
   include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
   include($phpbb_root_path . 'includes/functions_post.'.$phpEx);

#
# Remplacer par
#
   // DEBUT MOD Extended Profile
   // -- DEBUT Enlevé
   // include($phpbb_root_path . 'includes/functions_validate.'.$phpEx);
   // include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
   // include($phpbb_root_path . 'includes/functions_post.'.$phpEx);
   // -- FIN Enlevé
   include_once($phpbb_root_path . 'includes/functions_validate.'.$phpEx);
   include_once($phpbb_root_path . 'includes/bbcode.'.$phpEx);
   include_once($phpbb_root_path . 'includes/functions_post.'.$phpEx);
   // FIN MOD Extended Profile

#
# Trouver
#
   if ( !$error )
   {
      if ( $avatar_sql == '' )

#
# Ajouter avant
#
   // DEBUT MOD Extended Profile
   $extended_profile_sql = $added_fields->get_fields_update_sql($userdata, $userdata, 'profile_edit', $error, $error_msg);
   // FIN MOD Extended Profile

#
# Trouver
#
         $sql = "UPDATE " . USERS_TABLE . "

#
# Ajouter avant
#
         // COMMENTAIRE MOD Extended Profile : La requête qui suit a été modifiée.
         // -- DEBUT Ajouté
         //  " . $extended_profile_sql[0] . "
         // -- FIN Ajouté

#
# Trouver une ligne commençant par
#
            SET " . $username_sql . $passwd_sql

#
# Ajouter à la fin de la ligne
# Attention à bien ajouter comme indiqué (il doit y avoir un espace et pas de virgule avant cette portion).
#
 " . $extended_profile_sql[0] . "

#
# Trouver
#
         //
         // Get current date
         //

#
# Ajouter après
#
         // COMMENTAIRE MOD Extended Profile : La requête qui suit a été modifiée.
         // -- DEBUT Ajouté
         //  " . $extended_profile_sql[1] . "
         //  " . $extended_profile_sql[2] . "
         // -- FIN Ajouté

#
# Dans une ligne, trouver
#
, user_active, user_actkey

#
# Dans la ligne, ajouter avant
# Attention à bien ajouter comme indiqué (il doit y avoir un espace et pas de virgule avant cette portion).
#
 " . $extended_profile_sql[1] . "

#
# Dans la ligne qui suit, trouver
#
, ";

#
# Dans cette ligne, ajouter avant
# Attention à bien ajouter comme indiqué (il doit y avoir un espace et pas de virgule avant cette portion).
#
 " . $extended_profile_sql[2] . "

#
# Trouver une ligne commençant par
#
   display_avatar_gallery(

#
# Remplacer ce début de ligne par
#
   // DEBUT MOD Extended Profile
   $extended_profile_values = $added_fields->get_fields_values($userdata, $userdata, 'profile_edit', 'tableau');
   // FIN MOD Extended Profile
   // COMMENTAIRE MOD Extended Profile : La ligne qui suit a été modifiée.
   // -- DEBUT Ajouté
   // $extended_profile_values,
   // -- FIN Ajouté
   display_avatar_gallery($extended_profile_values,

#
# Trouver
#
      'S_PROFILE_ACTION' => append_sid("profile.$phpEx"))
   );

#
# Ajouter après
#
   // DEBUT MOD Extended Profile
   $added_fields->get_edit_fields($userdata, $userdata, 'profile_edit');
   // FIN MOD Extended Profile


Dans "includes/usercp_avatar.php" :
Code :
#
# Trouver une ligne commençant par
#
function display_avatar_gallery(

#
# Remplacer ce début de ligne par
#
// COMMENTAIRE MOD Extended Profile : La ligne qui suit a été modifiée.
// -- DEBUT Ajouté
// $extended_profile_values,
// -- FIN Ajouté
function display_avatar_gallery($extended_profile_values,

#
# Trouver
#
   for($i = 0; $i < count($params); $i++)
   {
      $s_hidden_vars .= '<input type="hidden" name="' . $params[$i] . '" value="' . str_replace('"', '&quot;', $$params[$i]) . '" />';
   }
   
#
# Ajouter après
#
   // DEBUT MOD Extended Profile
   foreach($extended_profile_values as $key => $value)
   {
      $s_hidden_vars .= '<input type="hidden" name="' . $key . '" value="' . str_replace('"', '&quot;', $value) . '" />';
   }
   // FIN MOD Extended Profile


Dans "subsilver/profile_add_body.tpl" :
Code :
#
# Trouver
#
   <!-- BEGIN switch_avatar_block -->

#
# Ajouter avant
#
   {ADVANCED_BLOCK}


Dans "include/usercp_viewprofile.php" :
Code :
#
# Trouver
#
   'S_PROFILE_ACTION' => append_sid("profile.$phpEx"))
);

#
# Ajouter après
#
// DEBUT MOD Extended Profile
include_once($phpbb_root_path . 'includes/functions_extended_profile.' . $phpEx);
$added_fields->get_field_display($profiledata, $userdata, 'profile_view');
// FIN MOD Extended Profile


Dans "subsilver/profile_view_body.tpl" :
Code :
#
# Trouver
#
      <tr>
        <td valign="top" align="right" nowrap="nowrap"><span class="gen">{L_INTERESTS}:</span></td>
        <td><b><span class="gen">{INTERESTS}</span></b></td>
      </tr>

#
# Ajouter après
#

      {ADVANCED_BLOCK}


Dans "viewtopic.php" :
Code :
#
# Trouver
#
//
// Go ahead and pull all data for this topic
//

#
# Ajouter après
#
// DEBUT MOD Extended Profile
include_once($phpbb_root_path . 'includes/functions_extended_profile.' . $phpEx);
$sql_select_field_list = $added_fields->get_sql_select_field_list($userdata, 'posts', 'u');
// FIN MOD Extended Profile
// COMMENTAIRE MOD Extended Profile : La requête qui suit a été modifiée.
// -- DEBUT Ajouté
//  " . $sql_select_field_list . "
// -- FIN Ajouté

#
# Dans une ligne, trouver
#
pt.bbcode_uid

#
# Dans la ligne, ajouter après
#
 " . $sql_select_field_list . "

#
# Trouver
#
}

$template->pparse('body');

#
# Ajouter avant
#
   // DEBUT MOD Extended Profile
   $added_fields->get_field_display($postrow[$i], $userdata, 'posts', 'ADVANCED_BLOCK', 'postrow.switch_ignoreoff.advanced_block');
   // FIN MOD Extended Profile


Dans "subsilver/viewtopic.tpl" :
Code :
#
# Dans une ligne, trouver
#
{postrow.POSTER_FROM}

#
# Dans la ligne, ajouter après
#
         <!-- BEGIN advanced_block -->
         <br />{postrow.advanced_block.ADVANCED_BLOCK}
         <!-- END advanced_block -->


Dans "memberlist.php"
Code :
#
# Trouver
#
   'S_MODE_ACTION' => append_sid("memberlist.$phpEx"))
);

#
# Ajouter après
#
// DEBUT MOD Extended Profile
include_once($phpbb_root_path . 'includes/functions_extended_profile.' . $phpEx);
$added_fields->get_field_display('', $userdata, 'memberlist_header');
// FIN MOD Extended Profile

#
# Trouver une ligne commençant par
#
$sql = "SELECT username, user_id, user_viewemail, user_posts,

#
# Remplacer TOUTE la ligne par
#
// COMMENTAIRE MOD Extended Profile : La requête qui suit a été modifiée.
// -- DEBUT Enlevé
// username, user_id, user_viewemail, user_posts, user_regdate, user_from, user_website, user_email, user_icq, user_aim, user_yim, user_msnm, user_avatar, user_avatar_type, user_allowavatar
// -- FIN Enlevé
// -- DEBUT Remplacé par
// *
// -- FIN Remplacé par
$sql = "SELECT *

#
# Trouver
#
         'U_VIEWPROFILE' => append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . "=$user_id"))
      );

#
# Ajouter après
#
      // DEBUT MOD Extended Profile
      $added_fields->get_field_display($row, $userdata, 'memberlist', 'ADVANCED_BLOCK', $row = 'memberrow.advanced_block');
      // FIN MOD Extended Profile


Dans "template/subSilver/memberlist_body.tpl" :
Code :
#
# Trouver
#
     <th class="thCornerR" nowrap="nowrap">{L_WEBSITE}</th>

#
# Ajouter avant
#
   {ADVANCED_BLOCK}

#
# Trouver
#
     <td class="{memberrow.ROW_CLASS}" align="center">&nbsp;{memberrow.WWW_IMG}&nbsp;</td>

#
# Ajouter avant
#
   <!-- BEGIN advanced_block -->
   {memberrow.advanced_block.ADVANCED_BLOCK}
   <!-- END advanced_block -->

#
# Trouver
# Note : suivant les mods installé, la valeur du colspan peut avoir changé.
#
     <td class="catBottom" colspan="8" height="28">&nbsp;</td>

#
# Remplacer par
#
   <td class="catBottom" colspan="{CHSU_COLSPAN_VALUE}"></td>


Dans "laguage/lang_french/lang_main.php" :
Code :
#
# Trouver
#
?>

#
# Ajouter avant
#
// DEBUT MOD Field types
// -- Types de champs.
$lang['FiTy_boolean_name'] = 'Booléen';
$lang['FiTy_boolean_explain'] = 'Champ pouvant prendre deux valeurs différenctes : <em>oui</em> et <em>non</em>. Optionnellement on peut adjoindre la valeur <em>Non-spécifié</em> à l\'ensemble des valeurs possibles.';
$lang['FiTy_text_name'] = 'Texte';
$lang['FiTy_text_explain'] = 'Champ texte. La longueur maximale peut être spécifiée. Ainsi que le traitement éventuel des smileys, BBcodes, etc.';
$lang['FiTy_integer_name'] = 'Nombre entier';
$lang['FiTy_integer_explain'] = 'Ce type de champ contient un nombre antier dont on peut défénir les bornes.';
$lang['FiTy_multiple_name'] = 'Multiple';
$lang['FiTy_multiple_explain'] = 'Champ pouvant prendre un nombre fini de valeurs prédéfinies. Après création d\'un champ de ce type, vous devez définir les différentes valeurs possibles.';
$lang['FiTy_link_name'] = 'Lien';
$lang['FiTy_link_explain'] = 'Lien vers une page web.';
$lang['FiTy_timestamp_date_name'] = 'Date complète';
$lang['FiTy_timestamp_date_explain'] = 'Date stockée sous forme d\'un nombre de secondes depuis le 1er janvier 1970. Dans ce type de champ on doit impérativement indiquer date complète. Il s\'agit du format utilisé classiquement par phpBB (dates d\'inscription, dates des messages, etc.).';
$lang['FiTy_partial_date_name'] = 'Date partielle';
$lang['FiTy_partial_date_explain'] = 'Date stockée sous forme de trois valeurs séparées (Année/Mois/Jour). Dans ce format, une ou plusieurs de ces 3 valeurs peuvent être omises. Par exemple, pour une date d\'anniversaire, certains membres peuvent décider ne ne donner que je jour et le mois en omettant l\'année.';
$lang['FiTy_custom_name'] = 'Personnalisé';
$lang['FiTy_custom_explain'] = 'Affichage personnalisé pouvant inclure plusieurs champs différents.';
// -- Divers.
$lang['FiTy_yes'] = 'Oui';
$lang['FiTy_no'] = 'Non';
$lang['FiTy_not_specified'] = 'Non-spécifié';
$lang['FiTy_date_froms_format'] = 'Année/Mois/Jour/Heure/Minute/Seconde';
$lang['FiTy_year'] = 'Année';
$lang['FiTy_month'] = 'Mois';
$lang['FiTy_day'] = 'Jour';
// -- Configurations.
$lang['FiTy_boolean_extended'] = 'Booléen étendu';
$lang['FiTy_boolean_extended_explain'] = 'Un champ booléen étendu admet trois valeurs distinctes : <em>oui</em>, <em>non</em> et <em>non-spécifié</em>. Un champ booléen classique n\'admet que les deux premières valeurs.';
$lang['FiTy_text_html'] = 'Activer l\'HTML';
$lang['FiTy_text_html_explain'] = 'Si cette option est activée, toutes les balises aparaîtront en clair au lieu d\'être traitées par le navigateur.';
$lang['FiTy_text_smilies'] = 'Traduire les smileys';
$lang['FiTy_text_smilies_explain'] = 'Si cette option est activée, les codes-smileys seront traduits comme dans les messages.';
$lang['FiTy_text_bbcode'] = 'Traduire les BBcodes';
$lang['FiTy_text_bbcode_explain'] = 'Si cette option est activée, les BBcodes seront traduits comme dans les messages.';
$lang['FiTy_text_clickable'] = 'Liens cliquables';
$lang['FiTy_text_clickable_explain'] = 'Si cette option est activée, les adresses seront transformées automatiquement en liens cliquables.';
$lang['FiTy_text_max'] = 'Longueur maximale';
$lang['FiTy_text_max_explain'] = 'Ici vous pouvez définir le nombre maximal de caractères que peut contenir ce champ. Laisser vide pour ne pas donner de limite.';
$lang['FiTy_integer_max'] = 'Borne supérieure';
$lang['FiTy_integer_max_explain'] = 'Valeur maximale pouvant être donnée à ce champ.';
$lang['FiTy_integer_min'] = 'Borne inférieure';
$lang['FiTy_integer_min_explain'] = 'Valeur minimale pouvant être donnée à ce champ.';
$lang['FiTy_multiple_type'] = 'Type de selection';
$lang['FiTy_multiple_type_explain'] = 'Vous pouvez choisir ici la façon dont sera selectionnée la valeur. Si vous choisissez le type <em>cases à cocher</em>, plusieurs choix pourront être selectionnés simultanément. Dans les deux autres cas, un seul choix pourra être selectionné.';
$lang['FiTy_multiple_type_radio'] = 'Boutons radio';
$lang['FiTy_multiple_type_checkbox'] = 'Cases à cocher';
$lang['FiTy_multiple_type_select'] = 'Menu déroulant';
// FIN MOD Field types


Uploader les fichiers suivants :
- admin/admin_extended_profile_choices.php
- admin/admin_extended_profile_fields.php
- includes/field_types.php
- includes/functions_extended_profile.php
- language/lang_french/lang_extended_profile.php
- subsilver/extended_profile_blocks.tpl
- subsilver/admin/extended_profile_choices_edit_body.tpl
- subsilver/admin/extended_profile_choices_list_body.tpl
- subsilver/admin/extended_profile_field_edit_body.tpl
- subsilver/admin/extended_profile_field_list_body.tpl
Revenir en haut Aller en bas
Hors ligne | Profil | MP | E-mail | Site web
  Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum