-
Notifications
You must be signed in to change notification settings - Fork 1
/
newsletter.php
57 lines (45 loc) · 1.35 KB
/
newsletter.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
namespace Grav\Plugin\Newsletter;
use Grav\Common\Data;
use Grav\Common\Grav;
use RocketTheme\Toolbox\ResourceLocator\ResourceLocatorInterface;
use Grav\Common\File\CompiledYamlFile;
use RocketTheme\Toolbox\Session\Message;
class Newsletter
{
protected $grav;
public function __construct(Grav $grav)
{
$this->grav = $grav;
}
public function subscribers()
{
// Initialize subscriber class.
require_once __DIR__ . '/subscriber.php';
/** @var ResourceLocatorInterface $locator */
$locator = $this->grav['locator'];
$dataDir = $locator->findResource('user://data/newsletter/subscribers');
$fullPath = $dataDir;
$iterator = new \DirectoryIterator($fullPath);
$subscribers = [];
foreach ($iterator as $file) {
if (!$file->isFile()) {
continue;
}
$name = $file->getBasename();
$subscribers[$name] = CompiledYamlFile::instance($dataDir . DS . $name)->content();
}
return $subscribers;
}
public function data($subscriber)
{
$obj = new Subscriber($subscriber);
return $obj;
}
public function setMessage($msg, $type = 'info')
{
/** @var Message $messages */
$messages = $this->grav['messages'];
$messages->add($msg, $type);
}
}