-
Notifications
You must be signed in to change notification settings - Fork 1
/
fork-cms-3-4-patch-ajax-module-not-exists-mails.diff
73 lines (64 loc) · 2.04 KB
/
fork-cms-3-4-patch-ajax-module-not-exists-mails.diff
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
From fb0c1c6a13488536e02436b96dffeae2c4bec15d Mon Sep 17 00:00:00 2001
From: Jeroen Desloovere <[email protected]>
Date: Mon, 26 Mar 2018 09:21:52 +0200
Subject: [PATCH] Fetch AJAX error when there is no $module
Website scrapers oftenly scrape the `frontend/ajax` URL
Now we fetch a empty $module
---
frontend/core/engine/ajax.php | 35 ++++++++++++++++++++---------------
1 file changed, 20 insertions(+), 15 deletions(-)
diff --git a/frontend/core/engine/ajax.php b/frontend/core/engine/ajax.php
index 524e2be..cde3cab 100755
--- a/frontend/core/engine/ajax.php
+++ b/frontend/core/engine/ajax.php
@@ -48,20 +48,20 @@ class FrontendAJAX
if($language == '' && isset($_GET['language'])) $language = $_GET['language'];
if($language == '') $language = SITE_DEFAULT_LANGUAGE;
- // set the module
- $this->setModule($module);
+ try
+ {
+ // set the module
+ $this->setModule($module);
- // set the action
- $this->setAction($action);
+ // set the action
+ $this->setAction($action);
- // set the language
- $this->setLanguage($language);
+ // set the language
+ $this->setLanguage($language);
- // create a new action
- $action = new FrontendAJAXAction($this->getAction(), $this->getModule());
+ // create a new action
+ $action = new FrontendAJAXAction($this->getAction(), $this->getModule());
- try
- {
// execute the action
$action->execute();
}
@@ -146,13 +146,18 @@ class FrontendAJAX
FrontendLanguage::setLocale($this->language);
}
- /**
- * Set module
- *
- * @param string $value The module, wherefore an action will be executed.
- */
+ /**
+ * Set module
+ *
+ * @param string $value The module, wherefore an action will be executed.
+ * @throws FrontendException
+ */
public function setModule($value)
{
+ if (($value === '') || ($value === null)) {
+ throw new FrontendException('Module variable must be set.');
+ }
+
// set property
$this->module = (string) $value;
}
--
2.15.1