mirror of
https://github.com/phpbb/phpbb.git
synced 2025-08-06 16:56:44 +02:00
Merge pull request #2526 from Nicofuma/ticket/12639
[ticket/12639] Delete entry in admin-log leads to mysql-error * Nicofuma/ticket/12639: [ticket/12639] Add a space in the code generated by generate_sql_keyword() [ticket/12639] Handle $conditions['keywords'] outside of the loop [ticket/12639] Don't make a copy of $marked when deleting logs in acp_logs [ticket/12639] Send a correct IN entry when deleting marked logs [ticket/12639] Use assertSame [ticket/12639] Remove old commented tests [ticket/12639] Order the results correctly in the test [ticket/12639] Fix tests on postgres [ticket/12639] Update tests to use a dataProvider [ticket/12639] Add a test case with an empty keywords list [ticket/12639] Delete entry in admin-log leads to mysql-error
This commit is contained in:
@@ -58,13 +58,7 @@ class acp_logs
|
||||
|
||||
if ($deletemark && sizeof($marked))
|
||||
{
|
||||
$sql_in = array();
|
||||
foreach ($marked as $mark)
|
||||
{
|
||||
$sql_in[] = $mark;
|
||||
}
|
||||
$conditions['log_id'] = $sql_in;
|
||||
unset($sql_in);
|
||||
$conditions['log_id'] = array('IN' => $marked);
|
||||
}
|
||||
|
||||
if ($deleteall)
|
||||
@@ -78,8 +72,6 @@ class acp_logs
|
||||
$conditions['keywords'] = $keywords;
|
||||
}
|
||||
|
||||
$conditions['log_type'] = $this->log_type;
|
||||
|
||||
$phpbb_log = $phpbb_container->get('log');
|
||||
$phpbb_log->delete($mode, $conditions);
|
||||
}
|
||||
|
@@ -115,9 +115,8 @@ class mcp_logs
|
||||
if ($deletemark && sizeof($marked))
|
||||
{
|
||||
$conditions = array(
|
||||
'log_type' => LOG_MOD,
|
||||
'forum_id' => $forum_list,
|
||||
'log_id' => $marked,
|
||||
'log_id' => array('IN' => $marked),
|
||||
);
|
||||
|
||||
$phpbb_log->delete('mod', $conditions);
|
||||
@@ -127,7 +126,6 @@ class mcp_logs
|
||||
$keywords = utf8_normalize_nfc(request_var('keywords', '', true));
|
||||
|
||||
$conditions = array(
|
||||
'log_type' => LOG_MOD,
|
||||
'forum_id' => $forum_list,
|
||||
'keywords' => $keywords,
|
||||
);
|
||||
|
@@ -391,28 +391,29 @@ class log implements \phpbb\log\log_interface
|
||||
}
|
||||
|
||||
$sql_where = 'WHERE log_type = ' . $log_type;
|
||||
|
||||
if (isset($conditions['keywords']))
|
||||
{
|
||||
$sql_where .= $this->generate_sql_keyword($conditions['keywords'], '');
|
||||
|
||||
unset($conditions['keywords']);
|
||||
}
|
||||
|
||||
foreach ($conditions as $field => $field_value)
|
||||
{
|
||||
$sql_where .= ' AND ';
|
||||
|
||||
if ($field == 'keywords')
|
||||
if (is_array($field_value) && sizeof($field_value) == 2 && !is_array($field_value[1]))
|
||||
{
|
||||
$sql_where .= $this->generate_sql_keyword($field_value, '', '');
|
||||
$sql_where .= $field . ' ' . $field_value[0] . ' ' . $field_value[1];
|
||||
}
|
||||
else if (is_array($field_value) && isset($field_value['IN']) && is_array($field_value['IN']))
|
||||
{
|
||||
$sql_where .= $this->db->sql_in_set($field, $field_value['IN']);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (is_array($field_value) && sizeof($field_value) == 2 && !is_array($field_value[1]))
|
||||
{
|
||||
$sql_where .= $field . ' ' . $field_value[0] . ' ' . $field_value[1];
|
||||
}
|
||||
else if (is_array($field_value) && isset($field_value['IN']) && is_array($field_value['IN']))
|
||||
{
|
||||
$sql_where .= $this->db->sql_in_set($field, $field_value['IN']);
|
||||
}
|
||||
else
|
||||
{
|
||||
$sql_where .= $field . ' = ' . $field_value;
|
||||
}
|
||||
$sql_where .= $field . ' = ' . $field_value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -781,7 +782,7 @@ class log implements \phpbb\log\log_interface
|
||||
}
|
||||
}
|
||||
|
||||
$sql_keywords = $statement_operator . ' (';
|
||||
$sql_keywords = ' ' . $statement_operator . ' (';
|
||||
if (!empty($operations))
|
||||
{
|
||||
$sql_keywords .= $this->db->sql_in_set($table_alias . 'log_operation', $operations) . ' OR ';
|
||||
|
Reference in New Issue
Block a user