mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-08 04:18:52 +00:00
[ticket/11201] Inject table names rather then using constants
PHPBB3-11201
This commit is contained in:
parent
39ff387d36
commit
431fa7b593
4 changed files with 30 additions and 10 deletions
|
@ -7,6 +7,9 @@ services:
|
||||||
- @request
|
- @request
|
||||||
- @template
|
- @template
|
||||||
- @user
|
- @user
|
||||||
|
- %tables.profile_fields%
|
||||||
|
- %tables.profile_fields_language%
|
||||||
|
- %tables.profile_fields_data%
|
||||||
calls:
|
calls:
|
||||||
- [set_type_collection, [@profilefields.type_collection]]
|
- [set_type_collection, [@profilefields.type_collection]]
|
||||||
|
|
||||||
|
@ -14,6 +17,7 @@ services:
|
||||||
class: \phpbb\profilefields\lang_helper
|
class: \phpbb\profilefields\lang_helper
|
||||||
arguments:
|
arguments:
|
||||||
- @dbal.conn
|
- @dbal.conn
|
||||||
|
- %tables.profile_fields_options_language%
|
||||||
|
|
||||||
profilefields.type_collection:
|
profilefields.type_collection:
|
||||||
class: phpbb\di\service_collection
|
class: phpbb\di\service_collection
|
||||||
|
|
|
@ -10,6 +10,10 @@ parameters:
|
||||||
tables.modules: %core.table_prefix%modules
|
tables.modules: %core.table_prefix%modules
|
||||||
tables.notification_types: %core.table_prefix%notification_types
|
tables.notification_types: %core.table_prefix%notification_types
|
||||||
tables.notifications: %core.table_prefix%notifications
|
tables.notifications: %core.table_prefix%notifications
|
||||||
|
tables.profile_fields: %core.table_prefix%profile_fields
|
||||||
|
tables.profile_fields_data: %core.table_prefix%profile_fields_data
|
||||||
|
tables.profile_fields_options_language: %core.table_prefix%profile_fields_lang
|
||||||
|
tables.profile_fields_language: %core.table_prefix%profile_lang
|
||||||
tables.posts: %core.table_prefix%posts
|
tables.posts: %core.table_prefix%posts
|
||||||
tables.topics: %core.table_prefix%topics
|
tables.topics: %core.table_prefix%topics
|
||||||
tables.user_notifications: %core.table_prefix%user_notifications
|
tables.user_notifications: %core.table_prefix%user_notifications
|
||||||
|
|
|
@ -27,14 +27,22 @@ class lang_helper
|
||||||
*/
|
*/
|
||||||
protected $db;
|
protected $db;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Table where the language strings are stored
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $language_table;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Construct
|
* Construct
|
||||||
*
|
*
|
||||||
* @param \phpbb\db\driver\driver $db Database object
|
* @param \phpbb\db\driver\driver $db Database object
|
||||||
|
* @param string $language_table Table where the language strings are stored
|
||||||
*/
|
*/
|
||||||
public function __construct($db)
|
public function __construct($db, $language_table)
|
||||||
{
|
{
|
||||||
$this->db = $db;
|
$this->db = $db;
|
||||||
|
$this->language_table = $language_table;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -62,7 +70,7 @@ class lang_helper
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$sql = 'SELECT option_id, lang_value
|
$sql = 'SELECT option_id, lang_value
|
||||||
FROM ' . PROFILE_FIELDS_LANG_TABLE . "
|
FROM ' . $this->language_table . "
|
||||||
WHERE field_id = $field_id
|
WHERE field_id = $field_id
|
||||||
AND lang_id = $lang_id
|
AND lang_id = $lang_id
|
||||||
AND field_type = '" . $this->db->sql_escape($field_type) . "'
|
AND field_type = '" . $this->db->sql_escape($field_type) . "'
|
||||||
|
|
|
@ -21,13 +21,17 @@ class profilefields
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public function __construct($auth, $db, $request, $template, $user)
|
public function __construct($auth, $db, $request, $template, $user, $fields_table, $fields_language_table, $fields_data_table)
|
||||||
{
|
{
|
||||||
$this->auth = $auth;
|
$this->auth = $auth;
|
||||||
$this->db = $db;
|
$this->db = $db;
|
||||||
$this->request = $request;
|
$this->request = $request;
|
||||||
$this->template = $template;
|
$this->template = $template;
|
||||||
$this->user = $user;
|
$this->user = $user;
|
||||||
|
|
||||||
|
$this->fields_table = $fields_table;
|
||||||
|
$this->fields_language_table = $fields_language_table;
|
||||||
|
$this->fields_data_table = $fields_data_table;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -72,7 +76,7 @@ class profilefields
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql = 'SELECT l.*, f.*
|
$sql = 'SELECT l.*, f.*
|
||||||
FROM ' . PROFILE_LANG_TABLE . ' l, ' . PROFILE_FIELDS_TABLE . " f
|
FROM ' . $this->fields_language_table . ' l, ' . $this->fields_table . " f
|
||||||
WHERE f.field_active = 1
|
WHERE f.field_active = 1
|
||||||
$sql_where
|
$sql_where
|
||||||
AND l.lang_id = $lang_id
|
AND l.lang_id = $lang_id
|
||||||
|
@ -106,7 +110,7 @@ class profilefields
|
||||||
|
|
||||||
// Display hidden/no_view fields for admin/moderator
|
// Display hidden/no_view fields for admin/moderator
|
||||||
$sql = 'SELECT l.*, f.*
|
$sql = 'SELECT l.*, f.*
|
||||||
FROM ' . PROFILE_LANG_TABLE . ' l, ' . PROFILE_FIELDS_TABLE . ' f
|
FROM ' . $this->fields_language_table . ' l, ' . $this->fields_table . ' f
|
||||||
WHERE l.lang_id = ' . $this->user->get_iso_lang_id() . '
|
WHERE l.lang_id = ' . $this->user->get_iso_lang_id() . '
|
||||||
AND f.field_active = 1 ' .
|
AND f.field_active = 1 ' .
|
||||||
((!$this->auth->acl_gets('a_', 'm_') && !$this->auth->acl_getf_global('m_')) ? ' AND f.field_hide = 0 ' : '') . '
|
((!$this->auth->acl_gets('a_', 'm_') && !$this->auth->acl_getf_global('m_')) ? ' AND f.field_hide = 0 ' : '') . '
|
||||||
|
@ -149,7 +153,7 @@ class profilefields
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql = 'SELECT l.*, f.*
|
$sql = 'SELECT l.*, f.*
|
||||||
FROM ' . PROFILE_LANG_TABLE . ' l, ' . PROFILE_FIELDS_TABLE . " f
|
FROM ' . $this->fields_language_table . ' l, ' . $this->fields_table . " f
|
||||||
WHERE l.lang_id = $lang_id
|
WHERE l.lang_id = $lang_id
|
||||||
AND f.field_active = 1
|
AND f.field_active = 1
|
||||||
$sql_where
|
$sql_where
|
||||||
|
@ -213,7 +217,7 @@ class profilefields
|
||||||
$cp_data_sql[$left_delim . (($this->db->sql_layer == 'firebird' || $this->db->sql_layer == 'oracle') ? strtoupper($key) : $key) . $right_delim] = $value;
|
$cp_data_sql[$left_delim . (($this->db->sql_layer == 'firebird' || $this->db->sql_layer == 'oracle') ? strtoupper($key) : $key) . $right_delim] = $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql = 'UPDATE ' . PROFILE_FIELDS_DATA_TABLE . '
|
$sql = 'UPDATE ' . $this->fields_data_table . '
|
||||||
SET ' . $this->db->sql_build_array('UPDATE', $cp_data_sql) . "
|
SET ' . $this->db->sql_build_array('UPDATE', $cp_data_sql) . "
|
||||||
WHERE user_id = $user_id";
|
WHERE user_id = $user_id";
|
||||||
$this->db->sql_query($sql);
|
$this->db->sql_query($sql);
|
||||||
|
@ -224,7 +228,7 @@ class profilefields
|
||||||
|
|
||||||
$this->db->sql_return_on_error(true);
|
$this->db->sql_return_on_error(true);
|
||||||
|
|
||||||
$sql = 'INSERT INTO ' . PROFILE_FIELDS_DATA_TABLE . ' ' . $this->db->sql_build_array('INSERT', $cp_data_sql);
|
$sql = 'INSERT INTO ' . $this->fields_data_table . ' ' . $this->db->sql_build_array('INSERT', $cp_data_sql);
|
||||||
$this->db->sql_query($sql);
|
$this->db->sql_query($sql);
|
||||||
|
|
||||||
$this->db->sql_return_on_error(false);
|
$this->db->sql_return_on_error(false);
|
||||||
|
@ -255,7 +259,7 @@ class profilefields
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql = 'SELECT *
|
$sql = 'SELECT *
|
||||||
FROM ' . PROFILE_FIELDS_DATA_TABLE . '
|
FROM ' . $this->fields_data_table . '
|
||||||
WHERE ' . $this->db->sql_in_set('user_id', array_map('intval', $user_id));
|
WHERE ' . $this->db->sql_in_set('user_id', array_map('intval', $user_id));
|
||||||
$result = $this->db->sql_query($sql);
|
$result = $this->db->sql_query($sql);
|
||||||
|
|
||||||
|
@ -373,7 +377,7 @@ class profilefields
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql = 'SELECT f.field_type, f.field_ident, f.field_default_value, l.lang_default_value
|
$sql = 'SELECT f.field_type, f.field_ident, f.field_default_value, l.lang_default_value
|
||||||
FROM ' . PROFILE_LANG_TABLE . ' l, ' . PROFILE_FIELDS_TABLE . ' f
|
FROM ' . $this->fields_language_table . ' l, ' . $this->fields_table . ' f
|
||||||
WHERE l.lang_id = ' . $this->user->get_iso_lang_id() . '
|
WHERE l.lang_id = ' . $this->user->get_iso_lang_id() . '
|
||||||
' . ((sizeof($sql_not_in)) ? ' AND ' . $this->db->sql_in_set('f.field_ident', $sql_not_in, true) : '') . '
|
' . ((sizeof($sql_not_in)) ? ' AND ' . $this->db->sql_in_set('f.field_ident', $sql_not_in, true) : '') . '
|
||||||
AND l.field_id = f.field_id';
|
AND l.field_id = f.field_id';
|
||||||
|
|
Loading…
Add table
Reference in a new issue