- Introduces shortcode to custom format dates

This commit is contained in:
Vlad
2017-01-06 11:56:11 -05:00
parent e4166cecba
commit 497c2fb595
2 changed files with 10 additions and 3 deletions

View File

@@ -2,9 +2,9 @@
namespace MailPoet\Newsletter\Shortcodes\Categories; namespace MailPoet\Newsletter\Shortcodes\Categories;
class Date { class Date {
static function process($action) { static function process($format) {
$date = new \DateTime('now'); $date = new \DateTime('now');
$actions = array( $available_formats = array(
'd' => $date->format('d'), 'd' => $date->format('d'),
'dordinal' => $date->format('dS'), 'dordinal' => $date->format('dS'),
'dtext' => $date->format('l'), 'dtext' => $date->format('l'),
@@ -12,6 +12,11 @@ class Date {
'mtext' => $date->format('F'), 'mtext' => $date->format('F'),
'y' => $date->format('Y') 'y' => $date->format('Y')
); );
return (isset($actions[$action])) ? $actions[$action] : false; if(!empty($available_formats[$format])) {
return $available_formats[$format];
}
return (preg_match('/^custom_(.*?)$/', $format, $custom_format)) ?
$date->format($custom_format[1]) :
false;
} }
} }

View File

@@ -85,6 +85,8 @@ class ShortcodesTest extends MailPoetTest {
expect(Date::process('m'))->equals($date->format('m')); expect(Date::process('m'))->equals($date->format('m'));
expect(Date::process('mtext'))->equals($date->format('F')); expect(Date::process('mtext'))->equals($date->format('F'));
expect(Date::process('y'))->equals($date->format('Y')); expect(Date::process('y'))->equals($date->format('Y'));
// allow custom date formats (http://php.net/manual/en/function.date.php)
expect(Date::process('custom_U'))->equals($date->format('U'));
} }
function testItCanProcessNewsletterShortcodes() { function testItCanProcessNewsletterShortcodes() {