1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-07-31 05:50:42 +02:00

[ticket/11201] Inject table names rather then using constants

PHPBB3-11201
This commit is contained in:
Joas Schilling
2014-01-18 12:36:18 +01:00
parent 39ff387d36
commit 431fa7b593
4 changed files with 30 additions and 10 deletions

View File

@@ -27,14 +27,22 @@ class lang_helper
*/
protected $db;
/**
* Table where the language strings are stored
* @var string
*/
protected $language_table;
/**
* Construct
*
* @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->language_table = $language_table;
}
/**
@@ -62,7 +70,7 @@ class lang_helper
else
{
$sql = 'SELECT option_id, lang_value
FROM ' . PROFILE_FIELDS_LANG_TABLE . "
FROM ' . $this->language_table . "
WHERE field_id = $field_id
AND lang_id = $lang_id
AND field_type = '" . $this->db->sql_escape($field_type) . "'

View File

@@ -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->db = $db;
$this->request = $request;
$this->template = $template;
$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.*
FROM ' . PROFILE_LANG_TABLE . ' l, ' . PROFILE_FIELDS_TABLE . " f
FROM ' . $this->fields_language_table . ' l, ' . $this->fields_table . " f
WHERE f.field_active = 1
$sql_where
AND l.lang_id = $lang_id
@@ -106,7 +110,7 @@ class profilefields
// Display hidden/no_view fields for admin/moderator
$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() . '
AND f.field_active = 1 ' .
((!$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.*
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
AND f.field_active = 1
$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;
}
$sql = 'UPDATE ' . PROFILE_FIELDS_DATA_TABLE . '
$sql = 'UPDATE ' . $this->fields_data_table . '
SET ' . $this->db->sql_build_array('UPDATE', $cp_data_sql) . "
WHERE user_id = $user_id";
$this->db->sql_query($sql);
@@ -224,7 +228,7 @@ class profilefields
$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_return_on_error(false);
@@ -255,7 +259,7 @@ class profilefields
}
$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));
$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
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() . '
' . ((sizeof($sql_not_in)) ? ' AND ' . $this->db->sql_in_set('f.field_ident', $sql_not_in, true) : '') . '
AND l.field_id = f.field_id';