PluginProbe
FluentBoards – Project Management, Task Management, Goal Tracking, Kanban Board, and, Team Collaboration / 2.2.0
FluentBoards – Project Management, Task Management, Goal Tracking, Kanban Board, and, Team Collaboration v2.2.0
2.2.0 2.1.0 2.0.15 2.0.12 2.0.10 2.0.4 2.0.1 2.0.0 1.95.3 1.95.2 1.95 1.91.6 trunk 1.11 1.12 1.13 1.20 1.21 1.22 1.23 1.30 1.31 1.32 1.35 1.40 All 43 releases
← All changes | app/Views/emails/daily.php +90 -40 1.22 → 2.2.0 View file →
@@ -1,47 +1,97 @@
1 -<?php
2 -ob_start(); // Start output buffering
3 -?>
1 +<?php if (!defined('ABSPATH')) exit; // if accessed directly exit
2 +/**
3 + * Daily task summary (sent by Fluent Boards Pro). Tasks due today, grouped by board.
4 + *
5 + * @var iterable $tasks Tasks with a loaded ->board
6 + * @var string $name Recipient display name
7 + * @var string $page_url App base URL ending in "#/"
8 + */
4 9
10 +$fluent_boards_groups = [];
11 +foreach ($tasks as $fluent_boards_task) {
12 + $fluent_boards_board_id = $fluent_boards_task->board->id;
13 + if (!isset($fluent_boards_groups[$fluent_boards_board_id])) {
14 + $fluent_boards_groups[$fluent_boards_board_id] = [
15 + 'board' => $fluent_boards_task->board,
16 + 'tasks' => [],
17 + ];
18 + }
19 + $fluent_boards_groups[$fluent_boards_board_id]['tasks'][] = $fluent_boards_task;
20 +}
21 +$fluent_boards_task_count = array_sum(array_map(function ($group) {
22 + return count($group['tasks']);
23 +}, $fluent_boards_groups));
5 24
6 - <!--Start you code here -->
7 - <div class="fbs_daily_reminder">
8 - <div class="fbs_email_greeting">
9 - <strong class="fbs_bg_white"><?php echo __('Good Morning', 'fluent-boards').', '
10 - .esc_html($name).'!' ?></strong>
11 - <p class="fbs_bg_white"> It's <?php echo date('l, F j, Y').'. '
12 - .__("Here's your task summary for today:") ?> </p> <?php // This will display the current date as "Today is Monday, January 1, 2022" ?>
13 - </div>
25 +ob_start();
26 +?>
27 +<p style="margin: 0 0 16px;">
28 + <span class="fbs_email_pill_accent" style="display: inline-block; padding: 4px 10px; border-radius: 999px; background: #EEF2FF; color: #2547D0; font-size: 12px; font-weight: 600; line-height: 18px;"><?php esc_html_e('Daily summary', 'fluent-boards'); ?></span>
29 +</p>
30 +<h1 class="fbs_email_text fbs_email_heading" style="margin: 0; color: #0E121B; font-size: 22px; font-weight: 600; line-height: 30px;">
31 + <?php
32 + /* translators: %s is the recipient's name */
33 + echo esc_html(sprintf(__('Good morning, %s', 'fluent-boards'), $name));
34 + ?>
35 +</h1>
36 +<p class="fbs_email_text2" style="margin: 6px 0 0; color: #525866; font-size: 14px; line-height: 22px;">
37 + <?php
38 + echo esc_html(date_i18n(__('l, F j, Y', 'fluent-boards')));
39 + echo ' &middot; ';
40 + /* translators: %d is the number of tasks due today */
41 + echo esc_html(sprintf(_n('%d task due today', '%d tasks due today', $fluent_boards_task_count, 'fluent-boards'), $fluent_boards_task_count));
42 + ?>
43 +</p>
14 44
15 - <strong class="fbs_bg_white" style="font-size: 15px"><?php echo __('Tasks Due Today:', 'fluent-boards'); ?></strong>
45 +<p class="fbs_email_text2" style="margin: 24px 0 8px; color: #525866; font-size: 12px; font-weight: 600; line-height: 16px; letter-spacing: 0.06em; text-transform: uppercase;"><?php esc_html_e('Due today', 'fluent-boards'); ?></p>
16 46
17 - <ul class="fbs_email_task_list_group">
18 - <?php foreach ($tasks as $task): ?>
19 - <li class="fbs_email_task_list_item">
20 - <a target="_blank"
21 - href="<?php echo htmlspecialchars($page_url.'boards/'
22 - .$task->board->id
23 - .'/tasks/'.$task->id
24 - .'-'
25 - .substr($task->title,
26 - 0, 10)); ?>">
27 - <?php echo esc_html($task->title). ' '; ?>
28 - </a>
29 - <?php echo __('task of board', 'fluent-boards'); ?>
30 - <a target="_blank"
31 - href="<?php echo htmlspecialchars($page_url.'boards/'
32 - .$task->board->id); ?>">
33 - <?php echo esc_html($task->board->title); ?>
34 - </a>
35 - </li>
36 - <?php endforeach; ?>
37 - </ul>
38 - </div>
47 +<?php foreach ($fluent_boards_groups as $fluent_boards_group):
48 + $fluent_boards_board = $fluent_boards_group['board'];
49 + $fluent_boards_board_url = $page_url . 'boards/' . $fluent_boards_board->id;
50 + ?>
51 + <table role="presentation" class="fbs_email_border" cellpadding="0" cellspacing="0" border="0" width="100%" style="margin-bottom: 12px; border: 1px solid #E1E4EA; border-radius: 10px;">
52 + <tr>
53 + <td class="fbs_email_inset" style="padding: 12px 16px; background: #F5F7FA; border-bottom: 1px solid #E1E4EA; border-radius: 10px 10px 0 0; font-size: 13px; line-height: 18px;">
54 + <a class="fbs_email_text" href="<?php echo esc_url($fluent_boards_board_url); ?>" target="_blank" style="color: #0E121B; font-weight: 600; text-decoration: none;"><?php echo esc_html($fluent_boards_board->title); ?></a>
55 + <span class="fbs_email_text2" style="color: #525866;">
56 + &middot;
57 + <?php
58 + $fluent_boards_board_count = count($fluent_boards_group['tasks']);
59 + /* translators: %d is the number of tasks */
60 + echo esc_html(sprintf(_n('%d task', '%d tasks', $fluent_boards_board_count, 'fluent-boards'), $fluent_boards_board_count));
61 + ?>
62 + </span>
63 + </td>
64 + </tr>
65 + <?php foreach ($fluent_boards_group['tasks'] as $fluent_boards_index => $fluent_boards_task):
66 + $fluent_boards_task_url = $page_url . 'boards/' . $fluent_boards_board->id . '/tasks/' . $fluent_boards_task->id . '-' . substr($fluent_boards_task->title, 0, 10);
67 + $fluent_boards_stage = $fluent_boards_task->stage ? $fluent_boards_task->stage->title : '';
68 + ?>
69 + <tr>
70 + <td class="fbs_email_border" style="padding: 14px 16px;<?php echo $fluent_boards_index ? ' border-top: 1px solid #E1E4EA;' : ''; ?>">
71 + <a class="fbs_email_text" href="<?php echo esc_url($fluent_boards_task_url); ?>" target="_blank" style="display: block; color: #0E121B; font-size: 15px; font-weight: 600; line-height: 22px; text-decoration: none;"><?php echo esc_html($fluent_boards_task->title); ?></a>
72 + <?php if ($fluent_boards_stage || $fluent_boards_task->due_at): ?>
73 + <span class="fbs_email_text2" style="display: block; color: #525866; font-size: 13px; line-height: 18px;">
74 + <?php echo esc_html($fluent_boards_stage); ?>
75 + <?php if ($fluent_boards_stage && $fluent_boards_task->due_at): ?>&middot;<?php endif; ?>
76 + <?php if ($fluent_boards_task->due_at): ?>
77 + <?php echo esc_html(date_i18n(get_option('time_format'), strtotime($fluent_boards_task->due_at))); ?>
78 + <?php endif; ?>
79 + </span>
80 + <?php endif; ?>
81 + </td>
82 + </tr>
83 + <?php endforeach; ?>
84 + </table>
85 +<?php endforeach; ?>
39 86
87 +<p style="margin: 24px 0 0;">
88 + <a class="fbs_email_btn" href="<?php echo esc_url($page_url); ?>" target="_blank" style="display: inline-block; padding: 8px 16px; border-radius: 8px; background: #222530; color: #FFFFFF; font-size: 14px; font-weight: 500; line-height: 20px; text-decoration: none;"><?php esc_html_e('Open dashboard', 'fluent-boards'); ?></a>
89 +</p>
90 +<?php
91 +$fluent_boards_email_content = ob_get_clean();
40 92
41 - <!--end your code here -->
93 +if (empty($email_reason)) {
94 + $email_reason = __('You’re getting this daily summary because it’s on in your notification settings.', 'fluent-boards');
95 +}
42 96
43 -
44 -<?php
45 -$content = ob_get_clean(); // Get the content and clean the buffer
46 -// Include the template and pass the content
47 -include 'template.php';
97 +include __DIR__ . '/template.php';