add submission verification functionality
authorKurund Jalmi <kurundjalmi@thirdsectordesign.org>
Sun, 17 Sep 2023 18:26:00 +0000 (19:26 +0100)
committerKurund Jalmi <kurundjalmi@thirdsectordesign.org>
Wed, 6 Dec 2023 00:23:33 +0000 (00:23 +0000)
ext/afform/core/CRM/Afform/Page/Verify.php [new file with mode: 0644]
ext/afform/core/info.xml
ext/afform/core/templates/CRM/Afform/Page/Verify.tpl [new file with mode: 0644]
ext/afform/core/xml/Menu/afform.xml [new file with mode: 0644]

diff --git a/ext/afform/core/CRM/Afform/Page/Verify.php b/ext/afform/core/CRM/Afform/Page/Verify.php
new file mode 100644 (file)
index 0000000..0b550af
--- /dev/null
@@ -0,0 +1,33 @@
+<?php
+
+class CRM_Afform_Page_Verify extends CRM_Core_Page {
+
+  public function run() {
+    $verified = FALSE;
+
+    // get the submission id
+    $sid = CRM_Utils_Request::retrieve('sid', 'Positive', $this, TRUE);
+
+    if (!empty($sid)) {
+      // check submission status
+      $afformSubmissionData = \Civi\Api4\AfformSubmission::get(FALSE)
+        ->addSelect('afform_name', 'status_id:name')
+        ->addWhere('id', '=', $sid)
+        ->execute()->first();
+
+      if (!empty($afformSubmissionData) && $afformSubmissionData['status_id:name'] === 'Pending') {
+        \Civi\Api4\Afform::process(FALSE)
+          ->setName($afformSubmissionData['afform_name'])
+          ->setSubmissionId($sid)
+          ->execute();
+
+        $verified = TRUE;
+      }
+    }
+
+    $this->assign('verified', $verified);
+
+    parent::run();
+  }
+
+}
index dfc32f294d158e394c7723ab819737197a71fdc5..41560f3f7e22437e862401250a368ec286c145e2 100644 (file)
@@ -39,6 +39,7 @@
     <mixin>scan-classes@1.0.0</mixin>
     <mixin>smarty-v2@1.0.1</mixin>
     <mixin>entity-types-php@1.0.0</mixin>
+    <mixin>menu-xml@1.0.0</mixin>
   </mixins>
   <upgrader>CRM_Afform_Upgrader</upgrader>
 </extension>
diff --git a/ext/afform/core/templates/CRM/Afform/Page/Verify.tpl b/ext/afform/core/templates/CRM/Afform/Page/Verify.tpl
new file mode 100644 (file)
index 0000000..5f56bfb
--- /dev/null
@@ -0,0 +1,5 @@
+{if $verified}
+  {ts}Thank you. Your submission is verified successfuly.{/ts}
+{else}
+  {ts}Sorry, unable to verify your submission.{/ts}
+{/if}
diff --git a/ext/afform/core/xml/Menu/afform.xml b/ext/afform/core/xml/Menu/afform.xml
new file mode 100644 (file)
index 0000000..6486fdf
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="iso-8859-1" ?>
+<menu>
+  <item>
+    <title>Form Submission</title>
+    <path>civicrm/afform/submission/verify</path>
+    <page_callback>CRM_Afform_Page_Verify</page_callback>
+    <access_callback>1</access_callback>
+    <is_public>true</is_public>
+  </item>
+</menu>