91 lines
3.7 KiB
PHP
91 lines
3.7 KiB
PHP
<?php foreach ($mailPreviews as $plugin => $previews) : ?>
|
||
<h3><?= $plugin ?></h3>
|
||
<?php foreach ($previews as $preview) : ?>
|
||
<?php $mailPreview = $preview['class'] ?>
|
||
<h4><?= "\u{2709}\u{FE0F}" ?> <?= h($mailPreview->name()) ?></h4>
|
||
<table cellpadding="0" cellspacing="0">
|
||
<tbody>
|
||
<?php foreach ($mailPreview->getEmails() as $email) : ?>
|
||
<tr>
|
||
<td>
|
||
<?php
|
||
echo $this->Html->link($email, [
|
||
'controller' => 'MailPreview',
|
||
'action' => 'email',
|
||
'?' => ['plugin' => $plugin],
|
||
$mailPreview->name(),
|
||
$email,
|
||
]);
|
||
?>
|
||
</td>
|
||
</tr>
|
||
<?php endforeach; ?>
|
||
</tbody>
|
||
</table>
|
||
<?php endforeach; ?>
|
||
<?php endforeach; ?>
|
||
|
||
<div style="font-weight:300;margin-top:100px">
|
||
<h3><?= __d('debug_kit', 'How to use this feature?') ?></h3>
|
||
<p><?= __d('debug_kit', 'Testing emails can be very time consuming') ?> ⌛</p>
|
||
<p> <?= __d('debug_kit', 'Specially when you need to click a bunch of times on an interface to trigger them.') ?></p>
|
||
<p><?= __d('debug_kit', "Wouldn't it be better to just change the templates and refresh the browser to see the result?") ?></p>
|
||
<p><?= __d('debug_kit', 'Just the way you work on the web interface!') ?> 🏃</p>
|
||
|
||
<h4><?= __d('debug_kit', 'Example') ?></h4>
|
||
<p><?= __d('debug_kit', "{0} integrates with CakePHP’s {1} class. Here's an example of such a mailer:", 'MailPreview', 'Mailer') ?></p>
|
||
|
||
<pre style="background-color:#f8f8f8;font-familiy:Monaco,sans-serif;overflow:scroll;margin:10px 0;line-height:25px;">
|
||
<?php
|
||
$code = '
|
||
<?php
|
||
namespace App\Mailer;
|
||
|
||
use Cake\Mailer\Mailer;
|
||
|
||
class UserMailer extends Mailer
|
||
{
|
||
public function welcome($user)
|
||
{
|
||
return $this // ' . __d('debug_kit', 'Returning the chain is a good idea') . ' :)
|
||
->to($user->email)
|
||
->subject(sprintf("Welcome %s", $user->name))
|
||
->template("welcome_mail") // ' . __d('debug_kit', 'By default template with same name as method name is used.') . '
|
||
->layout("custom")
|
||
->set(["user" => $user]);
|
||
}
|
||
}';
|
||
highlight_string($code);
|
||
?>
|
||
</pre>
|
||
<p><?= __d('debug_kit', 'Now you create a {0} class where you can pass some dummy values.', 'MailPreview') ?></p>
|
||
|
||
<pre style="background-color:#f8f8f8;font-familiy:Monaco,sans-serif;overflow:scroll;margin:10px 0;line-height:25px;">
|
||
<?php
|
||
$code = '
|
||
<?php
|
||
// Create the file src/Mailer/Preview/UserMailPreview.php
|
||
namespace App\Mailer\Preview;
|
||
|
||
use DebugKit\Mailer\MailPreview;
|
||
|
||
class UserMailPreview extends MailPreview
|
||
{
|
||
public function welcome()
|
||
{
|
||
$this->loadModel("Users");
|
||
$user = $this->Users->find()->first();
|
||
return $this->getMailer("User")
|
||
->welcome($user)
|
||
->set(["activationToken" => "dummy-token"]);
|
||
}
|
||
}';
|
||
highlight_string($code);
|
||
?>
|
||
</pre>
|
||
|
||
<p><?= __d('debug_kit', 'Note that the function MUST return the UserMailer object at the end.') ?></p>
|
||
<p><?= __d('debug_kit', 'Since {0} have a fluent interface, you just need to return the result of the chain of calls.', 'Mailers') ?></p>
|
||
<p style="margin:20px 0"><?= __d('debug_kit', "That's it, now refresh this page!") ?> 🙃</p>
|
||
</div>
|