| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- <?php
- namespace cx_newsletter;
- class show_campaigns_activity
- extends activity {
- public function show_after_button() : null {
- return null;
- }
- public function get_site_template_name() : string {
- return 'show_campaigns';
- }
- public function load_campaigns() : \cx_appengine\string_builder {
- $result = new \cx_appengine\string_builder();
- $repository = new campaigns_repository(
- $this->get_database(),
- $this->get_tables()
- );
- $sended = new send_log_repository(
- $this->get_database(),
- $this->get_tables()
- );
- $template = (
- $this
- ->get_templates()
- ->prepare('single_campaign')
- );
- foreach ($repository->load_all() as $campaign) {
- $options = [];
- $options['id'] = $campaign->get_id();
- $options['title'] = $campaign->message->title;
- $options['sended'] = $sended->count($campaign, true);
- if ($campaign->finalized === null) {
- $options['to_send'] = $sended->count($campaign, false);
- } else {
- $options['to_send'] = 0;
- }
- $options['finalized'] = $campaign->finalized !== null ?
- $campaign->finalized->format('Y-m-d H:i:s') :
- __('No', 'cx_newsletter');
- $options['test'] = $campaign->test ?
- __('Yes', 'cx_newsletter') :
- __('No', 'cx_newsletter');
- $options['type'] = match ($campaign->type) {
- campaign_type::sms =>
- __('SMS campaign', 'cx_newsletter'),
-
- campaign_type::email =>
- __('E-Mail campaign', 'cx_newsletter')
- };
- $result->push($template->render($options));
- }
- return $result;
- }
- public function process() : self {
- $this->set('campaigns', $this->load_campaigns());
- return $this;
- }
- }
|