PluginProbe
AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress / 10.1.4
AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress v10.1.4
11.1.1 11.1.0 11.0.5 11.0.4 11.0.3 11.0.2 11.0.1 11.0.0 10.11.1 10.11.0 10.10.2 10.10.1 10.10.0 10.9.1 trunk 10.0.0 10.0.1 10.1.0 10.1.1 10.1.2 10.1.3 10.1.4 10.2.0 10.2.1 10.2.2 All 62 releases
acymailing / back / Classes / UrlClass.php

UrlClass.php in AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress 10.1.4, at back/Classes/UrlClass.php

91 lines 2.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace AcyMailing\Classes;
4
5 use AcyMailing\Core\AcymClass;
6
7 class UrlClass extends AcymClass
8 {
9 public function __construct()
10 {
11 parent::__construct();
12
13 $this->table = 'url';
14 $this->pkey = 'id';
15 }
16
17 public function save($url)
18 {
19 if (empty($url)) return false;
20
21 foreach ($url as $oneAttribute => $value) {
22 if (empty($value)) {
23 continue;
24 }
25
26 $url->$oneAttribute = strip_tags($value);
27 }
28
29 return parent::save($url);
30 }
31
32 public function getOneUrlById($id)
33 {
34 return acym_loadObject('SELECT * FROM #__acym_url WHERE `id` = '.intval($id));
35 }
36
37 public function getOneByUrl($url)
38 {
39 return acym_loadObject('SELECT * FROM #__acym_url WHERE `url` = '.acym_escapeDB($url));
40 }
41
42 public function getAdd($url)
43 {
44 $currentUrl = $this->getOneByUrl($url);
45 if (empty($currentUrl->id)) {
46 $currentUrl = new \stdClass();
47 $currentUrl->name = $url;
48 $currentUrl->url = $url;
49 $currentUrl->id = $this->save($currentUrl);
50
51 if (empty($currentUrl->id)) {
52 return null;
53 }
54 }
55
56 return $currentUrl;
57 }
58
59 public function getUrl($url, $mailid, $userid)
60 {
61 if (empty($url) || empty($mailid) || empty($userid)) return '';
62
63 static $allurls;
64
65 $url = str_replace('&amp;', '&', $url);
66
67 if (empty($allurls[$url])) {
68 $allurls[$url] = $this->getAdd($url);
69 }
70
71 if (empty($allurls[$url]->id)) {
72 return $url;
73 }
74
75 return acym_frontendLink('fronturl&task=click&urlid='.$allurls[$url]->id.'&userid='.$userid.'&mailid='.$mailid);
76 }
77
78 public function getDuplicatedUrls()
79 {
80 return acym_loadResultArray(
81 'SELECT DISTINCT duplicates.id
82 FROM #__acym_url AS duplicates
83 JOIN #__acym_url AS original ON duplicates.url = original.url
84 JOIN #__acym_url_click AS clickoriginal ON original.id = clickoriginal.url_id
85 LEFT JOIN #__acym_url_click AS click ON duplicates.id = click.url_id
86 WHERE click.url_id IS NULL
87 LIMIT 500'
88 );
89 }
90 }
91