diff --git a/extension/Documentation/Manual.rst b/extension/Documentation/Manual.rst index 05f9960d94fb8c4beb99a7ada4f0bd77af58e3c9..fc1b1fb60fb70c61a38fc61c4c635b6350e2f78c 100644 --- a/extension/Documentation/Manual.rst +++ b/extension/Documentation/Manual.rst @@ -3067,7 +3067,7 @@ SQL * *typeAheadSql* = `SELECT ... AS 'id', ... AS 'value' WHERE name LIKE ? OR firstName LIKE ? LIMIT 100` * If there is only one column in the SELECT statement, that one will be used and there is no dict (key/value pair). - * If there is no column `id` or no column `value`, than the first column becomes `id` and the second column becomes `value`. + * If there is no column `id` or no column `value`, then the first column becomes `id` and the second column becomes `value`. * The query will be fired as a 'prepared statement'. * The value, typed by the user, will be replaced on all places where a `?` appears. * All `?` will be automatically surrounded by '%'. Therefore wildcard search is implemented: `... LIKE '%<?>%' ...` diff --git a/extension/qfq/api/delete.php b/extension/qfq/api/delete.php index e2ea1072093a11126ab04f51fb2f794d24ec3fe5..c471b57d1f2b97ddefd1ba08db1caa7146ed55e7 100644 --- a/extension/qfq/api/delete.php +++ b/extension/qfq/api/delete.php @@ -82,7 +82,7 @@ try { // in case everything is fine, an empty string is returned. Else an Array. $flagSuccess = ($answer === ''); - $targetUrl = Store::getVar(SIP_TARGET_URL, STORE_SIP); + $targetUrl = str_replace('{{amp}}', '&', Store::getVar(SIP_TARGET_URL, STORE_SIP)); $modeAnswer = Store::getVar(SIP_MODE_ANSWER, STORE_SIP); switch ($modeAnswer) { diff --git a/extension/qfq/qfq/report/Link.php b/extension/qfq/qfq/report/Link.php index bcb3d3a0947f086661fb45db55069208358acbd7..ffe6a75a732ee70bca0ad8758d773b35126103a2 100644 --- a/extension/qfq/qfq/report/Link.php +++ b/extension/qfq/qfq/report/Link.php @@ -915,7 +915,8 @@ class Link { break; case TOKEN_ACTION_DELETE_REPORT: $nameUrlParam .= '&' . SIP_MODE_ANSWER . '=' . MODE_HTML; - $nameUrlParam .= '&' . SIP_TARGET_URL . '=' . $_SERVER['REQUEST_URI']; + // Encode '&' in url to preserve parameters (#4545) - need to decode on use. + $nameUrlParam .= '&' . SIP_TARGET_URL . '=' . str_replace('&', '{{amp}}', $_SERVER['REQUEST_URI']); break; case TOKEN_ACTION_DELETE_CLOSE: // TODO: Implement for Form (primary Record wird geloescht)