mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/Echo
synced 2024-11-12 09:26:05 +00:00
Merge "Add default params to avoid massive if/else block"
This commit is contained in:
commit
8650c73b05
|
@ -133,6 +133,7 @@ $3',
|
||||||
'echo-email-body-default' => 'You have a new notification at {{SITENAME}}:
|
'echo-email-body-default' => 'You have a new notification at {{SITENAME}}:
|
||||||
|
|
||||||
$1',
|
$1',
|
||||||
|
'echo-email-batch-body-default' => 'You have a new notification',
|
||||||
'echo-email-footer-default' => '$2
|
'echo-email-footer-default' => '$2
|
||||||
|
|
||||||
To control which emails we send you, visit:
|
To control which emails we send you, visit:
|
||||||
|
@ -455,6 +456,7 @@ The new notification count next to notification link, for example: 99+
|
||||||
'echo-email-subject-default' => 'Default subject for Echo e-mail notifications',
|
'echo-email-subject-default' => 'Default subject for Echo e-mail notifications',
|
||||||
'echo-email-body-default' => 'Default message content for Echo e-mail notifications.
|
'echo-email-body-default' => 'Default message content for Echo e-mail notifications.
|
||||||
* $1 is a plain text description of the notification.',
|
* $1 is a plain text description of the notification.',
|
||||||
|
'echo-email-batch-body-default' => 'Default message for Echo e-mail digest notifications',
|
||||||
'echo-email-footer-default' => 'Default footer content for Echo e-mail notifications. Parameters:
|
'echo-email-footer-default' => 'Default footer content for Echo e-mail notifications. Parameters:
|
||||||
* $1 is the address of the organization that sent the e-mail
|
* $1 is the address of the organization that sent the e-mail
|
||||||
* $2 is "-------..." ({{msg-mw|echo-email-batch-separator}})',
|
* $2 is "-------..." ({{msg-mw|echo-email-batch-separator}})',
|
||||||
|
|
|
@ -6,14 +6,49 @@
|
||||||
* in all the internal method
|
* in all the internal method
|
||||||
*/
|
*/
|
||||||
class EchoBasicFormatter extends EchoNotificationFormatter {
|
class EchoBasicFormatter extends EchoNotificationFormatter {
|
||||||
protected $messageKey = false;
|
|
||||||
protected $messageParams = false;
|
/**
|
||||||
|
* Required parameters
|
||||||
|
* @param array
|
||||||
|
*/
|
||||||
protected $requiredParameters = array(
|
protected $requiredParameters = array(
|
||||||
'title-message',
|
'title-message',
|
||||||
'title-params',
|
'title-params'
|
||||||
);
|
);
|
||||||
|
|
||||||
protected $title, $flyoutTitle, $bundleTitle, $content, $email, $icon;
|
/**
|
||||||
|
* Notification title data for archive page
|
||||||
|
* @param array
|
||||||
|
*/
|
||||||
|
protected $title;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Notification title data for flyout
|
||||||
|
* @param array
|
||||||
|
*/
|
||||||
|
protected $flyoutTitle;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Notification title data for bundling ( flyout and archive page )
|
||||||
|
*/
|
||||||
|
protected $bundleTitle;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Todo Check if this varaible can be removed
|
||||||
|
*/
|
||||||
|
protected $content;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Notification email data
|
||||||
|
* @param array
|
||||||
|
*/
|
||||||
|
protected $email;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Notification icon for each type
|
||||||
|
* @param string
|
||||||
|
*/
|
||||||
|
protected $icon;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Data for constructing bundle message, data in this array
|
* Data for constructing bundle message, data in this array
|
||||||
|
@ -27,94 +62,71 @@ class EchoBasicFormatter extends EchoNotificationFormatter {
|
||||||
public function __construct( $params ) {
|
public function __construct( $params ) {
|
||||||
parent::__construct( $params );
|
parent::__construct( $params );
|
||||||
|
|
||||||
$this->title = $this->flyoutTitle = $this->bundleTitle = array();
|
// Title for archive page
|
||||||
|
$this->title = array(
|
||||||
|
'message' => $params['title-message'],
|
||||||
|
'params' => $params['title-params']
|
||||||
|
);
|
||||||
|
|
||||||
if ( isset( $params['flyout-message'] ) && isset( $params['flyout-params'] ) ) {
|
// Set up default params if one is missing
|
||||||
$this->flyoutTitle['message'] = $params['flyout-message'];
|
$params += $this->getDefaultParams();
|
||||||
$this->flyoutTitle['params'] = $params['flyout-params'];
|
|
||||||
} else {
|
// Title for the flyout
|
||||||
$this->flyoutTitle['message'] = $params['title-message'];
|
$this->flyoutTitle = array(
|
||||||
$this->flyoutTitle['params'] = $params['title-params'];
|
'message' => $params['flyout-message'],
|
||||||
}
|
'params' => $params['flyout-params']
|
||||||
|
);
|
||||||
|
|
||||||
if ( isset( $params['bundle-message'] ) ) {
|
// Bundle title for both archive page and flyout
|
||||||
$this->bundleTitle['message'] = $params['bundle-message'];
|
$this->bundleTitle = array(
|
||||||
if ( isset( $params['bundle-params'] ) ) {
|
'message' => $params['bundle-message'],
|
||||||
$this->bundleTitle['params'] = $params['bundle-params'];
|
'params' => $params['bundle-params']
|
||||||
} else {
|
);
|
||||||
$this->bundleTitle['params'] = array();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->title['message'] = $params['title-message'];
|
// Notification payload data, eg, summary
|
||||||
$this->title['params'] = $params['title-params'];
|
$this->payload = $params['payload'];
|
||||||
$this->payload = array();
|
|
||||||
|
|
||||||
if ( isset( $params['payload'] ) ) {
|
// Notification email subject and body
|
||||||
$this->payload = $params['payload'];
|
$this->email = array(
|
||||||
}
|
'subject' => array(
|
||||||
|
'message' => $params['email-subject-message'],
|
||||||
|
'params' => $params['email-subject-params']
|
||||||
|
),
|
||||||
|
'body' => array(
|
||||||
|
'message' => $params['email-body-message'],
|
||||||
|
'params' => $params['email-body-params']
|
||||||
|
),
|
||||||
|
'batch-body' => array(
|
||||||
|
'message' => $params['email-body-batch-message'],
|
||||||
|
'params' => $params['email-body-batch-params']
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
$this->email = array();
|
// Notification icon for the event type
|
||||||
if ( isset( $params['email-subject-message'] ) ) {
|
$this->icon = $params['icon'];
|
||||||
$this->email['subject'] = array();
|
|
||||||
$this->email['subject']['message'] = $params['email-subject-message'];
|
|
||||||
|
|
||||||
if ( isset( $params['email-subject-params'] ) ) {
|
}
|
||||||
$this->email['subject']['params'] = $params['email-subject-params'];
|
|
||||||
} else {
|
|
||||||
$this->email['subject']['params'] = array();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$this->email = array(
|
|
||||||
'subject' => array(
|
|
||||||
'message' => 'echo-email-subject-default',
|
|
||||||
'params' => array(),
|
|
||||||
),
|
|
||||||
'body' => array(
|
|
||||||
'message' => 'echo-email-body-default',
|
|
||||||
'params' => array(
|
|
||||||
'text-notification',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( isset( $params['email-body-message'] ) ) {
|
|
||||||
$this->email['body'] = array();
|
|
||||||
$this->email['body']['message'] = $params['email-body-message'];
|
|
||||||
|
|
||||||
if ( isset( $params['email-body-params'] ) ) {
|
|
||||||
$this->email['body']['params'] = $params['email-body-params'];
|
|
||||||
} else {
|
|
||||||
$this->email['body']['params'] = array( 'text-notification' );
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$this->email['body'] = array(
|
|
||||||
'message' => 'echo-email-body-default',
|
|
||||||
'params' => array(
|
|
||||||
'text-notification',
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->email['batch-body'] = array();
|
|
||||||
if ( isset( $params['email-body-batch-message'] ) ) {
|
|
||||||
$this->email['batch-body']['message'] = $params['email-body-batch-message'];
|
|
||||||
if ( isset( $params['email-body-batch-params'] ) ) {
|
|
||||||
$this->email['batch-body']['params'] = $params['email-body-batch-params'];
|
|
||||||
} else {
|
|
||||||
$this->email['batch-body']['params'] = array();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$this->email['batch-body'] = $this->email['body'];
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( isset( $params['icon'] ) ) {
|
|
||||||
$this->icon = $params['icon'];
|
|
||||||
} else {
|
|
||||||
$this->icon = 'placeholder';
|
|
||||||
}
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Internal function that returns notification default params
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
protected function getDefaultParams() {
|
||||||
|
return array(
|
||||||
|
'flyout-message' => $this->title['message'],
|
||||||
|
'flyout-params' => $this->title['params'],
|
||||||
|
'bundle-message' => '',
|
||||||
|
'bundle-params' => array(),
|
||||||
|
'payload' => array(),
|
||||||
|
'email-subject-message' => 'echo-email-subject-default',
|
||||||
|
'email-subject-params' => array(),
|
||||||
|
'email-body-message' => 'echo-email-body-default',
|
||||||
|
'email-body-params' => array( 'text-notification' ),
|
||||||
|
'email-body-batch-message' => 'echo-email-batch-body-default',
|
||||||
|
'email-body-batch-params' => array(),
|
||||||
|
'icon' => 'placeholder'
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in a new issue