Darathor
Citation :
But : Ce MOD permet d'ajouter des champs dans le profil depuis le panneau d'administration.
Prérequis :
- [Sous-MOD] Additionnal files (1.0)
- [Sous-MOD] Get table fields (1.0)
- [Sous-MOD] Fields types (1.0)
Auteur : Darathor (darathor@free.fr)
Version : DEV - M (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 "admin/admin_users.php" :
Code :
#
# Trouver
#
require($phpbb_root_path . 'includes/functions_validate.'.$phpEx);
#
# Ajouter après
#
// DEBUT MOD Extended Profile
$added_fields = new AddedFields($db, $lang);
// 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/bbcode.'.$phpEx);
include_once($phpbb_root_path . 'includes/functions_post.'.$phpEx);
$added_fields = new AddedFields($db, $lang);
// 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);
// 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('"', '"', $$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('"', '"', $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/bbcode.' . $phpEx);
include_once($phpbb_root_path . 'includes/functions_post.' . $phpEx);
$added_fields = new AddedFields($db, $lang);
$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_post.' . $phpEx);
$added_fields = new AddedFields($db, $lang);
$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.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/bbcode.' . $phpEx);
include_once($phpbb_root_path . 'includes/functions_post.' . $phpEx);
$added_fields = new AddedFields($db, $lang);
$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&" . 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"> {memberrow.WWW_IMG} </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"> </td>
#
# Remplacer par
#
<td class="catBottom" colspan="{CHSU_COLSPAN_VALUE}"></td>
Uploader les fichiers suivants :
- admin/admin_extended_profile_choices.php
- admin/admin_extended_profile_fields.php
- includes/classes/class_added_fieds.php
- includes/constants/constants_extended_profile.php
- includes/functions_all/functions_all_extended_profile.php
- language/lang_french/lang_all/lang_all_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