Skip to content

Commit 26a7163

Browse files
committed
- (Feature) Added ability to send parcels in the future by adding items to the queue
1 parent c3986e4 commit 26a7163

4 files changed

Lines changed: 39 additions & 2 deletions

File tree

core/components/EmailEvent.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ public function getTabs()
1717
'service' => array(
1818
'label' => \Craft\Craft::t('Service'),
1919
'url' => '#service'
20+
),
21+
'sendDate' => array(
22+
'label' => \Craft\Craft::t('Send Date'),
23+
'url' => '#sendDate'
2024
)
2125
);
2226
}

core/parcel_types/DefaultParcelType.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@ public function init()
3232
{
3333
$entry = $event->params['draft'];
3434
}
35+
36+
$parcelType->parcel->settings->parse(array(
37+
'entry' => $entry,
38+
'isNewEntry' => $isNewEntry
39+
));
3540

3641
$parcelType->settings->parse(array(
3742
'entry' => $entry,
@@ -49,6 +54,8 @@ public function init()
4954
$obj = new Postmaster_TransportModel(array(
5055
'service' => $parcelType->parcel->service,
5156
'settings' => $parcelType->settings,
57+
'sendDateSpecific' => $parcelType->parcel->settings->sendDateSpecific,
58+
'sendDateRelative' => $parcelType->parcel->settings->sendDateRelative,
5259
'data' => array(
5360
'entry' => $entry,
5461
'isNewEntry' => $isNewEntry

models/Postmaster_ParcelSettingsModel.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
22
namespace Craft;
33

4-
class Postmaster_ParcelSettingsModel extends BaseModel
4+
class Postmaster_ParcelSettingsModel extends Postmaster_BaseSettingsModel
55
{
66
public function __construct($attributes = null)
77
{
@@ -67,7 +67,9 @@ protected function defineAttributes()
6767
'parcelType' => array(AttributeType::String, 'default' => 'Craft\Plugins\Postmaster\ParcelTypes\DefaultParcelType'),
6868
'parcelTypeSettings' => array(AttributeType::Mixed, 'default' => array()),
6969
'service' => array(AttributeType::String, 'default' => 'Craft\Plugins\Postmaster\Services\CraftService'),
70-
'serviceSettings' => array(AttributeType::Mixed, 'default' => array())
70+
'serviceSettings' => array(AttributeType::Mixed, 'default' => array()),
71+
'sendDateSpecific' => array(AttributeType::String, 'default' => null),
72+
'sendDateRelative' => array(AttributeType::String, 'default' => null),
7173
);
7274
}
7375

templates/_emailEventSettings.html

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,4 +124,28 @@ <h3>{{ service.name ~ ' Settings'|t }}</h3>
124124
</div>
125125
{% endfor %}
126126

127+
</div>
128+
129+
<div id="sendDate" class="hidden">
130+
131+
{{ forms.textField({
132+
label: "Send Date (Specific)"|t,
133+
instructions: "If you want to send a parcel in the future you may specify a date and time of when the parcel should be sent. If no send date is specified, then this field is ignored and emails are sent immediately (provided you don't set a relative send date). Any date format recognized by PHP's strtotime() function should work here."|t,
134+
id: 'sendDateSpecific',
135+
name: 'settings[sendDateSpecific]',
136+
value: settings.sendDateSpecific,
137+
translatable: true,
138+
autocomplete: true
139+
}) }}
140+
141+
{{ forms.textField({
142+
label: "Send Date (Relative)"|t,
143+
instructions: 'This field allows you to specify something along the lines of "+2 days", "+1 week", "-1 week", "-5 days". If you enter a specific send date (above), then this field is relative to that date. If no specific send date is specified, then the current time is used. Any date format recognized by PHP\'s strtotime() function should work here.'|t,
144+
id: 'sendDateRelative',
145+
name: 'settings[sendDateRelative]',
146+
value: settings.sendDateRelative,
147+
translatable: true,
148+
autocomplete: true
149+
}) }}
150+
127151
</div>

0 commit comments

Comments
 (0)