Editor
5 years ago
Links
5 years ago
Listing
5 years ago
Options
6 years ago
Preview
5 years ago
Renderer
5 years ago
Scheduler
5 years ago
Segment
5 years ago
Sending
5 years ago
Shortcodes
5 years ago
Statistics
5 years ago
ViewInBrowser
5 years ago
AutomatedLatestContent.php
6 years ago
AutomaticEmailsRepository.php
5 years ago
NewsletterPostsRepository.php
6 years ago
NewsletterSaveController.php
5 years ago
NewslettersRepository.php
5 years ago
Url.php
6 years ago
index.php
9 years ago
Url.php
66 lines
| 1 | <?php |
| 2 | |
| 3 | namespace MailPoet\Newsletter; |
| 4 | |
| 5 | if (!defined('ABSPATH')) exit; |
| 6 | |
| 7 | |
| 8 | use MailPoet\Models\Subscriber as SubscriberModel; |
| 9 | use MailPoet\Router\Endpoints\ViewInBrowser as ViewInBrowserEndpoint; |
| 10 | use MailPoet\Router\Router; |
| 11 | use MailPoet\Subscribers\LinkTokens; |
| 12 | |
| 13 | class Url { |
| 14 | public static function getViewInBrowserUrl( |
| 15 | $newsletter, |
| 16 | $subscriber = false, |
| 17 | $queue = false, |
| 18 | bool $preview = true |
| 19 | ) { |
| 20 | $linkTokens = new LinkTokens; |
| 21 | if ($subscriber instanceof SubscriberModel) { |
| 22 | $subscriber->token = $linkTokens->getToken($subscriber); |
| 23 | } |
| 24 | $data = self::createUrlDataObject($newsletter, $subscriber, $queue, $preview); |
| 25 | return Router::buildRequest( |
| 26 | ViewInBrowserEndpoint::ENDPOINT, |
| 27 | ViewInBrowserEndpoint::ACTION_VIEW, |
| 28 | $data |
| 29 | ); |
| 30 | } |
| 31 | |
| 32 | public static function createUrlDataObject($newsletter, $subscriber, $queue, $preview) { |
| 33 | return [ |
| 34 | (!empty($newsletter->id)) ? |
| 35 | (int)$newsletter->id : |
| 36 | 0, |
| 37 | (!empty($newsletter->hash)) ? |
| 38 | $newsletter->hash : |
| 39 | 0, |
| 40 | (!empty($subscriber->id)) ? |
| 41 | (int)$subscriber->id : |
| 42 | 0, |
| 43 | (!empty($subscriber->token)) ? |
| 44 | $subscriber->token : |
| 45 | 0, |
| 46 | (!empty($queue->id)) ? |
| 47 | (int)$queue->id : |
| 48 | 0, |
| 49 | (int)$preview, |
| 50 | ]; |
| 51 | } |
| 52 | |
| 53 | public static function transformUrlDataObject($data) { |
| 54 | reset($data); |
| 55 | if (!is_int(key($data))) return $data; |
| 56 | $transformedData = []; |
| 57 | $transformedData['newsletter_id'] = (!empty($data[0])) ? $data[0] : false; |
| 58 | $transformedData['newsletter_hash'] = (!empty($data[1])) ? $data[1] : false; |
| 59 | $transformedData['subscriber_id'] = (!empty($data[2])) ? $data[2] : false; |
| 60 | $transformedData['subscriber_token'] = (!empty($data[3])) ? $data[3] : false; |
| 61 | $transformedData['queue_id'] = (!empty($data[4])) ? $data[4] : false; |
| 62 | $transformedData['preview'] = (!empty($data[5])) ? $data[5] : false; |
| 63 | return $transformedData; |
| 64 | } |
| 65 | } |
| 66 |