-
Notifications
You must be signed in to change notification settings - Fork 3
/
simplenews.api.php
210 lines (183 loc) · 4.46 KB
/
simplenews.api.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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
<?php
/**
* @file
* Hooks provided by the Simplenews module.
*/
/**
* @mainpage Simplenews API documentation.
*
* Simplenews builds on the following basic concepts.
*
* @link subscriber Subscribers @endlink subscribe to @link newsletter
* newsletters (categories) @endlink. That connection is called
* a @link subscription subscription @endlink. Nodes of enabled content types
* are @link issue newsletter issues @endlink. These are then sent to the
* subscribers of the newsletter the issue is attached to.
*
* Sending is done by first adding a row for each subscriber to the @link spool
* mail spool @endlink.
* Then they are processed either immediatly or during cron runs. The actual
* sending happens through a @link source source instance @endlink, which is
* first instanciated based on the mail spool and then used to generated the
* actual mail content.
*
*/
/**
* @defgroup subscriber Subscriber
*
* @todo
*/
/**
* @defgroup newsletter Newsletter (category)
*
* @todo
*/
/**
* @defgroup subscription Subscription
*
* @todo
*/
/**
* @defgroup issue Newsletter issue
*
* @todo
*/
/**
* @defgroup spool Mail spool
*
* @todo
*/
/**
* @defgroup source Source
*
* @todo
*/
/**
* Return operations to be applied to newsletter issues.
*
* @ingroup issue
*/
function hook_simplenews_issue_operations() {
$operations = array(
'activate' => array(
'label' => t('Send'),
'callback' => 'simplenews_issue_send',
),
);
return $operations;
}
/**
* Return operations to be applied to subscriptions.
*
* @ingroup issue
*/
function hook_simplenews_subscription_operations() {
$operations = array(
'activate' => array(
'label' => t('Activate'),
'callback' => 'simplenews_subscription_activate',
'callback arguments' => array(SIMPLENEWS_SUBSCRIPTION_ACTIVE),
),
'inactivate' => array(
'label' => t('Inactivate'),
'callback' => 'simplenews_subscription_activate',
'callback arguments' => array(SIMPLENEWS_SUBSCRIPTION_INACTIVE),
),
'delete' => array(
'label' => t('Delete'),
'callback' => 'simplenews_subscription_delete_multiple',
),
);
return $operations;
}
/**
* Act after a newsletter has been spooled.
*
* @param $node
* The node that has just been spooled.
*/
function hook_simplenews_spooled($node) {
}
/**
* Act after a newsletter category has been saved.
*
* @ingroup newsletter
*/
function hook_simplenews_category_update($category) {
}
/**
* Act after a newsletter category has been deleted.
*
* @ingroup newsletter
*/
function hook_simplenews_category_delete($category) {
}
/**
* Act after a subscriber is updated.
*
* @ingroup subscriber
*/
function hook_simplenews_subscriber_update($subscriber) {
}
/**
* Act after a new subscriber has been created.
*
* @ingroup subscriber
*/
function hook_simplenews_subscriber_insert($subscriber) {
}
/**
* Act after a subscriber has been deleted.
*
* @ingroup subscriber
*/
function hook_simplenews_subscriber_delete($subscriber) {
}
/**
* Invoked if a user is subscribed to a newsletter.
*
* @param $subscriber
* The subscriber object including all subscriptions of this user.
*
* @param $subscription
* The subscription object for this specific subscribe action.
*
* @ingroup subscriber
*/
function hook_simplenews_subscribe_user($subscriber, $subscription) {
}
/**
* Invoked if a user is unsubscribed from a newsletter.
*
* @param $subscriber
* The subscriber object including all subscriptions of this user.
*
* @param $subscription
* The subscription object for this specific unsubscribe action.
*
* @ingroup subscriber
*/
function hook_simplenews_unsubscribe_user($subscriber, $subscription) {
}
/**
* Expose SimplenewsSource cache implementations.
*
* @return
* An array keyed by the name of the class that provides the implementation,
* the array value consists of another array with the keys label and
* description.
*
* @ingroup source
*/
function hook_simplenews_source_cache_info() {
return array(
'SimplenewsSourceCacheNone' => array(
'label' => t('No caching'),
'description' => t('This allows to theme each newsletter separately.'),
),
'SimplenewsSourceCacheBuild' => array(
'label' => t('Cached content source'),
'description' => t('This caches the rendered content to be sent for multiple recipients. It is not possible to use subscriber specific theming but tokens can be used for personalization.'),
),
);
}