diff --git a/plugins/acl/acl.php b/plugins/acl/acl.php
index 451edad4c..d1ec4f6c5 100644
--- a/plugins/acl/acl.php
+++ b/plugins/acl/acl.php
@@ -597,7 +597,7 @@ class acl extends rcube_plugin
$out = $this->list_rights();
- $out = preg_replace(array('/^
]+>/', '/<\/table>$/'), '', $out);
+ $out = preg_replace(['/^]+>/', '/<\/table>$/'], '', $out);
$this->rc->output->command('acl_list_update', $out);
}
diff --git a/plugins/additional_message_headers/additional_message_headers.php b/plugins/additional_message_headers/additional_message_headers.php
index 1861aa319..b20f9bc0d 100644
--- a/plugins/additional_message_headers/additional_message_headers.php
+++ b/plugins/additional_message_headers/additional_message_headers.php
@@ -7,7 +7,7 @@
* to or remove them from outgoing messages.
*
* Enable the plugin in config.inc.php and add your desired headers:
- * $config['additional_message_headers'] = array('User-Agent' => 'My-Very-Own-Webmail');
+ * $config['additional_message_headers'] = ['User-Agent' => 'My-Very-Own-Webmail'];
*
* @author Ziba Scott
* @website http://roundcube.net
diff --git a/plugins/attachment_reminder/localization/en_US.inc b/plugins/attachment_reminder/localization/en_US.inc
index b1fdc9e37..17e775968 100644
--- a/plugins/attachment_reminder/localization/en_US.inc
+++ b/plugins/attachment_reminder/localization/en_US.inc
@@ -13,7 +13,6 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/
*/
-$messages = array();
$messages['missingattachment'] = "Missing attachment?";
$messages['forgotattachment'] = "Did you forget to attach a file?";
$messages['reminderoption'] = "Remind about forgotten attachments";
diff --git a/plugins/enigma/enigma.php b/plugins/enigma/enigma.php
index 504432eef..19f60bedd 100644
--- a/plugins/enigma/enigma.php
+++ b/plugins/enigma/enigma.php
@@ -78,7 +78,7 @@ class enigma extends rcube_plugin
// register handler for keys/certs management
$this->register_action('plugin.enigmakeys', [$this, 'preferences_ui']);
-// $this->register_action('plugin.enigmacerts', array($this, 'preferences_ui'));
+// $this->register_action('plugin.enigmacerts', [$this, 'preferences_ui']);
$this->load_ui();
@@ -371,7 +371,7 @@ class enigma extends rcube_plugin
$field_id = 'rcmfd_enigma_password_time';
$select = new html_select(['name' => '_enigma_password_time', 'id' => $field_id, 'class' => 'custom-select']);
- foreach (array(1, 5, 10, 15, 30) as $m) {
+ foreach ([1, 5, 10, 15, 30] as $m) {
$label = $this->gettext(['name' => 'nminutes', 'vars' => ['m' => $m]]);
$select->add($label, $m);
}
diff --git a/plugins/enigma/lib/enigma_driver_gnupg.php b/plugins/enigma/lib/enigma_driver_gnupg.php
index def197639..1c14946e5 100644
--- a/plugins/enigma/lib/enigma_driver_gnupg.php
+++ b/plugins/enigma/lib/enigma_driver_gnupg.php
@@ -700,7 +700,7 @@ class enigma_driver_gnupg extends enigma_driver
}
$unique = ['user_id' => $this->rc->user->ID, 'context' => 'enigma', 'filename' => $filename];
- $result = $db->insert_or_update($table, $unique, array('mtime', 'data'), array($mtime, $data));
+ $result = $db->insert_or_update($table, $unique, ['mtime', 'data'], [$mtime, $data]);
if ($db->is_error($result)) {
rcube::raise_error([
diff --git a/plugins/enigma/lib/enigma_ui.php b/plugins/enigma/lib/enigma_ui.php
index 74f39bb28..d5438280a 100644
--- a/plugins/enigma/lib/enigma_ui.php
+++ b/plugins/enigma/lib/enigma_ui.php
@@ -1200,7 +1200,7 @@ class enigma_ui
if ($mode && ($status instanceof enigma_error)) {
$code = $status->getCode();
- $vars = array();
+ $vars = [];
if ($code == enigma_error::KEYNOTFOUND) {
if ($email = $status->getData('missing')) {
diff --git a/plugins/krb_authentication/config.inc.php.dist b/plugins/krb_authentication/config.inc.php.dist
index 975cacb85..b1c1ffb9e 100644
--- a/plugins/krb_authentication/config.inc.php.dist
+++ b/plugins/krb_authentication/config.inc.php.dist
@@ -12,9 +12,9 @@ $config['krb_authentication_host'] = '';
// GSSAPI security context.
// Single value or an array with per-protocol values. Example:
//
-// $config['krb_authentication_context'] = array(
+// $config['krb_authentication_context'] = [
// 'imap' => 'imap/host.fqdn@REALM.NAME',
// 'smtp' => 'smtp/host.fqdn@REALM.NAME',
// 'sieve' => 'sieve/host.fqdn@REALM.NAME',
-// );
+// ];
$config['krb_authentication_context'] = 'principal@REALM.NAME';
diff --git a/plugins/markasjunk/drivers/cmd_learn.php b/plugins/markasjunk/drivers/cmd_learn.php
index 4d81c536a..83ee0abae 100644
--- a/plugins/markasjunk/drivers/cmd_learn.php
+++ b/plugins/markasjunk/drivers/cmd_learn.php
@@ -76,7 +76,7 @@ class markasjunk_cmd_learn
preg_match_all('/%h:([\w_-]+)/', $tmp_command, $header_names, PREG_SET_ORDER);
foreach ($header_names as $header) {
$val = null;
- if ($msg = $storage->conn->fetchHeader($src_mbox, $uid, true, false, array($header[1]))) {
+ if ($msg = $storage->conn->fetchHeader($src_mbox, $uid, true, false, [$header[1]])) {
$val = !empty($msg->{$header[1]}) ? $msg->{$header[1]} : $msg->others[$header[1]];
}
diff --git a/plugins/password/drivers/cpanel_webmail.php b/plugins/password/drivers/cpanel_webmail.php
index d08170c26..47e5896f5 100644
--- a/plugins/password/drivers/cpanel_webmail.php
+++ b/plugins/password/drivers/cpanel_webmail.php
@@ -105,10 +105,10 @@ class rcube_cpanel_webmail_password
* Example:
*
*
- * curl_auth_post('john:Secr3t', 'https://example.org', array(
+ * curl_auth_post('john:Secr3t', 'https://example.org', [
* 'param' => 'value',
* 'param' => 'value'
- * ));
+ * ]);
*
*
* @param string $userpwd user name and password separated by a colon
diff --git a/plugins/password/drivers/pwned.php b/plugins/password/drivers/pwned.php
index 0152bd453..2624fbd67 100644
--- a/plugins/password/drivers/pwned.php
+++ b/plugins/password/drivers/pwned.php
@@ -176,7 +176,7 @@ class rcube_pwned_password
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if (self::ENHANCED_PRIVACY_CURL == 1) {
- curl_setopt($ch, CURLOPT_HTTPHEADER, array('Add-Padding: true'));
+ curl_setopt($ch, CURLOPT_HTTPHEADER, ['Add-Padding: true']);
}
$output = curl_exec($ch);
curl_close($ch);
diff --git a/plugins/redundant_attachments/redundant_attachments.php b/plugins/redundant_attachments/redundant_attachments.php
index 172bc8914..783c235d7 100644
--- a/plugins/redundant_attachments/redundant_attachments.php
+++ b/plugins/redundant_attachments/redundant_attachments.php
@@ -91,7 +91,8 @@ class redundant_attachments extends filesystem_attachments
*/
private function _key($args)
{
- $uname = $args['path'] ?: $args['name'];
+ $uname = !empty($args['path']) ? $args['path'] : $args['name'];
+
return $args['group'] . md5(microtime() . $uname . $_SESSION['user_id']);
}
@@ -130,7 +131,7 @@ class redundant_attachments extends filesystem_attachments
$this->_load_drivers();
- $data = $args['path'] ? file_get_contents($args['path']) : $args['data'];
+ $data = !empty($args['path']) ? file_get_contents($args['path']) : $args['data'];
$args['data'] = null;
@@ -193,8 +194,9 @@ class redundant_attachments extends filesystem_attachments
// attempt to get file from local file system
$args = parent::get($args);
- if ($args['path'] && ($args['status'] = file_exists($args['path'])))
- return $args;
+ if (!empty($args['path']) && ($args['status'] = file_exists($args['path']))) {
+ return $args;
+ }
$this->_load_drivers();
diff --git a/plugins/show_additional_headers/show_additional_headers.php b/plugins/show_additional_headers/show_additional_headers.php
index 87de51fca..1a48f8b76 100644
--- a/plugins/show_additional_headers/show_additional_headers.php
+++ b/plugins/show_additional_headers/show_additional_headers.php
@@ -7,44 +7,50 @@
* and display them in the message view.
*
* Enable the plugin in config.inc.php and add your desired headers:
- * $config['show_additional_headers'] = array('User-Agent');
+ * $config['show_additional_headers'] = ['User-Agent'];
*
* @author Thomas Bruederli
* @license GNU GPLv3+
*/
class show_additional_headers extends rcube_plugin
{
- public $task = 'mail';
+ public $task = 'mail';
- function init()
- {
- $rcmail = rcmail::get_instance();
- if ($rcmail->action == 'show' || $rcmail->action == 'preview') {
- $this->add_hook('storage_init', array($this, 'storage_init'));
- $this->add_hook('message_headers_output', array($this, 'message_headers'));
- } else if ($rcmail->action == '') {
- // with enabled_caching we're fetching additional headers before show/preview
- $this->add_hook('storage_init', array($this, 'storage_init'));
- }
- }
+ function init()
+ {
+ $rcmail = rcmail::get_instance();
- function storage_init($p)
- {
- $rcmail = rcmail::get_instance();
- if ($add_headers = (array)$rcmail->config->get('show_additional_headers', array()))
- $p['fetch_headers'] = trim($p['fetch_headers'].' ' . strtoupper(join(' ', $add_headers)));
-
- return $p;
- }
-
- function message_headers($p)
- {
- $rcmail = rcmail::get_instance();
- foreach ((array)$rcmail->config->get('show_additional_headers', array()) as $header) {
- if ($value = $p['headers']->get($header))
- $p['output'][$header] = array('title' => $header, 'value' => $value);
+ if ($rcmail->action == 'show' || $rcmail->action == 'preview') {
+ $this->add_hook('storage_init', [$this, 'storage_init']);
+ $this->add_hook('message_headers_output', [$this, 'message_headers']);
+ }
+ else if ($rcmail->action == '') {
+ // with enabled_caching we're fetching additional headers before show/preview
+ $this->add_hook('storage_init', [$this, 'storage_init']);
+ }
}
- return $p;
- }
+ function storage_init($p)
+ {
+ $rcmail = rcmail::get_instance();
+
+ if ($add_headers = (array) $rcmail->config->get('show_additional_headers', [])) {
+ $p['fetch_headers'] = trim($p['fetch_headers']. ' ' . strtoupper(join(' ', $add_headers)));
+ }
+
+ return $p;
+ }
+
+ function message_headers($p)
+ {
+ $rcmail = rcmail::get_instance();
+
+ foreach ((array) $rcmail->config->get('show_additional_headers', []) as $header) {
+ if ($value = $p['headers']->get($header)) {
+ $p['output'][$header] = ['title' => $header, 'value' => $value];
+ }
+ }
+
+ return $p;
+ }
}
diff --git a/plugins/show_additional_headers/tests/ShowAdditionalHeaders.php b/plugins/show_additional_headers/tests/ShowAdditionalHeaders.php
index d2a84a709..36dbd74a1 100644
--- a/plugins/show_additional_headers/tests/ShowAdditionalHeaders.php
+++ b/plugins/show_additional_headers/tests/ShowAdditionalHeaders.php
@@ -20,4 +20,3 @@ class ShowAdditionalHeaders_Plugin extends PHPUnit\Framework\TestCase
$this->assertInstanceOf('rcube_plugin', $plugin);
}
}
-
diff --git a/plugins/squirrelmail_usercopy/squirrelmail_usercopy.php b/plugins/squirrelmail_usercopy/squirrelmail_usercopy.php
index d8bab8990..e4ba6ef4b 100644
--- a/plugins/squirrelmail_usercopy/squirrelmail_usercopy.php
+++ b/plugins/squirrelmail_usercopy/squirrelmail_usercopy.php
@@ -12,12 +12,12 @@ class squirrelmail_usercopy extends rcube_plugin
private $prefs = null;
private $identities_level = 0;
- private $abook = array();
+ private $abook = [];
public function init()
{
- $this->add_hook('user_create', array($this, 'create_user'));
- $this->add_hook('identity_create', array($this, 'create_identity'));
+ $this->add_hook('user_create', [$this, 'create_user']);
+ $this->add_hook('identity_create', [$this, 'create_identity']);
}
public function create_user($p)
@@ -29,9 +29,11 @@ class squirrelmail_usercopy extends rcube_plugin
// read prefs and add email address
$this->read_squirrel_prefs($p['user']);
- if (($this->identities_level == 0 || $this->identities_level == 2)
+
+ if (
+ ($this->identities_level == 0 || $this->identities_level == 2)
&& $rcmail->config->get('squirrelmail_set_alias')
- && $this->prefs['email_address']
+ && !empty($this->prefs['email_address'])
) {
$p['user_email'] = $this->prefs['email_address'];
}
@@ -45,45 +47,49 @@ class squirrelmail_usercopy extends rcube_plugin
// prefs are set in create_user()
if ($this->prefs) {
- if ($this->prefs['full_name']) {
+ if (!empty($this->prefs['full_name'])) {
$p['record']['name'] = $this->prefs['full_name'];
}
- if (($this->identities_level == 0 || $this->identities_level == 2) && $this->prefs['email_address']) {
+ if (
+ ($this->identities_level == 0 || $this->identities_level == 2)
+ && !empty($this->prefs['email_address'])
+ ) {
$p['record']['email'] = $this->prefs['email_address'];
}
- if ($this->prefs['___signature___']) {
+ if (!empty($this->prefs['___signature___'])) {
$p['record']['signature'] = $this->prefs['___signature___'];
}
- if ($this->prefs['reply_to']) {
+ if (!empty($this->prefs['reply_to'])) {
$p['record']['reply-to'] = $this->prefs['reply_to'];
}
- if (($this->identities_level == 0 || $this->identities_level == 1)
+ if (
+ ($this->identities_level == 0 || $this->identities_level == 1)
&& isset($this->prefs['identities']) && $this->prefs['identities'] > 1
) {
for ($i = 1; $i < $this->prefs['identities']; $i++) {
unset($ident_data);
- $ident_data = array('name' => '', 'email' => ''); // required data
+ $ident_data = ['name' => '', 'email' => '']; // required data
- if ($this->prefs['full_name'.$i]) {
+ if (!empty($this->prefs['full_name'.$i])) {
$ident_data['name'] = $this->prefs['full_name'.$i];
}
- if ($this->identities_level == 0 && $this->prefs['email_address'.$i]) {
+ if ($this->identities_level == 0 && !empty($this->prefs['email_address'.$i])) {
$ident_data['email'] = $this->prefs['email_address'.$i];
}
else {
$ident_data['email'] = $p['record']['email'];
}
- if ($this->prefs['reply_to'.$i]) {
+ if (!empty($this->prefs['reply_to'.$i])) {
$ident_data['reply-to'] = $this->prefs['reply_to'.$i];
}
- if ($this->prefs['___sig'.$i.'___']) {
+ if (!empty($this->prefs['___sig'.$i.'___'])) {
$ident_data['signature'] = $this->prefs['___sig'.$i.'___'];
}
@@ -94,8 +100,8 @@ class squirrelmail_usercopy extends rcube_plugin
// copy address book
$contacts = $rcmail->get_address_book(null, true);
- $addresses = array();
- $groups = array();
+ $addresses = [];
+ $groups = [];
if ($contacts && !empty($this->abook)) {
foreach ($this->abook as $rec) {
@@ -106,25 +112,31 @@ class squirrelmail_usercopy extends rcube_plugin
// create group for addresses
if (count($emails) > 1) {
- if (!($group_id = $groups[$rec['name']])) {
- if ($group = $contacts->create_group($rec['name'])) {
- $group_id = $group['id'];
- $groups[$rec['name']] = $group_id;
- }
+ if (!empty($groups[$rec['name']])) {
+ $group_id = $groups[$rec['name']];
+ }
+ else if ($group = $contacts->create_group($rec['name'])) {
+ $group_id = $group['id'];
+ $groups[$rec['name']] = $group_id;
}
}
// create contacts
foreach ($emails as $email) {
- if (!($contact_id = $addresses[$email]) && rcube_utils::check_email(rcube_utils::idn_to_ascii($email))) {
+ $contact_id = null;
+
+ if (!empty($addresses[$email])) {
+ $contact_id = $addresses[$email];
+ }
+ else if (rcube_utils::check_email(rcube_utils::idn_to_ascii($email))) {
$rec['email'] = rcube_utils::idn_to_utf8($email);
if ($contact_id = $contacts->insert($rec, true)) {
$addresses[$email] = $contact_id;
}
}
- if ($group_id && $contact_id) {
- $contacts->add_to_group($group_id, array($contact_id));
+ if (!empty($group_id) && !empty($contact_id)) {
+ $contacts->add_to_group($group_id, [$contact_id]);
}
}
}
@@ -169,9 +181,9 @@ class squirrelmail_usercopy extends rcube_plugin
$sigbase = slashify($srcdir) . $uname . '.si';
if (is_readable($prefsfile)) {
- $this->prefs = array();
+ $this->prefs = [];
foreach (file($prefsfile) as $line) {
- list($key, $value) = explode('=', $line);
+ list($key, $value) = rcube_utils::explode('=', $line);
$this->prefs[$key] = $this->convert_charset(rtrim($value), $file_charset);
}
@@ -193,19 +205,17 @@ class squirrelmail_usercopy extends rcube_plugin
// parse address book file
if (filesize($abookfile)) {
-
foreach (file($abookfile) as $line) {
-
$line = $this->convert_charset(rtrim($line), $file_charset);
$line = str_getcsv($line, "|");
- $rec = array(
+ $rec = [
'name' => $line[0],
'firstname' => $line[1],
'surname' => $line[2],
'email' => $line[3],
'notes' => $line[4],
- );
+ ];
if ($rec['name'] && $rec['email']) {
$this->abook[] = $rec;
@@ -215,8 +225,8 @@ class squirrelmail_usercopy extends rcube_plugin
}
}
// Database backend
- else if ($rcmail->config->get('squirrelmail_driver') == 'sql') {
- $this->prefs = array();
+ else if ($rcmail->config->get('squirrelmail_driver') == 'sql') {
+ $this->prefs = [];
// connect to squirrelmail database
$db = rcube_db::factory($rcmail->config->get('squirrelmail_dsn'));
@@ -230,7 +240,7 @@ class squirrelmail_usercopy extends rcube_plugin
$db_charset = $rcmail->config->get('squirrelmail_db_charset');
if ($db_charset) {
- $db->query('SET NAMES '.$db_charset);
+ $db->query('SET NAMES ' . $db_charset);
}
$sql_result = $db->query('SELECT * FROM ' . $db->quote_identifier($userprefs_table)
diff --git a/plugins/squirrelmail_usercopy/tests/SquirrelmailUsercopy.php b/plugins/squirrelmail_usercopy/tests/SquirrelmailUsercopy.php
index f7929af8e..96aa578b2 100644
--- a/plugins/squirrelmail_usercopy/tests/SquirrelmailUsercopy.php
+++ b/plugins/squirrelmail_usercopy/tests/SquirrelmailUsercopy.php
@@ -20,4 +20,3 @@ class SquirrelmailUsercopy_Plugin extends PHPUnit\Framework\TestCase
$this->assertInstanceOf('rcube_plugin', $plugin);
}
}
-
diff --git a/plugins/subscriptions_option/localization/en_US.inc b/plugins/subscriptions_option/localization/en_US.inc
index f4008f8d6..85d624038 100644
--- a/plugins/subscriptions_option/localization/en_US.inc
+++ b/plugins/subscriptions_option/localization/en_US.inc
@@ -14,5 +14,4 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-subscriptions_option/
*/
-$labels = array();
$labels['useimapsubscriptions'] = 'Use IMAP Subscriptions';
diff --git a/plugins/subscriptions_option/subscriptions_option.php b/plugins/subscriptions_option/subscriptions_option.php
index 06e72e78a..64b7446cd 100644
--- a/plugins/subscriptions_option/subscriptions_option.php
+++ b/plugins/subscriptions_option/subscriptions_option.php
@@ -10,7 +10,7 @@
* Add it to the plugins list in config.inc.php to enable the user option
* The user option can be hidden and set globally by adding 'use_subscriptions'
* to the 'dont_override' configure line:
- * $config['dont_override'] = array('use_subscriptions');
+ * $config['dont_override'] = ['use_subscriptions'];
* and then set the global preference
* $config['use_subscriptions'] = true; // or false
*
@@ -26,35 +26,54 @@ class subscriptions_option extends rcube_plugin
{
public $task = 'mail|settings';
+ /**
+ * Plugin initialization
+ */
function init()
{
- $dont_override = rcmail::get_instance()->config->get('dont_override', array());
+ $dont_override = rcmail::get_instance()->config->get('dont_override', []);
+
if (!in_array('use_subscriptions', $dont_override)) {
- $this->add_hook('preferences_list', array($this, 'settings_blocks'));
- $this->add_hook('preferences_save', array($this, 'save_prefs'));
+ $this->add_hook('preferences_list', [$this, 'prefs_list']);
+ $this->add_hook('preferences_save', [$this, 'prefs_save']);
}
- $this->add_hook('storage_folders', array($this, 'mailboxes_list'));
- $this->add_hook('folders_list', array($this, 'folders_list'));
+
+ $this->add_hook('storage_folders', [$this, 'mailboxes_list']);
+ $this->add_hook('folders_list', [$this, 'folders_list']);
}
- function settings_blocks($args)
+ /**
+ * Hook to inject plugin-specific user settings
+ *
+ * @param array $args Hook arguments
+ *
+ * @return array Modified hook arguments
+ */
+ function prefs_list($args)
{
if ($args['section'] == 'server') {
$this->add_texts('localization/', false);
$use_subscriptions = rcmail::get_instance()->config->get('use_subscriptions', true);
$field_id = 'rcmfd_use_subscriptions';
- $checkbox = new html_checkbox(array('name' => '_use_subscriptions', 'id' => $field_id, 'value' => 1));
+ $checkbox = new html_checkbox(['name' => '_use_subscriptions', 'id' => $field_id, 'value' => 1]);
- $args['blocks']['main']['options']['use_subscriptions'] = array(
- 'title' => html::label($field_id, rcube::Q($this->gettext('useimapsubscriptions'))),
- 'content' => $checkbox->show($use_subscriptions?1:0),
- );
+ $args['blocks']['main']['options']['use_subscriptions'] = [
+ 'title' => html::label($field_id, rcube::Q($this->gettext('useimapsubscriptions'))),
+ 'content' => $checkbox->show($use_subscriptions ? 1 : 0),
+ ];
}
return $args;
}
- function save_prefs($args)
+ /**
+ * Hook to save plugin-specific user settings
+ *
+ * @param array $args Hook arguments
+ *
+ * @return array Modified hook arguments
+ */
+ function prefs_save($args)
{
if ($args['section'] == 'server') {
$rcmail = rcmail::get_instance();
@@ -63,10 +82,12 @@ class subscriptions_option extends rcube_plugin
$args['prefs']['use_subscriptions'] = isset($_POST['_use_subscriptions']);
// if the use_subscriptions preference changes, flush the folder cache
- if (($use_subscriptions && !isset($_POST['_use_subscriptions'])) ||
- (!$use_subscriptions && isset($_POST['_use_subscriptions']))) {
- $storage = $rcmail->get_storage();
- $storage->clear_cache('mailboxes');
+ if (
+ ($use_subscriptions && !isset($_POST['_use_subscriptions']))
+ || (!$use_subscriptions && isset($_POST['_use_subscriptions']))
+ ) {
+ $storage = $rcmail->get_storage();
+ $storage->clear_cache('mailboxes');
}
}
diff --git a/plugins/subscriptions_option/tests/SubscriptionsOption.php b/plugins/subscriptions_option/tests/SubscriptionsOption.php
index bbb573fda..a293d1bc0 100644
--- a/plugins/subscriptions_option/tests/SubscriptionsOption.php
+++ b/plugins/subscriptions_option/tests/SubscriptionsOption.php
@@ -1,6 +1,6 @@
assertInstanceOf('subscriptions_option', $plugin);
$this->assertInstanceOf('rcube_plugin', $plugin);
}
-}
+ /**
+ * Test prefs_list() method
+ */
+ function test_prefs_list()
+ {
+ $rcube = rcube::get_instance();
+ $plugin = new subscriptions_option($rcube->plugins);
+
+ html::$doctype = 'html5';
+
+ $args = ['section' => 'server', 'blocks' => ['main' => ['options' => []]]];
+
+ $result = $plugin->prefs_list($args);
+
+ $this->assertSame(
+ '',
+ $result['blocks']['main']['options']['use_subscriptions']['title']
+ );
+
+ $this->assertSame(
+ '',
+ $result['blocks']['main']['options']['use_subscriptions']['content']
+ );
+ }
+
+ /**
+ * Test prefs_save() method
+ */
+ function test_prefs_save()
+ {
+ self::initStorage();
+
+ $rcube = rcube::get_instance();
+ $plugin = new subscriptions_option($rcube->plugins);
+
+ $_POST = ['_use_subscriptions' => 1];
+ $args = ['section' => 'server', 'prefs' => []];
+
+ $result = $plugin->prefs_save($args);
+
+ $this->assertSame(true, $result['prefs']['use_subscriptions']);
+
+ $storage = $rcube->storage;
+ $storage->registerFunction('clear_cache', true);
+
+ $_POST = [];
+ $args = ['section' => 'server', 'prefs' => []];
+
+ $result = $plugin->prefs_save($args);
+
+ $this->assertSame(false, $result['prefs']['use_subscriptions']);
+ $this->assertCount(1, $storage->methodCalls);
+ $this->assertSame('clear_cache', $storage->methodCalls[0]['name']);
+ $this->assertSame(['mailboxes'], $storage->methodCalls[0]['args']);
+ }
+}
diff --git a/plugins/userinfo/localization/en_US.inc b/plugins/userinfo/localization/en_US.inc
index 070a9e3db..86b5e8ac7 100644
--- a/plugins/userinfo/localization/en_US.inc
+++ b/plugins/userinfo/localization/en_US.inc
@@ -14,7 +14,6 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-userinfo/
*/
-$labels = array();
$labels['userinfo'] = 'User info';
$labels['infoforuser'] = 'Info for $user';
$labels['created'] = 'Created';
diff --git a/plugins/userinfo/userinfo.php b/plugins/userinfo/userinfo.php
index b801e6415..41125d0b2 100644
--- a/plugins/userinfo/userinfo.php
+++ b/plugins/userinfo/userinfo.php
@@ -12,26 +12,26 @@ class userinfo extends rcube_plugin
function init()
{
- $this->add_texts('localization/', array('userinfo'));
- $this->add_hook('settings_actions', array($this, 'settings_actions'));
- $this->register_action('plugin.userinfo', array($this, 'infostep'));
+ $this->add_texts('localization/', ['userinfo']);
+ $this->add_hook('settings_actions', [$this, 'settings_actions']);
+ $this->register_action('plugin.userinfo', [$this, 'infostep']);
}
function settings_actions($args)
{
- $args['actions'][] = array(
+ $args['actions'][] = [
'action' => 'plugin.userinfo',
'class' => 'userinfo',
'label' => 'userinfo',
'domain' => 'userinfo',
- );
+ ];
return $args;
}
function infostep()
{
- $this->register_handler('plugin.body', array($this, 'infohtml'));
+ $this->register_handler('plugin.body', [$this, 'infohtml']);
$rcmail = rcmail::get_instance();
$rcmail->output->set_pagetitle($this->gettext('userinfo'));
@@ -44,7 +44,7 @@ class userinfo extends rcube_plugin
$user = $rcmail->user;
$identity = $user->get_identity();
- $table = new html_table(array('cols' => 2, 'class' => 'propform'));
+ $table = new html_table(['cols' => 2, 'class' => 'propform']);
$table->add('title', html::label('', rcube::Q($this->gettext('userid'))));
$table->add('', rcube::Q($user->ID));
@@ -64,11 +64,12 @@ class userinfo extends rcube_plugin
$table->add('title', html::label('', rcube::Q($this->gettext('defaultidentity'))));
$table->add('', rcube::Q($identity['name'] . ' <' . $identity['email'] . '>'));
- $legend = rcube::Q($this->gettext(array('name' => 'infoforuser', 'vars' => array('user' => $user->get_username()))));
+ $legend = rcube::Q($this->gettext(['name' => 'infoforuser', 'vars' => ['user' => $user->get_username()]]));
$out = html::tag('fieldset', '', html::tag('legend', '', $legend) . $table->show());
- return html::div(array('class' => 'box formcontent'),
- html::div(array('class' => 'boxtitle'), $this->gettext('userinfo'))
- . html::div(array('class' => 'boxcontent'), $out));
+ return html::div(['class' => 'box formcontent'],
+ html::div(['class' => 'boxtitle'], $this->gettext('userinfo'))
+ . html::div(['class' => 'boxcontent'], $out)
+ );
}
}
diff --git a/plugins/vcard_attachments/localization/en_US.inc b/plugins/vcard_attachments/localization/en_US.inc
index e891776a0..d3f3fa019 100644
--- a/plugins/vcard_attachments/localization/en_US.inc
+++ b/plugins/vcard_attachments/localization/en_US.inc
@@ -14,7 +14,6 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-vcard_attachments/
*/
-$labels = array();
$labels['addvcardmsg'] = 'Add vCard to addressbook';
$labels['vcardsavefailed'] = 'Unable to save vCard';
$labels['attachvcard'] = 'Attach vCard';
diff --git a/plugins/vcard_attachments/tests/VcardAttachments.php b/plugins/vcard_attachments/tests/VcardAttachments.php
index 7dde2f224..d51a65ca2 100644
--- a/plugins/vcard_attachments/tests/VcardAttachments.php
+++ b/plugins/vcard_attachments/tests/VcardAttachments.php
@@ -19,5 +19,32 @@ class VcardAttachments_Plugin extends PHPUnit\Framework\TestCase
$this->assertInstanceOf('vcard_attachments', $plugin);
$this->assertInstanceOf('rcube_plugin', $plugin);
}
-}
+ /**
+ * Test is_vcard()
+ */
+ function test_is_vcard()
+ {
+ $rcube = rcube::get_instance();
+ $plugin = new vcard_attachments($rcube->plugins);
+
+ $part = new rcube_message_part();
+ $this->assertFalse(invokeMethod($plugin, 'is_vcard', [$part]));
+
+ $part->mimetype = 'text/vcard';
+ $this->assertTrue(invokeMethod($plugin, 'is_vcard', [$part]));
+
+ $part->mimetype = 'text/x-vcard';
+ $this->assertTrue(invokeMethod($plugin, 'is_vcard', [$part]));
+
+ $part->mimetype = 'text/directory';
+ $this->assertFalse(invokeMethod($plugin, 'is_vcard', [$part]));
+
+ $part->ctype_parameters['profile'] = 'vcard';
+ $this->assertTrue(invokeMethod($plugin, 'is_vcard', [$part]));
+
+ $part->ctype_parameters['profile'] = 'unknown';
+ $part->filename = 'vcard.vcf';
+ $this->assertTrue(invokeMethod($plugin, 'is_vcard', [$part]));
+ }
+}
diff --git a/plugins/vcard_attachments/vcard_attachments.php b/plugins/vcard_attachments/vcard_attachments.php
index fa8571611..dff39cd18 100644
--- a/plugins/vcard_attachments/vcard_attachments.php
+++ b/plugins/vcard_attachments/vcard_attachments.php
@@ -13,9 +13,12 @@ class vcard_attachments extends rcube_plugin
private $abook;
private $message;
- private $vcard_parts = array();
- private $vcard_bodies = array();
+ private $vcard_parts = [];
+ private $vcard_bodies = [];
+ /**
+ * Plugin initialization
+ */
function init()
{
$rcmail = rcmail::get_instance();
@@ -25,25 +28,25 @@ class vcard_attachments extends rcube_plugin
$this->add_texts('localization', !$rcmail->output->ajax_call);
$this->include_stylesheet($skin_path . '/style.css');
$this->include_script('vcardattach.js');
- $this->add_button(
- array(
+ $this->add_button([
'type' => 'link-menuitem',
'label' => 'vcard_attachments.forwardvcard',
'command' => 'attach-vcard',
'class' => 'icon vcard',
'classact' => 'icon vcard active',
'innerclass' => 'icon vcard',
- ),
- 'contactmenu');
+ ],
+ 'contactmenu'
+ );
}
else {
if ($rcmail->action == 'show' || $rcmail->action == 'preview') {
- $this->add_hook('message_load', array($this, 'message_load'));
- $this->add_hook('message_objects', array($this, 'message_objects'));
- $this->add_hook('template_object_messagebody', array($this, 'html_output'));
+ $this->add_hook('message_load', [$this, 'message_load']);
+ $this->add_hook('message_objects', [$this, 'message_objects']);
+ $this->add_hook('template_object_messagebody', [$this, 'html_output']);
}
else if ($rcmail->action == 'upload') {
- $this->add_hook('attachment_from_uri', array($this, 'attach_vcard'));
+ $this->add_hook('attachment_from_uri', [$this, 'attach_vcard']);
}
else if ($rcmail->action == 'compose' && !$rcmail->output->framed) {
$skin_path = $this->local_skin_path();
@@ -52,8 +55,7 @@ class vcard_attachments extends rcube_plugin
$this->add_texts('localization', true);
$this->include_stylesheet($skin_path . '/style.css');
$this->include_script('vcardattach.js');
- $this->add_button(
- array(
+ $this->add_button([
'type' => 'link',
'label' => 'vcard_attachments.vcard',
'command' => 'attach-vcard',
@@ -61,10 +63,11 @@ class vcard_attachments extends rcube_plugin
'classact' => $btn_class . ' vcard',
'title' => 'vcard_attachments.attachvcard',
'innerclass' => 'inner',
- ),
- 'compose-contacts-toolbar');
+ ],
+ 'compose-contacts-toolbar'
+ );
- $this->add_hook('message_compose', array($this, 'message_compose'));
+ $this->add_hook('message_compose', [$this, 'message_compose']);
}
else if (!$rcmail->output->framed && (!$rcmail->action || $rcmail->action == 'list')) {
$skin_path = $this->local_skin_path();
@@ -73,7 +76,7 @@ class vcard_attachments extends rcube_plugin
}
}
- $this->register_action('plugin.savevcard', array($this, 'save_vcard'));
+ $this->register_action('plugin.savevcard', [$this, 'save_vcard']);
}
/**
@@ -129,13 +132,14 @@ class vcard_attachments extends rcube_plugin
$vid = rcube::JQ($part.':'.$idx);
// add box below message body
- $p['content'][] = html::p(array('class' => 'vcardattachment aligned-buttons boxinformation'),
- html::span(null, rcube::Q($display)) .
- html::tag('button', array(
+ $p['content'][] = html::p(['class' => 'vcardattachment aligned-buttons boxinformation'],
+ html::span(null, rcube::Q($display))
+ . html::tag('button', [
'onclick' => "return plugin_vcard_save_contact('$vid')",
'title' => $this->gettext('addvcardmsg'),
'class' => 'import',
- ), rcube::Q($rcmail->gettext('import')))
+ ], rcube::Q($rcmail->gettext('import'))
+ )
);
}
@@ -155,8 +159,11 @@ class vcard_attachments extends rcube_plugin
*/
function message_compose($p)
{
- if (rcube_utils::get_input_value('_attach_vcard', rcube_utils::INPUT_GET) == '1' && ($uri = rcube_utils::get_input_value('_uri', rcube_utils::INPUT_GET))) {
- if ($attachment = $this->attach_vcard(array('compose_id' => $p['compose_id'], 'uri' => $uri))) {
+ if (
+ rcube_utils::get_input_value('_attach_vcard', rcube_utils::INPUT_GET) == '1'
+ && ($uri = rcube_utils::get_input_value('_uri', rcube_utils::INPUT_GET))
+ ) {
+ if ($attachment = $this->attach_vcard(['compose_id' => $p['compose_id'], 'uri' => $uri])) {
$p['attachments'][] = $attachment;
};
}
@@ -195,7 +202,7 @@ class vcard_attachments extends rcube_plugin
$message = new rcube_message($uid, $mbox);
if ($uid && $mime_id) {
- list($mime_id, $index) = explode(':', $mime_id);
+ list($mime_id, $index) = rcube_utils::explode(':', $mime_id);
$part = $message->get_part_content($mime_id, null, true);
}
@@ -220,6 +227,7 @@ class vcard_attachments extends rcube_plugin
// compare e-mail address
$existing = $CONTACTS->search('email', $email, 1, false);
+
// compare display name
if (!$existing->count && $vcard->displayname) {
$existing = $CONTACTS->search('name', $vcard->displayname, 1, false);
@@ -232,7 +240,7 @@ class vcard_attachments extends rcube_plugin
}
if ($valid) {
- $plugin = $rcmail->plugins->exec_hook('contact_create', array('record' => $contact, 'source' => null));
+ $plugin = $rcmail->plugins->exec_hook('contact_create', ['record' => $contact, 'source' => null]);
$contact = $plugin['record'];
if (!$plugin['abort'] && $CONTACTS->insert($contact))
@@ -253,9 +261,9 @@ class vcard_attachments extends rcube_plugin
*
* @param rcube_message_part Part object
*
- * @return boolean True if part is of type vcard
+ * @return bool True if part is of type vcard
*/
- function is_vcard($part)
+ private static function is_vcard($part)
{
return (
// Content-Type: text/vcard;
@@ -264,10 +272,9 @@ class vcard_attachments extends rcube_plugin
$part->mimetype == 'text/x-vcard' ||
// Content-Type: text/directory; profile=vCard;
($part->mimetype == 'text/directory' && (
- ($part->ctype_parameters['profile'] &&
- strtolower($part->ctype_parameters['profile']) == 'vcard')
+ (!empty($part->ctype_parameters['profile']) && strtolower($part->ctype_parameters['profile']) == 'vcard')
// Content-Type: text/directory; (with filename=*.vcf)
- || ($part->filename && preg_match('/\.vcf$/i', $part->filename))
+ || (!empty($part->filename) && preg_match('/\.vcf$/i', $part->filename))
)
)
);
@@ -305,13 +312,14 @@ class vcard_attachments extends rcube_plugin
if (preg_match('|^vcard://(.+)$|', $args['uri'], $m)) {
list($source, $cid, $email) = explode('-', $m[1]);
- $vcard = $this->get_contact_vcard($source, $cid, $filename);
- $params = array(
- 'filename' => $filename,
- 'mimetype' => 'text/vcard',
- );
+ $vcard = $this->get_contact_vcard($source, $cid, $filename);
if ($vcard) {
+ $params = [
+ 'filename' => $filename,
+ 'mimetype' => 'text/vcard',
+ ];
+
$args['attachment'] = rcmail_action_mail_compose::save_attachment($vcard, null, $args['compose_id'], $params);
}
}
@@ -336,11 +344,11 @@ class vcard_attachments extends rcube_plugin
$vcard->reset();
foreach ($contact as $key => $values) {
- list($field, $section) = explode(':', $key);
+ list($field, $section) = rcube_utils::explode(':', $key);
// avoid unwanted casting of DateTime objects to an array
// (same as in rcube_contacts::convert_save_data())
if (is_object($values) && is_a($values, 'DateTime')) {
- $values = array($values);
+ $values = [$values];
}
foreach ((array) $values as $value) {
diff --git a/plugins/virtuser_file/virtuser_file.php b/plugins/virtuser_file/virtuser_file.php
index 2d78717a5..9b815acce 100644
--- a/plugins/virtuser_file/virtuser_file.php
+++ b/plugins/virtuser_file/virtuser_file.php
@@ -16,14 +16,17 @@ class virtuser_file extends rcube_plugin
private $file;
private $app;
+ /**
+ * Plugin initialization
+ */
function init()
{
- $this->app = rcmail::get_instance();
+ $this->app = rcmail::get_instance();
$this->file = $this->app->config->get('virtuser_file');
if ($this->file) {
- $this->add_hook('user2email', array($this, 'user2email'));
- $this->add_hook('email2user', array($this, 'email2user'));
+ $this->add_hook('user2email', [$this, 'user2email']);
+ $this->add_hook('email2user', [$this, 'email2user']);
}
}
@@ -33,7 +36,7 @@ class virtuser_file extends rcube_plugin
function user2email($p)
{
$r = $this->findinvirtual('/\s' . preg_quote($p['user'], '/') . '\s*$/');
- $result = array();
+ $result = [];
for ($i=0; $i 0 && strpos($arr[0], '@')) {
$result[] = rcube_utils::idn_to_ascii(trim(str_replace('\\@', '@', $arr[0])));
- if ($p['first']) {
+ if (!empty($p['first'])) {
$p['email'] = $result[0];
break;
}
}
}
- $p['email'] = empty($result) ? NULL : $result;
+ $p['email'] = empty($result) ? null : $result;
return $p;
}
@@ -75,28 +78,33 @@ class virtuser_file extends rcube_plugin
/**
* Find matches of the given pattern in virtuser file
*
- * @param string Regular expression to search for
+ * @param string $pattern Regular expression to search for
+ *
* @return array Matching entries
*/
private function findinvirtual($pattern)
{
- $result = array();
+ $result = [];
$virtual = null;
- if ($this->file)
+ if ($this->file) {
$virtual = file($this->file);
+ }
- if (empty($virtual))
+ if (empty($virtual)) {
return $result;
+ }
// check each line for matches
foreach ($virtual as $line) {
$line = trim($line);
- if (empty($line) || $line[0]=='#')
+ if (empty($line) || $line[0] == '#') {
continue;
+ }
- if (preg_match($pattern, $line))
+ if (preg_match($pattern, $line)) {
$result[] = $line;
+ }
}
return $result;
diff --git a/plugins/virtuser_query/virtuser_query.php b/plugins/virtuser_query/virtuser_query.php
index 8ebdeb3fc..693b2f993 100644
--- a/plugins/virtuser_query/virtuser_query.php
+++ b/plugins/virtuser_query/virtuser_query.php
@@ -12,7 +12,7 @@
* The email query could optionally select identity data columns in specified order:
* name, organization, reply-to, bcc, signature, html_signature
*
- * $config['virtuser_query'] = array('email' => '', 'user' => '', 'host' => '', 'alias' => '');
+ * $config['virtuser_query'] = ['email' => '', 'user' => '', 'host' => '', 'alias' => ''];
*
* The email query can return more than one record to create more identities.
* This requires identities_level option to be set to value less than 2.
@@ -38,20 +38,20 @@ class virtuser_query extends rcube_plugin
if (!empty($this->config)) {
if (is_string($this->config)) {
- $this->config = array('email' => $this->config);
+ $this->config = ['email' => $this->config];
}
- if ($this->config['email']) {
- $this->add_hook('user2email', array($this, 'user2email'));
+ if (!empty($this->config['email'])) {
+ $this->add_hook('user2email', [$this, 'user2email']);
}
- if ($this->config['user']) {
- $this->add_hook('email2user', array($this, 'email2user'));
+ if (!empty($this->config['user'])) {
+ $this->add_hook('email2user', [$this, 'email2user']);
}
- if ($this->config['host']) {
- $this->add_hook('authenticate', array($this, 'user2host'));
+ if (!empty($this->config['host'])) {
+ $this->add_hook('authenticate', [$this, 'user2host']);
}
- if ($this->config['alias']) {
- $this->add_hook('authenticate', array($this, 'alias2user'));
+ if (!empty($this->config['alias'])) {
+ $this->add_hook('authenticate', [$this, 'alias2user']);
}
}
}
@@ -64,26 +64,26 @@ class virtuser_query extends rcube_plugin
$dbh = $this->get_dbh();
$sql_result = $dbh->query(preg_replace('/%u/', $dbh->escape($p['user']), $this->config['email']));
- $result = array();
+ $result = [];
while ($sql_arr = $dbh->fetch_array($sql_result)) {
if (strpos($sql_arr[0], '@')) {
- if ($p['extended'] && count($sql_arr) > 1) {
- $result[] = array(
+ if (!empty($p['extended']) && count($sql_arr) > 1) {
+ $result[] = [
'email' => rcube_utils::idn_to_ascii($sql_arr[0]),
- 'name' => (string) $sql_arr[1],
- 'organization' => (string) $sql_arr[2],
- 'reply-to' => (string) rcube_utils::idn_to_ascii($sql_arr[3]),
- 'bcc' => (string) rcube_utils::idn_to_ascii($sql_arr[4]),
- 'signature' => (string) $sql_arr[5],
- 'html_signature' => (int) $sql_arr[6],
- );
+ 'name' => isset($sql_arr[1]) ? $sql_arr[1] : '',
+ 'organization' => isset($sql_arr[2]) ? $sql_arr[2] : '',
+ 'reply-to' => isset($sql_arr[3]) ? rcube_utils::idn_to_ascii($sql_arr[3]) : '',
+ 'bcc' => isset($sql_arr[4]) ? rcube_utils::idn_to_ascii($sql_arr[4]) : '',
+ 'signature' => isset($sql_arr[5]) ? $sql_arr[5] : '',
+ 'html_signature' => isset($sql_arr[6]) ? intval($sql_arr[6]) : 0,
+ ];
}
else {
$result[] = $sql_arr[0];
}
- if ($p['first']) {
+ if (!empty($p['first'])) {
break;
}
}
@@ -161,5 +161,4 @@ class virtuser_query extends rcube_plugin
return $this->db;
}
-
}
diff --git a/plugins/zipdownload/config.inc.php.dist b/plugins/zipdownload/config.inc.php.dist
index 28dee7f4b..019cc8de5 100644
--- a/plugins/zipdownload/config.inc.php.dist
+++ b/plugins/zipdownload/config.inc.php.dist
@@ -17,5 +17,3 @@ $config['zipdownload_selection'] = '50MB';
// Charset to use for filenames inside the zip
$config['zipdownload_charset'] = 'ISO-8859-1';
-
-?>
\ No newline at end of file
diff --git a/plugins/zipdownload/localization/en_US.inc b/plugins/zipdownload/localization/en_US.inc
index a5847fba9..9b77ab0c9 100644
--- a/plugins/zipdownload/localization/en_US.inc
+++ b/plugins/zipdownload/localization/en_US.inc
@@ -14,7 +14,6 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-zipdownload/
*/
-$labels = array();
$labels['downloadall'] = 'Download all attachments';
$labels['download'] = 'Download...';
$labels['downloadmbox'] = 'Mbox format (.zip)';
diff --git a/plugins/zipdownload/tests/Zipdownload.php b/plugins/zipdownload/tests/Zipdownload.php
index 180866591..7e95a1d60 100644
--- a/plugins/zipdownload/tests/Zipdownload.php
+++ b/plugins/zipdownload/tests/Zipdownload.php
@@ -20,4 +20,3 @@ class Zipdownload_Plugin extends PHPUnit\Framework\TestCase
$this->assertInstanceOf('rcube_plugin', $plugin);
}
}
-
diff --git a/plugins/zipdownload/zipdownload.php b/plugins/zipdownload/zipdownload.php
index 5a393939f..fb6b72809 100644
--- a/plugins/zipdownload/zipdownload.php
+++ b/plugins/zipdownload/zipdownload.php
@@ -17,7 +17,7 @@ class zipdownload extends rcube_plugin
public $task = 'mail';
private $charset = 'ASCII';
- private $names = array();
+ private $names = [];
private $default_limit = '50MB';
// RFC4155: mbox date format
@@ -30,11 +30,13 @@ class zipdownload extends rcube_plugin
{
// check requirements first
if (!class_exists('ZipArchive', false)) {
- rcmail::raise_error(array(
- 'code' => 520,
- 'file' => __FILE__,
- 'line' => __LINE__,
- 'message' => "php_zip extension is required for the zipdownload plugin"), true, false);
+ rcmail::raise_error([
+ 'code' => 520,
+ 'file' => __FILE__,
+ 'line' => __LINE__,
+ 'message' => "php-zip extension is required for the zipdownload plugin"
+ ], true, false
+ );
return;
}
@@ -45,11 +47,11 @@ class zipdownload extends rcube_plugin
if ($rcmail->config->get('zipdownload_attachments', 1) > -1 && ($rcmail->action == 'show' || $rcmail->action == 'preview')) {
$this->add_texts('localization');
- $this->add_hook('template_object_messageattachments', array($this, 'attachment_ziplink'));
+ $this->add_hook('template_object_messageattachments', [$this, 'attachment_ziplink']);
}
- $this->register_action('plugin.zipdownload.attachments', array($this, 'download_attachments'));
- $this->register_action('plugin.zipdownload.messages', array($this, 'download_messages'));
+ $this->register_action('plugin.zipdownload.attachments', [$this, 'download_attachments']);
+ $this->register_action('plugin.zipdownload.messages', [$this, 'download_messages']);
if (!$rcmail->action && $rcmail->config->get('zipdownload_selection', $this->default_limit)) {
$this->add_texts('localization');
@@ -66,20 +68,21 @@ class zipdownload extends rcube_plugin
// only show the link if there is more than the configured number of attachments
if (substr_count($p['content'], ' $rcmail->config->get('zipdownload_attachments', 1)) {
- $href = $rcmail->url(array(
- '_action' => 'plugin.zipdownload.attachments',
- '_mbox' => $rcmail->output->env['mailbox'],
- '_uid' => $rcmail->output->env['uid'],
- ), false, false, true);
+ $href = $rcmail->url([
+ '_action' => 'plugin.zipdownload.attachments',
+ '_mbox' => $rcmail->output->get_env('mailbox'),
+ '_uid' => $rcmail->output->get_env('uid'),
+ ], false, false, true);
- $link = html::a(array('href' => $href, 'class' => 'button zipdownload'),
+ $link = html::a(
+ ['href' => $href, 'class' => 'button zipdownload'],
rcube::Q($this->gettext('downloadall'))
);
// append link to attachments list, slightly different in some skins
switch (rcmail::get_instance()->config->get('skin')) {
case 'classic':
- $p['content'] = str_replace('', html::tag('li', array('class' => 'zipdownload'), $link) . '', $p['content']);
+ $p['content'] = str_replace('', html::tag('li', ['class' => 'zipdownload'], $link) . '', $p['content']);
break;
default:
@@ -102,25 +105,30 @@ class zipdownload extends rcube_plugin
$this->add_label('download');
$rcmail = rcmail::get_instance();
- $menu = array();
- $ul_attr = array('role' => 'menu', 'aria-labelledby' => 'aria-label-zipdownloadmenu');
+ $menu = [];
+ $ul_attr = ['role' => 'menu', 'aria-labelledby' => 'aria-label-zipdownloadmenu'];
+
if ($rcmail->config->get('skin') != 'classic') {
$ul_attr['class'] = 'toolbarmenu menu';
}
- foreach (array('eml', 'mbox', 'maildir') as $type) {
- $menu[] = html::tag('li', null, $rcmail->output->button(array(
+ foreach (['eml', 'mbox', 'maildir'] as $type) {
+ $menu[] = html::tag('li', null, $rcmail->output->button([
'command' => "download-$type",
'label' => "zipdownload.download$type",
'class' => "download $type disabled",
'classact' => "download $type active",
'type' => 'link',
- )));
+ ])
+ );
}
- $rcmail->output->add_footer(html::div(array('id' => 'zipdownload-menu', 'class' => 'popupmenu', 'aria-hidden' => 'true'),
- html::tag('h2', array('class' => 'voice', 'id' => 'aria-label-zipdownloadmenu'), "Message Download Options Menu") .
- html::tag('ul', $ul_attr, implode('', $menu))));
+ $rcmail->output->add_footer(
+ html::div(['id' => 'zipdownload-menu', 'class' => 'popupmenu', 'aria-hidden' => 'true'],
+ html::tag('h2', ['class' => 'voice', 'id' => 'aria-label-zipdownloadmenu'], "Message Download Options Menu")
+ . html::tag('ul', $ul_attr, implode('', $menu))
+ )
+ );
}
/**
@@ -134,7 +142,7 @@ class zipdownload extends rcube_plugin
$rcmail->request_security_check(rcube_utils::INPUT_GET);
$tmpfname = rcube_utils::temp_filename('zipdownload');
- $tempfiles = array($tmpfname);
+ $tempfiles = [$tmpfname];
$message = new rcube_message(rcube_utils::get_input_value('_uid', rcube_utils::INPUT_GET));
// open zip file
@@ -142,8 +150,8 @@ class zipdownload extends rcube_plugin
$zip->open($tmpfname, ZIPARCHIVE::OVERWRITE);
foreach ($message->attachments as $part) {
- $pid = $part->mime_id;
- $part = $message->mime_parts[$pid];
+ $pid = $part->mime_id;
+ $part = $message->mime_parts[$pid];
$disp_name = $this->_create_displayname($part);
$tmpfn = rcube_utils::temp_filename('zipattach');
@@ -193,7 +201,7 @@ class zipdownload extends rcube_plugin
*/
private function _create_displayname($part)
{
- $rcmail = rcmail::get_instance();
+ $rcmail = rcmail::get_instance();
$filename = $part->filename;
if ($filename === null || $filename === '') {
@@ -239,10 +247,10 @@ class zipdownload extends rcube_plugin
$limit = $limit !== true ? parse_bytes($limit) : -1;
$delimiter = $imap->get_hierarchy_delimiter();
$tmpfname = rcube_utils::temp_filename('zipdownload');
- $tempfiles = array($tmpfname);
+ $tempfiles = [$tmpfname];
$folders = count($messageset) > 1;
$timezone = new DateTimeZone('UTC');
- $messages = array();
+ $messages = [];
$size = 0;
// collect messages metadata (and check size limit)
@@ -293,10 +301,10 @@ class zipdownload extends rcube_plugin
if ($limit > 0 && $size > $limit) {
unlink($tmpfname);
- $msg = $this->gettext(array(
+ $msg = $this->gettext([
'name' => 'sizelimiterror',
- 'vars' => array('$size' => rcmail_action::show_bytes($limit))
- ));
+ 'vars' => ['$size' => rcmail_action::show_bytes($limit)]
+ ]);
$rcmail->output->show_message($msg, 'error');
$rcmail->output->send('iframe');
@@ -367,7 +375,7 @@ class zipdownload extends rcube_plugin
{
$rcmail = rcmail::get_instance();
- $rcmail->output->download_headers($filename, array('length' => filesize($tmpfname)));
+ $rcmail->output->download_headers($filename, ['length' => filesize($tmpfname)]);
readfile($tmpfname);
}
@@ -377,7 +385,7 @@ class zipdownload extends rcube_plugin
*/
private function _convert_filename($str)
{
- $str = strtr($str, array(':' => '', '/' => '-'));
+ $str = strtr($str, [':' => '', '/' => '-']);
return rcube_charset::convert($str, RCUBE_CHARSET, $this->charset);
}
diff --git a/tests/StorageMock.php b/tests/StorageMock.php
index 8edc29401..4fdbf3ee9 100644
--- a/tests/StorageMock.php
+++ b/tests/StorageMock.php
@@ -24,6 +24,8 @@
*/
class StorageMock
{
+ public $methodCalls = [];
+
protected $mocks = [];
public function registerFunction($name, $result = null)
@@ -38,6 +40,7 @@ class StorageMock
foreach ($this->mocks as $idx => $mock) {
if ($mock[0] == $name) {
$result = $mock[1];
+ $this->methodCalls[] = ['name' => $name, 'args' => $arguments];
unset($this->mocks[$idx]);
return $result;
}