asArray() : $newsletter; } static function getQueue($queue_id) { $queue = SendingQueue::findOne($queue_id); return ($queue) ? $queue->asArray() : $queue; } static function getSubscriber($subscriber_id) { $subscriber = Subscriber::findOne($subscriber_id); return ($subscriber) ? $subscriber->asArray() : $subscriber; } static function getAndRenderNewsletter($newsletter, $subscriber, $queue, $preview) { if($queue && $queue['newsletter_rendered_body']) { $newsletter_body = json_decode($queue['newsletter_rendered_body'], true); } else { $renderer = new Renderer($newsletter, $preview); $newsletter_body = $renderer->render(); } $shortcodes = new Shortcodes( $newsletter, $subscriber, $queue ); $rendered_newsletter = $shortcodes->replace($newsletter_body['html']); if($queue && (boolean)Setting::getValue('tracking.enabled')) { $rendered_newsletter = Links::replaceSubscriberData( $subscriber['id'], $queue['id'], $rendered_newsletter, $preview ); } return $rendered_newsletter; } private static function abort() { status_header(404); exit; } }