From 2df4900d9f8fe6af5a6b67e14cda615031751cca Mon Sep 17 00:00:00 2001
From: Carsten  Rose <carsten.rose@math.uzh.ch>
Date: Wed, 14 Jun 2017 23:43:06 +0200
Subject: [PATCH] QuickFormQuery.php: added function to check if there are
 copyForm paste records

---
 extension/config.qfq.example.ini      |  1 +
 extension/qfq/qfq/Constants.php       |  5 +++--
 extension/qfq/qfq/QuickFormQuery.php  | 18 ++++++++++++++++++
 extension/qfq/qfq/form/FormAction.php |  1 +
 4 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/extension/config.qfq.example.ini b/extension/config.qfq.example.ini
index 227e35d73..f0116ac63 100644
--- a/extension/config.qfq.example.ini
+++ b/extension/config.qfq.example.ini
@@ -87,4 +87,5 @@ WKHTMLTOPDF = /opt/wkhtmltox/bin/wkhtmltopdf
 ;NEW_BUTTON_CLASS = btn btn-default navbar-btn
 ;NEW_BUTTON_GLYPH_ICON = glyphicon-plus
 
+; auto | always | never
 ;DB_UPDATE=auto
\ No newline at end of file
diff --git a/extension/qfq/qfq/Constants.php b/extension/qfq/qfq/Constants.php
index 22a05dcf4..023405f2b 100644
--- a/extension/qfq/qfq/Constants.php
+++ b/extension/qfq/qfq/Constants.php
@@ -307,7 +307,7 @@ const CLIENT_REQUEST_URI = 'REQUEST_URI';
 const CLIENT_SCRIPT_NAME = 'SCRIPT_NAME';
 const CLIENT_PHP_SELF = 'PHP_SELF';
 
-// $_COOKIE
+// _COOKIE
 const CLIENT_COOKIE_QFQ = 'cookieQfq';
 
 // T3 Bodytext Keywords
@@ -320,6 +320,7 @@ const TYPO3_FE_USER_GROUP = 'feUserGroup';
 const TYPO3_TT_CONTENT_UID = 'ttcontentUid';
 const TYPO3_PAGE_ID = 'pageId';
 const TYPO3_PAGE_TYPE = 'pageType';
+
 const TYPO3_PAGE_LANGUAGE = 'pageLanguage';
 const TYPO3_DEBUG_SHOW_BODY_TEXT = 'debugShowBodyText';
 const TYPO3_SQL_LOG = 'sqlLog';
@@ -1053,7 +1054,7 @@ const TOKEN_ACTION_DELETE_CLOSE = 'c';
 
 const TOKEN_CLASS_NONE = 'n';
 const TOKEN_CLASS_INTERNAL = 'i';
-const TOKEN_CLASS_EXTERNAL = 'e';
+const TOKEN_CLASfindS_EXTERNAL = 'e';
 
 const WKHTML_OPTION_VIEWPORT = '--viewport-size';
 const WKHTML_OPTION_VIEWPORT_VALUE = '1280x1024';
diff --git a/extension/qfq/qfq/QuickFormQuery.php b/extension/qfq/qfq/QuickFormQuery.php
index b549df9ba..e16374e19 100644
--- a/extension/qfq/qfq/QuickFormQuery.php
+++ b/extension/qfq/qfq/QuickFormQuery.php
@@ -391,6 +391,10 @@ class QuickFormQuery {
      */
     private function pasteClipboard($formId, FormAction $formAction) {
 
+        if (!$this->isPasteRecord()) {
+            return;
+        }
+
         $cookieQfq = $this->store->getVar(CLIENT_COOKIE_QFQ, STORE_CLIENT, SANITIZE_ALLOW_ALNUMX);
         if ($cookieQfq === false || $cookieQfq == '') {
             throw new UserFormException('Qfq Session missing', ERROR_QFQ_SESSION_MISSING);
@@ -407,6 +411,20 @@ class QuickFormQuery {
 
     } # doClipboard()
 
+    /**
+     * @return bool  true if there is at least one paste record, else false.
+     */
+    private function isPasteRecord() {
+
+        foreach ($this->feSpecAction as $formElement) {
+            if ($formElement[FE_TYPE] == FE_TYPE_PASTE) {
+                return true;
+            }
+        }
+        return false;
+
+    }
+
     /**
      * Set F_FORWARD_MODE to  F_FORWARD_MODE_PAGE and builds a redirection URL to the current page with the already
      * used parameters. Do this by building a new SIP with the new recordId.
diff --git a/extension/qfq/qfq/form/FormAction.php b/extension/qfq/qfq/form/FormAction.php
index c9e7828dc..c0bb8d377 100644
--- a/extension/qfq/qfq/form/FormAction.php
+++ b/extension/qfq/qfq/form/FormAction.php
@@ -16,6 +16,7 @@ require_once(__DIR__ . '/../report/Sendmail.php');
 require_once(__DIR__ . '/../helper/HelperFormElement.php');
 require_once(__DIR__ . '/../exceptions/UserFormException.php');
 
+
 /**
  * Class formAction
  * @package qfq
-- 
GitLab