mirror of
https://github.com/phpbb/phpbb.git
synced 2025-03-20 23:51:28 +01:00
Merge branch '3.3.x'
This commit is contained in:
commit
066d14ab3c
@ -56,15 +56,6 @@ services:
|
||||
tags:
|
||||
- { name: profilefield.type }
|
||||
|
||||
profilefields.type.googleplus:
|
||||
class: phpbb\profilefields\type\type_googleplus
|
||||
arguments:
|
||||
- '@request'
|
||||
- '@template'
|
||||
- '@user'
|
||||
tags:
|
||||
- { name: profilefield.type }
|
||||
|
||||
profilefields.type.int:
|
||||
class: phpbb\profilefields\type\type_int
|
||||
arguments:
|
||||
|
@ -814,7 +814,6 @@ INSERT INTO phpbb_profile_fields (field_name, field_type, field_ident, field_len
|
||||
INSERT INTO phpbb_profile_fields (field_name, field_type, field_ident, field_length, field_minlen, field_maxlen, field_novalue, field_default_value, field_validation, field_required, field_show_novalue, field_show_on_reg, field_show_on_pm, field_show_on_vt, field_show_on_ml, field_show_profile, field_hide, field_no_view, field_active, field_order, field_is_contact, field_contact_desc, field_contact_url) VALUES ('phpbb_twitter', 'profilefields.type.string', 'phpbb_twitter', '20', '1', '15', '', '', '[\w_]+', 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 10, 1, 'VIEW_TWITTER_PROFILE', 'http://twitter.com/%s');
|
||||
INSERT INTO phpbb_profile_fields (field_name, field_type, field_ident, field_length, field_minlen, field_maxlen, field_novalue, field_default_value, field_validation, field_required, field_show_novalue, field_show_on_reg, field_show_on_pm, field_show_on_vt, field_show_on_ml, field_show_profile, field_hide, field_no_view, field_active, field_order, field_is_contact, field_contact_desc, field_contact_url) VALUES ('phpbb_skype', 'profilefields.type.string', 'phpbb_skype', '20', '6', '32', '', '', '[a-zA-Z][\w\.,\-_]+', 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 11, 1, 'VIEW_SKYPE_PROFILE', 'skype:%s?userinfo');
|
||||
INSERT INTO phpbb_profile_fields (field_name, field_type, field_ident, field_length, field_minlen, field_maxlen, field_novalue, field_default_value, field_validation, field_required, field_show_novalue, field_show_on_reg, field_show_on_pm, field_show_on_vt, field_show_on_ml, field_show_profile, field_hide, field_no_view, field_active, field_order, field_is_contact, field_contact_desc, field_contact_url) VALUES ('phpbb_youtube', 'profilefields.type.string', 'phpbb_youtube', '20', '3', '60', '', '', '[a-zA-Z][\w\.,\-_]+', 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 12, 1, 'VIEW_YOUTUBE_CHANNEL', 'http://youtube.com/user/%s');
|
||||
INSERT INTO phpbb_profile_fields (field_name, field_type, field_ident, field_length, field_minlen, field_maxlen, field_novalue, field_default_value, field_validation, field_required, field_show_novalue, field_show_on_reg, field_show_on_pm, field_show_on_vt, field_show_on_ml, field_show_profile, field_hide, field_no_view, field_active, field_order, field_is_contact, field_contact_desc, field_contact_url) VALUES ('phpbb_googleplus', 'profilefields.type.googleplus', 'phpbb_googleplus', '20', '3', '255', '', '', '[\w]+', 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 13, 1, 'VIEW_GOOGLEPLUS_PROFILE', 'http://plus.google.com/%s');
|
||||
|
||||
# User Notification Options (for first user)
|
||||
INSERT INTO phpbb_user_notifications (item_type, item_id, user_id, method) VALUES('notification.type.post', 0, 2, 'notification.method.board');
|
||||
|
@ -93,7 +93,6 @@ $lang = array_merge($lang, array(
|
||||
'FIELD_DESCRIPTION' => 'Field description',
|
||||
'FIELD_DESCRIPTION_EXPLAIN' => 'The explanation for this field presented to the user.',
|
||||
'FIELD_DROPDOWN' => 'Dropdown box',
|
||||
'FIELD_GOOGLEPLUS' => 'Google+',
|
||||
'FIELD_IDENT' => 'Field identification',
|
||||
'FIELD_IDENT_ALREADY_EXIST' => 'The chosen field identification already exist. Please choose another name.',
|
||||
'FIELD_IDENT_EXPLAIN' => 'The field identification is a name to identify the profile field within the database and the templates.',
|
||||
|
@ -311,7 +311,6 @@ $lang = array_merge($lang, array(
|
||||
'GB' => 'GB',
|
||||
'GIB' => 'GiB',
|
||||
'GO' => 'Go',
|
||||
'GOOGLEPLUS' => 'Google+',
|
||||
'GOTO_FIRST_POST' => 'Go to first post',
|
||||
'GOTO_LAST_POST' => 'Go to last post',
|
||||
'GOTO_PAGE' => 'Go to page',
|
||||
|
@ -150,5 +150,4 @@ $lang = array_merge($lang, array(
|
||||
'VIEW_SKYPE_PROFILE' => 'View Skype Profile',
|
||||
'VIEW_TWITTER_PROFILE' => 'View Twitter Profile',
|
||||
'VIEW_YOUTUBE_CHANNEL' => 'View YouTube Channel',
|
||||
'VIEW_GOOGLEPLUS_PROFILE' => 'View Google+ Profile',
|
||||
));
|
||||
|
82
phpBB/phpbb/db/migration/data/v33x/profilefield_cleanup.php
Normal file
82
phpBB/phpbb/db/migration/data/v33x/profilefield_cleanup.php
Normal file
@ -0,0 +1,82 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* This file is part of the phpBB Forum Software package.
|
||||
*
|
||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||
*
|
||||
* For full copyright and license information, please see
|
||||
* the docs/CREDITS.txt file.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace phpbb\db\migration\data\v33x;
|
||||
|
||||
class profilefield_cleanup extends \phpbb\db\migration\profilefield_base_migration
|
||||
{
|
||||
protected $profilefield_name = 'phpbb_googleplus';
|
||||
protected $profilefield_database_type = ['VCHAR', ''];
|
||||
protected $profilefield_data = [
|
||||
'field_name' => 'phpbb_googleplus',
|
||||
'field_type' => 'profilefields.type.googleplus',
|
||||
'field_ident' => 'phpbb_googleplus',
|
||||
'field_length' => '20',
|
||||
'field_minlen' => '3',
|
||||
'field_maxlen' => '255',
|
||||
'field_novalue' => '',
|
||||
'field_default_value' => '',
|
||||
'field_validation' => '(?:(?!\.{2,})([^<>=+]))+',
|
||||
'field_required' => 0,
|
||||
'field_show_novalue' => 0,
|
||||
'field_show_on_reg' => 0,
|
||||
'field_show_on_pm' => 1,
|
||||
'field_show_on_vt' => 1,
|
||||
'field_show_profile' => 1,
|
||||
'field_hide' => 0,
|
||||
'field_no_view' => 0,
|
||||
'field_active' => 1,
|
||||
'field_is_contact' => 1,
|
||||
'field_contact_desc' => 'VIEW_GOOGLEPLUS_PROFILE',
|
||||
'field_contact_url' => 'http://plus.google.com/%s'
|
||||
];
|
||||
|
||||
static public function depends_on()
|
||||
{
|
||||
return ['\phpbb\db\migration\data\v330\v330'];
|
||||
}
|
||||
|
||||
public function effectively_installed()
|
||||
{
|
||||
$sql = 'SELECT field_id
|
||||
FROM ' . $this->table_prefix . 'profile_fields
|
||||
WHERE ' . $this->db->sql_build_array('SELECT', ['field_name' => $this->profilefield_name]);
|
||||
$result = $this->db->sql_query($sql);
|
||||
$profile_field = (bool) $this->db->sql_fetchfield('field_id');
|
||||
$this->db->sql_freeresult($result);
|
||||
|
||||
$profile_field_data = $this->db_tools->sql_column_exists($this->table_prefix . 'profile_fields_data', 'pf_' . $this->profilefield_name);
|
||||
|
||||
return (!$profile_field && !$profile_field_data);
|
||||
}
|
||||
|
||||
public function update_schema()
|
||||
{
|
||||
return parent::revert_schema();
|
||||
}
|
||||
|
||||
public function revert_schema()
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
public function update_data()
|
||||
{
|
||||
return parent::revert_data();
|
||||
}
|
||||
|
||||
public function revert_data()
|
||||
{
|
||||
return [];
|
||||
}
|
||||
}
|
@ -1,66 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* This file is part of the phpBB Forum Software package.
|
||||
*
|
||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||
*
|
||||
* For full copyright and license information, please see
|
||||
* the docs/CREDITS.txt file.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace phpbb\profilefields\type;
|
||||
|
||||
class type_googleplus extends type_string
|
||||
{
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function get_name()
|
||||
{
|
||||
return $this->user->lang('FIELD_GOOGLEPLUS');
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function get_service_name()
|
||||
{
|
||||
return 'profilefields.type.googleplus';
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function get_default_option_values()
|
||||
{
|
||||
return array(
|
||||
'field_length' => 20,
|
||||
'field_minlen' => 3,
|
||||
'field_maxlen' => 255,
|
||||
'field_validation' => '(?:(?!\.{2,})([^<>=+]))+',
|
||||
'field_novalue' => '',
|
||||
'field_default_value' => '',
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function get_profile_contact_value($field_value, $field_data)
|
||||
{
|
||||
if (!$field_value && !$field_data['field_show_novalue'])
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!is_numeric($field_value))
|
||||
{
|
||||
$field_value = '+' . $field_value;
|
||||
}
|
||||
|
||||
return $field_value;
|
||||
}
|
||||
}
|
@ -722,7 +722,6 @@ dd.profile-warnings {
|
||||
.phpbb_website-icon { background-position: -40px 0; }
|
||||
.phpbb_youtube-icon { background-position: -98px 0; }
|
||||
.phpbb_facebook-icon { background-position: -119px 0; }
|
||||
.phpbb_googleplus-icon { background-position: -140px 0; }
|
||||
.phpbb_skype-icon { background-position: -161px 0; }
|
||||
.phpbb_twitter-icon { background-position: -203px 0; }
|
||||
.phpbb_yahoo-icon { background-position: -224px 0; }
|
||||
|
@ -26,7 +26,6 @@ class phpbb_functional_ucp_profile_test extends phpbb_functional_test_case
|
||||
|
||||
$form = $crawler->selectButton('Submit')->form(array(
|
||||
'pf_phpbb_facebook' => 'phpbb',
|
||||
'pf_phpbb_googleplus' => 'phpbb',
|
||||
'pf_phpbb_location' => 'Bertie´s Empire',
|
||||
'pf_phpbb_skype' => 'phpbb.skype.account',
|
||||
'pf_phpbb_twitter' => 'phpbb_twitter',
|
||||
@ -40,7 +39,6 @@ class phpbb_functional_ucp_profile_test extends phpbb_functional_test_case
|
||||
$form = $crawler->selectButton('Submit')->form();
|
||||
|
||||
$this->assertEquals('phpbb', $form->get('pf_phpbb_facebook')->getValue());
|
||||
$this->assertEquals('phpbb', $form->get('pf_phpbb_googleplus')->getValue());
|
||||
$this->assertEquals('Bertie´s Empire', $form->get('pf_phpbb_location')->getValue());
|
||||
$this->assertEquals('phpbb.skype.account', $form->get('pf_phpbb_skype')->getValue());
|
||||
$this->assertEquals('phpbb_twitter', $form->get('pf_phpbb_twitter')->getValue());
|
||||
|
@ -1,96 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* This file is part of the phpBB Forum Software package.
|
||||
*
|
||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||
*
|
||||
* For full copyright and license information, please see
|
||||
* the docs/CREDITS.txt file.
|
||||
*
|
||||
*/
|
||||
|
||||
class phpbb_profilefield_type_googleplus_test extends phpbb_test_case
|
||||
{
|
||||
protected $field;
|
||||
|
||||
public function setUp(): void
|
||||
{
|
||||
parent::setUp();
|
||||
|
||||
global $phpbb_root_path, $phpEx;
|
||||
|
||||
$lang_loader = new \phpbb\language\language_file_loader($phpbb_root_path, $phpEx);
|
||||
$lang = new \phpbb\language\language($lang_loader);
|
||||
$user = new \phpbb\user($lang, '\phpbb\datetime');
|
||||
$user->add_lang('ucp');
|
||||
$request = $this->createMock('\phpbb\request\request');
|
||||
$template = $this->createMock('\phpbb\template\template');
|
||||
|
||||
$this->field = new \phpbb\profilefields\type\type_googleplus(
|
||||
$request,
|
||||
$template,
|
||||
$user
|
||||
);
|
||||
}
|
||||
public function get_profile_contact_value_data()
|
||||
{
|
||||
return array(
|
||||
array(
|
||||
'112010191010100',
|
||||
array(),
|
||||
'112010191010100',
|
||||
'Field should return a numerical Google+ ID as is',
|
||||
),
|
||||
array(
|
||||
'TestUsername',
|
||||
array(),
|
||||
'+TestUsername',
|
||||
'Field should return a string Google+ ID with a + prefixed',
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider get_profile_contact_value_data
|
||||
*/
|
||||
public function test_get_profile_contact_value($value, $field_options, $expected, $description)
|
||||
{
|
||||
$default_field_options = array(
|
||||
'field_type' => '\phpbb\profilefields\type\type_googleplus',
|
||||
'field_name' => 'field',
|
||||
'field_id' => 1,
|
||||
'lang_id' => 1,
|
||||
'lang_name' => 'field',
|
||||
'field_required' => false,
|
||||
'field_validation' => '[\w]+',
|
||||
);
|
||||
$field_options = array_merge($default_field_options, $field_options);
|
||||
|
||||
$this->assertSame($expected, $this->field->get_profile_contact_value($value, $field_options), $description);
|
||||
}
|
||||
|
||||
public function data_validate_googleplus()
|
||||
{
|
||||
return array(
|
||||
array('foobar', false),
|
||||
array('2342340929304', false),
|
||||
array('foo<bar', 'The field “googleplus” has invalid characters.'),
|
||||
array('klkd.klkl', false),
|
||||
array('kl+', 'The field “googleplus” has invalid characters.'),
|
||||
array('foo=bar', 'The field “googleplus” has invalid characters.'),
|
||||
array('..foo', 'The field “googleplus” has invalid characters.'),
|
||||
array('foo..bar', 'The field “googleplus” has invalid characters.'),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider data_validate_googleplus
|
||||
*/
|
||||
public function test_validate_googleplus($input, $expected)
|
||||
{
|
||||
$field_data = array_merge(array('lang_name' => 'googleplus'), $this->field->get_default_option_values());
|
||||
$this->assertSame($expected, $this->field->validate_string_profile_field('string', $input, $field_data));
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user