mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-27 21:58:52 +00:00
Merge remote-tracking branch 'nickvergessen/ticket/8542' into develop
* nickvergessen/ticket/8542: [ticket/8542] Display custom profile fields in private messages Conflicts: phpBB/install/database_update.php
This commit is contained in:
commit
f9307531a7
17 changed files with 78 additions and 2 deletions
|
@ -55,6 +55,10 @@
|
|||
<dt><label for="field_show_on_reg">{L_DISPLAY_AT_REGISTER}:</label><br /><span>{L_DISPLAY_AT_REGISTER_EXPLAIN}</span></dt>
|
||||
<dd><input type="checkbox" class="radio" id="field_show_on_reg" name="field_show_on_reg" value="1"<!-- IF S_SHOW_ON_REG --> checked="checked"<!-- ENDIF --> /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="field_show_on_pm">{L_DISPLAY_ON_PM}:</label><br /><span>{L_DISPLAY_ON_PM_EXPLAIN}</span></dt>
|
||||
<dd><input type="checkbox" class="radio" id="field_show_on_pm" name="field_show_on_pm" value="1"<!-- IF S_SHOW_ON_PM --> checked="checked"<!-- ENDIF --> /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="field_show_on_vt">{L_DISPLAY_ON_VT}:</label><br /><span>{L_DISPLAY_ON_VT_EXPLAIN}</span></dt>
|
||||
<dd><input type="checkbox" class="radio" id="field_show_on_vt" name="field_show_on_vt" value="1"<!-- IF S_SHOW_ON_VT --> checked="checked"<!-- ENDIF --> /></dd>
|
||||
|
|
|
@ -1413,6 +1413,7 @@ function get_schema_struct()
|
|||
'field_validation' => array('VCHAR_UNI:20', ''),
|
||||
'field_required' => array('BOOL', 0),
|
||||
'field_show_on_reg' => array('BOOL', 0),
|
||||
'field_show_on_pm' => array('BOOL', 0),
|
||||
'field_show_on_vt' => array('BOOL', 0),
|
||||
'field_show_profile' => array('BOOL', 0),
|
||||
'field_hide' => array('BOOL', 0),
|
||||
|
|
|
@ -96,6 +96,7 @@ class acp_board
|
|||
'load_moderators' => array('lang' => 'YES_MODERATORS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
||||
'load_jumpbox' => array('lang' => 'YES_JUMPBOX', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
||||
'load_cpf_memberlist' => array('lang' => 'LOAD_CPF_MEMBERLIST', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
||||
'load_cpf_pm' => array('lang' => 'LOAD_CPF_PM', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
||||
'load_cpf_viewprofile' => array('lang' => 'LOAD_CPF_VIEWPROFILE', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
||||
'load_cpf_viewtopic' => array('lang' => 'LOAD_CPF_VIEWTOPIC', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
||||
|
||||
|
@ -327,6 +328,7 @@ class acp_board
|
|||
|
||||
'legend3' => 'CUSTOM_PROFILE_FIELDS',
|
||||
'load_cpf_memberlist' => array('lang' => 'LOAD_CPF_MEMBERLIST', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
||||
'load_cpf_pm' => array('lang' => 'LOAD_CPF_PM', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
||||
'load_cpf_viewprofile' => array('lang' => 'LOAD_CPF_VIEWPROFILE', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
||||
'load_cpf_viewtopic' => array('lang' => 'LOAD_CPF_VIEWTOPIC', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
||||
|
||||
|
|
|
@ -370,6 +370,7 @@ class acp_profile
|
|||
'field_show_profile'=> 0,
|
||||
'field_no_view' => 0,
|
||||
'field_show_on_reg' => 0,
|
||||
'field_show_on_pm' => 0,
|
||||
'field_show_on_vt' => 0,
|
||||
'lang_name' => utf8_normalize_nfc(request_var('field_ident', '', true)),
|
||||
'lang_explain' => '',
|
||||
|
@ -381,7 +382,7 @@ class acp_profile
|
|||
|
||||
// $exclude contains the data we gather in each step
|
||||
$exclude = array(
|
||||
1 => array('field_ident', 'lang_name', 'lang_explain', 'field_option_none', 'field_show_on_reg', 'field_show_on_vt', 'field_required', 'field_hide', 'field_show_profile', 'field_no_view'),
|
||||
1 => array('field_ident', 'lang_name', 'lang_explain', 'field_option_none', 'field_show_on_reg', 'field_show_on_pm', 'field_show_on_vt', 'field_required', 'field_hide', 'field_show_profile', 'field_no_view'),
|
||||
2 => array('field_length', 'field_maxlen', 'field_minlen', 'field_validation', 'field_novalue', 'field_default_value'),
|
||||
3 => array('l_lang_name', 'l_lang_explain', 'l_lang_default_value', 'l_lang_options')
|
||||
);
|
||||
|
@ -407,6 +408,7 @@ class acp_profile
|
|||
$visibility_ary = array(
|
||||
'field_required',
|
||||
'field_show_on_reg',
|
||||
'field_show_on_pm',
|
||||
'field_show_on_vt',
|
||||
'field_show_profile',
|
||||
'field_hide',
|
||||
|
@ -734,6 +736,7 @@ class acp_profile
|
|||
'S_STEP_ONE' => true,
|
||||
'S_FIELD_REQUIRED' => ($cp->vars['field_required']) ? true : false,
|
||||
'S_SHOW_ON_REG' => ($cp->vars['field_show_on_reg']) ? true : false,
|
||||
'S_SHOW_ON_PM' => ($cp->vars['field_show_on_pm']) ? true : false,
|
||||
'S_SHOW_ON_VT' => ($cp->vars['field_show_on_vt']) ? true : false,
|
||||
'S_FIELD_HIDE' => ($cp->vars['field_hide']) ? true : false,
|
||||
'S_SHOW_PROFILE' => ($cp->vars['field_show_profile']) ? true : false,
|
||||
|
@ -1050,6 +1053,7 @@ class acp_profile
|
|||
'field_validation' => $cp->vars['field_validation'],
|
||||
'field_required' => $cp->vars['field_required'],
|
||||
'field_show_on_reg' => $cp->vars['field_show_on_reg'],
|
||||
'field_show_on_pm' => $cp->vars['field_show_on_pm'],
|
||||
'field_show_on_vt' => $cp->vars['field_show_on_vt'],
|
||||
'field_hide' => $cp->vars['field_hide'],
|
||||
'field_show_profile' => $cp->vars['field_show_profile'],
|
||||
|
|
|
@ -59,6 +59,18 @@ function view_message($id, $mode, $folder_id, $msg_id, $folder, $message_row)
|
|||
$bbcode = new bbcode($message_row['bbcode_bitfield']);
|
||||
}
|
||||
|
||||
// Load the custom profile fields
|
||||
if ($config['load_cpf_pm'])
|
||||
{
|
||||
if (!class_exists('custom_profile'))
|
||||
{
|
||||
include($phpbb_root_path . 'includes/functions_profile_fields.' . $phpEx);
|
||||
}
|
||||
$cp = new custom_profile();
|
||||
|
||||
$profile_fields = $cp->generate_profile_fields_template('grab', $author_id);
|
||||
}
|
||||
|
||||
// Assign TO/BCC Addresses to template
|
||||
write_pm_addresses(array('to' => $message_row['to_address'], 'bcc' => $message_row['bcc_address']), $author_id);
|
||||
|
||||
|
@ -174,6 +186,25 @@ function view_message($id, $mode, $folder_id, $msg_id, $folder, $message_row)
|
|||
|
||||
$bbcode_status = ($config['allow_bbcode'] && $config['auth_bbcode_pm'] && $auth->acl_get('u_pm_bbcode')) ? true : false;
|
||||
|
||||
// Get the profile fields template data
|
||||
$cp_row = array();
|
||||
if ($config['load_cpf_pm'] && isset($profile_fields[$author_id]))
|
||||
{
|
||||
// Filter the fields we don't want to show
|
||||
foreach ($profile_fields[$author_id] as $used_ident => $profile_field)
|
||||
{
|
||||
if (!$profile_field['data']['field_show_on_pm'])
|
||||
{
|
||||
unset($profile_fields[$author_id][$used_ident]);
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($profile_fields[$author_id]))
|
||||
{
|
||||
$cp_row = $cp->generate_profile_fields_template('show', false, $profile_fields[$author_id]);
|
||||
}
|
||||
}
|
||||
|
||||
$template->assign_vars(array(
|
||||
'MESSAGE_AUTHOR_FULL' => get_username_string('full', $author_id, $user_info['username'], $user_info['user_colour'], $user_info['username']),
|
||||
'MESSAGE_AUTHOR_COLOUR' => get_username_string('colour', $author_id, $user_info['username'], $user_info['user_colour'], $user_info['username']),
|
||||
|
@ -232,11 +263,23 @@ function view_message($id, $mode, $folder_id, $msg_id, $folder, $message_row)
|
|||
'S_SPECIAL_FOLDER' => in_array($folder_id, array(PRIVMSGS_NO_BOX, PRIVMSGS_OUTBOX)),
|
||||
'S_PM_RECIPIENTS' => $num_recipients,
|
||||
'S_BBCODE_ALLOWED' => ($bbcode_status) ? 1 : 0,
|
||||
'S_CUSTOM_FIELDS' => (!empty($cp_row['row'])) ? true : false,
|
||||
|
||||
'U_PRINT_PM' => ($config['print_pm'] && $auth->acl_get('u_pm_printpm')) ? "$url&f=$folder_id&p=" . $message_row['msg_id'] . "&view=print" : '',
|
||||
'U_FORWARD_PM' => ($config['forward_pm'] && $auth->acl_get('u_sendpm') && $auth->acl_get('u_pm_forward')) ? "$url&mode=compose&action=forward&f=$folder_id&p=" . $message_row['msg_id'] : '')
|
||||
);
|
||||
|
||||
// Display the custom profile fields
|
||||
if (!empty($cp_row['row']))
|
||||
{
|
||||
$template->assign_vars($cp_row['row']);
|
||||
|
||||
foreach ($cp_row['blockrow'] as $cp_block_row)
|
||||
{
|
||||
$template->assign_block_vars('custom_fields', $cp_block_row);
|
||||
}
|
||||
}
|
||||
|
||||
// Display not already displayed Attachments for this post, we already parsed them. ;)
|
||||
if (isset($attachments) && sizeof($attachments))
|
||||
{
|
||||
|
|
|
@ -999,6 +999,9 @@ function database_update_info()
|
|||
GROUPS_TABLE => array(
|
||||
'group_teampage' => array('UINT', 0, 'after' => 'group_legend'),
|
||||
),
|
||||
PROFILE_FIELDS_TABLE => array(
|
||||
'field_show_on_pm' => array('BOOL', 0),
|
||||
),
|
||||
),
|
||||
'change_columns' => array(
|
||||
GROUPS_TABLE => array(
|
||||
|
@ -2109,6 +2112,9 @@ function change_database_data(&$no_updates, $version)
|
|||
unset($table_ary);
|
||||
}
|
||||
|
||||
// Allow custom profile fields in pm templates
|
||||
set_config('load_cpf_pm', '0');
|
||||
|
||||
$no_updates = false;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -793,6 +793,7 @@ CREATE TABLE phpbb_profile_fields (
|
|||
field_validation VARCHAR(20) CHARACTER SET UTF8 DEFAULT '' NOT NULL COLLATE UNICODE,
|
||||
field_required INTEGER DEFAULT 0 NOT NULL,
|
||||
field_show_on_reg INTEGER DEFAULT 0 NOT NULL,
|
||||
field_show_on_pm INTEGER DEFAULT 0 NOT NULL,
|
||||
field_show_on_vt INTEGER DEFAULT 0 NOT NULL,
|
||||
field_show_profile INTEGER DEFAULT 0 NOT NULL,
|
||||
field_hide INTEGER DEFAULT 0 NOT NULL,
|
||||
|
|
|
@ -950,6 +950,7 @@ CREATE TABLE [phpbb_profile_fields] (
|
|||
[field_validation] [varchar] (20) DEFAULT ('') NOT NULL ,
|
||||
[field_required] [int] DEFAULT (0) NOT NULL ,
|
||||
[field_show_on_reg] [int] DEFAULT (0) NOT NULL ,
|
||||
[field_show_on_pm] [int] DEFAULT (0) NOT NULL ,
|
||||
[field_show_on_vt] [int] DEFAULT (0) NOT NULL ,
|
||||
[field_show_profile] [int] DEFAULT (0) NOT NULL ,
|
||||
[field_hide] [int] DEFAULT (0) NOT NULL ,
|
||||
|
|
|
@ -557,6 +557,7 @@ CREATE TABLE phpbb_profile_fields (
|
|||
field_validation varbinary(60) DEFAULT '' NOT NULL,
|
||||
field_required tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
|
||||
field_show_on_reg tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
|
||||
field_show_on_pm tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
|
||||
field_show_on_vt tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
|
||||
field_show_profile tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
|
||||
field_hide tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
|
||||
|
|
|
@ -557,6 +557,7 @@ CREATE TABLE phpbb_profile_fields (
|
|||
field_validation varchar(20) DEFAULT '' NOT NULL,
|
||||
field_required tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
|
||||
field_show_on_reg tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
|
||||
field_show_on_pm tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
|
||||
field_show_on_vt tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
|
||||
field_show_profile tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
|
||||
field_hide tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
|
||||
|
|
|
@ -1064,6 +1064,7 @@ CREATE TABLE phpbb_profile_fields (
|
|||
field_validation varchar2(60) DEFAULT '' ,
|
||||
field_required number(1) DEFAULT '0' NOT NULL,
|
||||
field_show_on_reg number(1) DEFAULT '0' NOT NULL,
|
||||
field_show_on_pm number(1) DEFAULT '0' NOT NULL,
|
||||
field_show_on_vt number(1) DEFAULT '0' NOT NULL,
|
||||
field_show_profile number(1) DEFAULT '0' NOT NULL,
|
||||
field_hide number(1) DEFAULT '0' NOT NULL,
|
||||
|
|
|
@ -744,6 +744,7 @@ CREATE TABLE phpbb_profile_fields (
|
|||
field_validation varchar(20) DEFAULT '' NOT NULL,
|
||||
field_required INT2 DEFAULT '0' NOT NULL CHECK (field_required >= 0),
|
||||
field_show_on_reg INT2 DEFAULT '0' NOT NULL CHECK (field_show_on_reg >= 0),
|
||||
field_show_on_pm INT2 DEFAULT '0' NOT NULL CHECK (field_show_on_pm >= 0),
|
||||
field_show_on_vt INT2 DEFAULT '0' NOT NULL CHECK (field_show_on_vt >= 0),
|
||||
field_show_profile INT2 DEFAULT '0' NOT NULL CHECK (field_show_profile >= 0),
|
||||
field_hide INT2 DEFAULT '0' NOT NULL CHECK (field_hide >= 0),
|
||||
|
|
|
@ -157,6 +157,7 @@ INSERT INTO phpbb_config (config_name, config_value) VALUES ('limit_search_load'
|
|||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_anon_lastread', '0');
|
||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_birthdays', '1');
|
||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_cpf_memberlist', '0');
|
||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_cpf_profile', '0');
|
||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_cpf_viewprofile', '1');
|
||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_cpf_viewtopic', '0');
|
||||
INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_db_lastread', '1');
|
||||
|
|
|
@ -540,6 +540,7 @@ CREATE TABLE phpbb_profile_fields (
|
|||
field_validation varchar(20) NOT NULL DEFAULT '',
|
||||
field_required INTEGER UNSIGNED NOT NULL DEFAULT '0',
|
||||
field_show_on_reg INTEGER UNSIGNED NOT NULL DEFAULT '0',
|
||||
field_show_on_pm INTEGER UNSIGNED NOT NULL DEFAULT '0',
|
||||
field_show_on_vt INTEGER UNSIGNED NOT NULL DEFAULT '0',
|
||||
field_show_profile INTEGER UNSIGNED NOT NULL DEFAULT '0',
|
||||
field_hide INTEGER UNSIGNED NOT NULL DEFAULT '0',
|
||||
|
|
|
@ -353,6 +353,7 @@ $lang = array_merge($lang, array(
|
|||
'LIMIT_SESSIONS' => 'Limit sessions',
|
||||
'LIMIT_SESSIONS_EXPLAIN' => 'If the number of sessions exceeds this value within a one minute period the board will go offline. Set to 0 for unlimited sessions.',
|
||||
'LOAD_CPF_MEMBERLIST' => 'Allow styles to display custom profile fields in memberlist',
|
||||
'LOAD_CPF_PM' => 'Display custom profile fields in private messages',
|
||||
'LOAD_CPF_VIEWPROFILE' => 'Display custom profile fields in user profiles',
|
||||
'LOAD_CPF_VIEWTOPIC' => 'Display custom profile fields on topic pages',
|
||||
'LOAD_USER_ACTIVITY' => 'Show user’s activity',
|
||||
|
|
|
@ -66,6 +66,8 @@ $lang = array_merge($lang, array(
|
|||
'DISPLAY_AT_PROFILE_EXPLAIN' => 'The user is able to change this profile field within the user control panel.',
|
||||
'DISPLAY_AT_REGISTER' => 'Display on registration screen',
|
||||
'DISPLAY_AT_REGISTER_EXPLAIN' => 'If this option is enabled, the field will be displayed on registration.',
|
||||
'DISPLAY_ON_PM' => 'Display on view pm screen',
|
||||
'DISPLAY_ON_PM_EXPLAIN' => 'If this option is enabled, the field will be displayed in the mini-profile on the pm screen.',
|
||||
'DISPLAY_ON_VT' => 'Display on viewtopic screen',
|
||||
'DISPLAY_ON_VT_EXPLAIN' => 'If this option is enabled, the field will be displayed in the mini-profile on the topic screen.',
|
||||
'DISPLAY_PROFILE_FIELD' => 'Publicly display profile field',
|
||||
|
|
|
@ -70,6 +70,11 @@
|
|||
<!-- IF AUTHOR_JOINED --><dd><strong>{L_JOINED}:</strong> {AUTHOR_JOINED}</dd><!-- ENDIF -->
|
||||
<!-- IF AUTHOR_FROM --><dd><strong>{L_LOCATION}:</strong> {AUTHOR_FROM}</dd><!-- ENDIF -->
|
||||
|
||||
<!-- BEGIN custom_fields -->
|
||||
<dd><strong>{custom_fields.PROFILE_FIELD_NAME}:</strong> {custom_fields.PROFILE_FIELD_VALUE}</dd>
|
||||
<!-- END custom_fields -->
|
||||
|
||||
|
||||
<!-- IF U_PM or U_EMAIL or U_WWW or U_MSN or U_ICQ or U_YIM or U_AIM or U_JABBER -->
|
||||
<dd>
|
||||
<ul class="profile-icons">
|
||||
|
|
Loading…
Add table
Reference in a new issue