aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/phpbb
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@gmx.de>2014-06-22 19:40:56 +0200
committerJoas Schilling <nickvergessen@gmx.de>2014-06-22 19:40:56 +0200
commit7afc13b4db3a1444c5464f4f4f05a72cabede964 (patch)
treee4ffd41c5232a5afe80ec74af8278b9b6cce7916 /phpBB/phpbb
parentafe9d3c3f39ca1c69146778882f2b0250dfa3ed7 (diff)
parentd4679e6a95b45d839f854493682ebe64651260da (diff)
downloadforums-7afc13b4db3a1444c5464f4f4f05a72cabede964.tar
forums-7afc13b4db3a1444c5464f4f4f05a72cabede964.tar.gz
forums-7afc13b4db3a1444c5464f4f4f05a72cabede964.tar.bz2
forums-7afc13b4db3a1444c5464f4f4f05a72cabede964.tar.xz
forums-7afc13b4db3a1444c5464f4f4f05a72cabede964.zip
Merge pull request #2615 from Dragooon/ticket/12730
[ticket/12730] Add Google+ profile field * Dragooon/ticket/12730: [ticket/12730] Update Google+ button class to use proper identification [ticket/12730] Update maxlen for type_googleplus to 255 [ticket/12730] Fix type_googleplus_test to use same validation rule as the field [ticket/12730] Update field_length to be 20 by default for Google+ [ticket/12730] Google+ field_order should be 13 [ticket/12730] Switch service name to googleplus for type_googleplus [ticket/12730] Restore field_length to 10 for type_googleplus [ticket/12730] Add functional test for Google+ field [ticket/12730] Value shouldn't be escaped for schema_data.sql [ticket/12730] Missing newline at type_googleplus_test.php [ticket/12730] Set field_active to 1 for Google+ field [ticket/12730] Add unit test for type_googleplus [ticket/12730] Add missing brackets to type_googleplus.php [ticket/12730] Update field_order for Google+ CPF [ticket/12730] Use string template for Google+ CPF instead of a new one [ticket/12730] Minor formatting fixes [ticket/12730] Incorrect indentation for type_googleplus [ticket/12730] Spaces in block header [ticket/12730] Add a Google+ field by default [ticket/12730] Add Google+ profile field type
Diffstat (limited to 'phpBB/phpbb')
-rw-r--r--phpBB/phpbb/db/migration/data/v310/profilefield_googleplus.php60
-rw-r--r--phpBB/phpbb/profilefields/type/type_googleplus.php58
2 files changed, 118 insertions, 0 deletions
diff --git a/phpBB/phpbb/db/migration/data/v310/profilefield_googleplus.php b/phpBB/phpbb/db/migration/data/v310/profilefield_googleplus.php
new file mode 100644
index 0000000000..9bef0a4c0b
--- /dev/null
+++ b/phpBB/phpbb/db/migration/data/v310/profilefield_googleplus.php
@@ -0,0 +1,60 @@
+<?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\v310;
+
+class profilefield_googleplus extends \phpbb\db\migration\profilefield_base_migration
+{
+ static public function depends_on()
+ {
+ return array(
+ '\phpbb\db\migration\data\v310\profilefield_types',
+ '\phpbb\db\migration\data\v310\profilefield_show_novalue',
+ );
+ }
+
+ public function update_data()
+ {
+ return array(
+ array('custom', array(array($this, 'create_custom_field'))),
+ );
+ }
+
+ protected $profilefield_name = 'phpbb_googleplus';
+
+ protected $profilefield_database_type = array('VCHAR', '');
+
+ protected $profilefield_data = array(
+ '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' => '[\w]+',
+ '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',
+ );
+}
diff --git a/phpBB/phpbb/profilefields/type/type_googleplus.php b/phpBB/phpbb/profilefields/type/type_googleplus.php
new file mode 100644
index 0000000000..df1bcc7f4b
--- /dev/null
+++ b/phpBB/phpbb/profilefields/type/type_googleplus.php
@@ -0,0 +1,58 @@
+<?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_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' => '[\w]+',
+ '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;
+ }
+}