aboutsummaryrefslogtreecommitdiff
path: root/security/mailzu
diff options
context:
space:
mode:
authorJochen Neumeister <joneum@FreeBSD.org>2018-11-24 10:12:21 +0000
committerJochen Neumeister <joneum@FreeBSD.org>2018-11-24 10:12:21 +0000
commit27de8a3823090939959543d86449d533d3e47fe2 (patch)
treecb61dcb2a946396280eff7475ce535a1bb759e7e /security/mailzu
parentd81bf00be743944ae051b38b6b1c165526b59fa5 (diff)
downloadports-27de8a3823090939959543d86449d533d3e47fe2.tar.gz
ports-27de8a3823090939959543d86449d533d3e47fe2.zip
security/mailzu: Fix support for php 7.x
- Pass Maintainership to Submitter PR: 230712 Submitted by: Krzysztof <ports@bsdserwis.com> Sponsored by: Netzkommune GmbH Differential Revision: https://reviews.freebsd.org/D17946
Notes
Notes: svn path=/head/; revision=485752
Diffstat (limited to 'security/mailzu')
-rw-r--r--security/mailzu/Makefile15
-rw-r--r--security/mailzu/files/patch-config_init.php11
-rw-r--r--security/mailzu/files/patch-config_langs.php21
-rw-r--r--security/mailzu/files/patch-lib-DBEngine.class.php169
-rw-r--r--security/mailzu/files/patch-lib_Auth.class.php129
-rw-r--r--security/mailzu/files/patch-lib_CmnFns.class.php296
-rw-r--r--security/mailzu/files/patch-lib_Quarantine.lib.php20
-rw-r--r--security/mailzu/files/patch-lib_Template.class.php11
-rw-r--r--security/mailzu/files/patch-messagesAdmin.php10
-rw-r--r--security/mailzu/files/patch-read__mail.php11
-rw-r--r--security/mailzu/files/patch-templates_quarantine.template.php11
-rw-r--r--security/mailzu/files/pl.help.php144
-rw-r--r--security/mailzu/files/pl.lang.php324
-rw-r--r--security/mailzu/pkg-plist2
14 files changed, 1087 insertions, 87 deletions
diff --git a/security/mailzu/Makefile b/security/mailzu/Makefile
index dd373aa1dee6..862f42da887b 100644
--- a/security/mailzu/Makefile
+++ b/security/mailzu/Makefile
@@ -3,19 +3,17 @@
PORTNAME= mailzu
DISTVERSION= 0.8rc3
-PORTREVISION= 4
+PORTREVISION= 5
CATEGORIES= security
MASTER_SITES= SF/${PORTNAME}/${PORTNAME}/MailZu%200.8RC3
DISTNAME= MailZu_${DISTVERSION:S/rc/RC/}
-MAINTAINER= ports@FreeBSD.org
+MAINTAINER= ports@bsdserwis.com
COMMENT= Simple and intuitive web interface to manage amavisd-new quarantine
LICENSE= GPLv2
LICENSE_FILE= ${WRKSRC}/LICENSE
-IGNORE_WITH_PHP= 70 71 72 73
-
RUN_DEPENDS= ${LOCALBASE}/sbin/amavisd:security/amavisd-new \
${PEARDIR}/DB.php:databases/pear-DB@${PHP_FLAVOR} \
${PEARDIR}/Mail/mime.php:mail/pear-Mail_Mime@${PHP_FLAVOR} \
@@ -40,18 +38,21 @@ PGSQL_DESC= Use PostgreSQL database/auth storage backend
IMAP_DESC= Use IMAP auth backend
LDAP_DESC= Use LDAP auth backend
-MYSQL_USE= PHP=mysql
+MYSQL_USE= PHP=mysqli
PGSQL_USE= PHP=pgsql
IMAP_USE= PHP=imap
LDAP_USE= PHP=ldap
PORTDOCS= *
+post-patch:
+ ${INSTALL_DATA} ${FILESDIR}/pl.*.php ${WRKSRC}/lang/
+
do-install:
@${MKDIR} ${STAGEDIR}${WWWDIR}
- ${INSTALL_DATA} ${WRKSRC}/*.php* ${WRKSRC}/*.js* ${WRKSRC}/*.css* ${STAGEDIR}${WWWDIR}
+ ${INSTALL_DATA} ${WRKSRC}/*.php ${WRKSRC}/*.js ${WRKSRC}/*.css ${STAGEDIR}${WWWDIR}
(cd ${WRKSRC} && ${COPYTREE_SHARE} "config contrib img lang lib templates" \
- ${STAGEDIR}${WWWDIR} "! -name *.orig")
+ ${STAGEDIR}${WWWDIR} "! -name '*.orig'")
(cd ${WRKSRC} && ${COPYTREE_BIN} scripts ${STAGEDIR}${WWWDIR})
${CHMOD} 644 ${STAGEDIR}${WWWDIR}/config/config.php.sample
diff --git a/security/mailzu/files/patch-config_init.php b/security/mailzu/files/patch-config_init.php
new file mode 100644
index 000000000000..b84ab7342a87
--- /dev/null
+++ b/security/mailzu/files/patch-config_init.php
@@ -0,0 +1,11 @@
+--- config/init.php.orig 2007-06-14 19:00:15 UTC
++++ config/init.php
+@@ -35,7 +35,7 @@
+ session_start();
+
+ // Turn off magic quotes (do not edit!)
+-set_magic_quotes_runtime(0);
++// set_magic_quotes_runtime(0);
+
+ $conf['app']['version'] = '0.8RC3';
+
diff --git a/security/mailzu/files/patch-config_langs.php b/security/mailzu/files/patch-config_langs.php
new file mode 100644
index 000000000000..79caddef7ad3
--- /dev/null
+++ b/security/mailzu/files/patch-config_langs.php
@@ -0,0 +1,21 @@
+--- config/langs.php.orig 2007-06-14 19:00:15 UTC
++++ config/langs.php
+@@ -47,7 +47,8 @@ $languages = array (
+ 'cs' => array('cs([-_][[:alpha:]]{2})?|czech', 'cs.lang.php', 'cs', '&#268;esky'),
+ 'fr' => array('fr([-_][[:alpha:]]{2})?|french', 'fr.lang.php', 'fr', 'Fran&ccedil;ais'),
+ 'it' => array('it([-_][[:alpha:]]{2})?|italian', 'it.lang.php', 'it', 'Italiano'),
+- 'pt_BR' => array('pt([-_]br)?|portuguese', 'pt_BR.lang.php', 'pt', 'Portuguese Brazilian')
++ 'pt_BR' => array('pt([-_]br)?|portuguese', 'pt_BR.lang.php', 'pt', 'Portuguese Brazilian'),
++ 'pl' => array('cs([-_][[:alpha:]]{2})?|polish', 'pl.lang.php', 'pl', 'Polski')
+ );
+
+ // Language files directory
+@@ -113,7 +114,7 @@ function get_browser_lang() {
+ global $languages;
+
+ if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) && !empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
+- $http_accepted = split(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']);
++ $http_accepted = str_split(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']);
+ for ($i = 0; $i < count($http_accepted); $i++) {
+ foreach ($languages as $lang => $vals) {
+ if (eregi($vals[0], $http_accepted[$i]))
diff --git a/security/mailzu/files/patch-lib-DBEngine.class.php b/security/mailzu/files/patch-lib-DBEngine.class.php
index a1b7c75134d9..55c4a1e9f6ea 100644
--- a/security/mailzu/files/patch-lib-DBEngine.class.php
+++ b/security/mailzu/files/patch-lib-DBEngine.class.php
@@ -1,134 +1,143 @@
---- lib/DBEngine.class.php.orig 2010-11-24 11:32:33.000000000 +0100
-+++ lib/DBEngine.class.php 2010-11-24 11:32:41.000000000 +0100
-@@ -132,7 +132,7 @@
- MAX(stattable.badheaders) AS badheaders,
+--- lib/DBEngine.class.php.orig 2007-06-14 19:00:15 UTC
++++ lib/DBEngine.class.php
+@@ -133,35 +133,35 @@ class DBEngine {
MAX(stattable.pending) AS pending
FROM (
-- SELECT CAST(time_iso AS DATE) AS date,
-+ SELECT CAST(FROM_UNIXTIME(time_num) AS DATE) AS date,
- COUNT(content) AS spam,
+ SELECT CAST(time_iso AS DATE) AS date,
+- COUNT(content) AS spam,
++ COUNT(msgs.content) AS spam,
0 AS banned,
0 AS viruses,
-@@ -141,9 +141,9 @@
+ 0 AS badheaders,
+ 0 AS pending
FROM msgs INNER JOIN msgrcpt ON msgs.mail_id=msgrcpt.mail_id
- WHERE content='S' AND NOT (msgs.quar_type = '')
+- WHERE content='S' AND NOT (msgs.quar_type = '')
++ WHERE msgs.content='S' AND NOT (msgs.quar_type = '')
AND msgrcpt.rs IN ('','v')
-- GROUP BY CAST(time_iso AS DATE)
-+ GROUP BY CAST(FROM_UNIXTIME(time_num) AS DATE)
+ GROUP BY CAST(time_iso AS DATE)
UNION
-- SELECT CAST(time_iso AS DATE) AS date,
-+ SELECT CAST(FROM_UNIXTIME(time_num) AS DATE) AS date,
+ SELECT CAST(time_iso AS DATE) AS date,
0 AS spam,
- COUNT(content) AS banned,
+- COUNT(content) AS banned,
++ COUNT(msgs.content) AS banned,
0 AS viruses,
-@@ -152,9 +152,9 @@
+ 0 AS badheaders,
+ 0 AS pending
FROM msgs INNER JOIN msgrcpt ON msgs.mail_id=msgrcpt.mail_id
- WHERE content='B' AND NOT (msgs.quar_type = '')
+- WHERE content='B' AND NOT (msgs.quar_type = '')
++ WHERE msgs.content='B' AND NOT (msgs.quar_type = '')
AND msgrcpt.rs IN ('','v')
-- GROUP BY CAST(time_iso AS DATE)
-+ GROUP BY CAST(FROM_UNIXTIME(time_num) AS DATE)
+ GROUP BY CAST(time_iso AS DATE)
UNION
-- SELECT CAST(time_iso AS DATE) AS date,
-+ SELECT CAST(FROM_UNIXTIME(time_num) AS DATE) AS date,
+ SELECT CAST(time_iso AS DATE) AS date,
0 AS spam,
0 AS banned,
- COUNT(content) AS viruses,
-@@ -163,9 +163,9 @@
+- COUNT(content) AS viruses,
++ COUNT(msgs.content) AS viruses,
+ 0 AS badheaders,
+ 0 AS pending
FROM msgs INNER JOIN msgrcpt ON msgs.mail_id=msgrcpt.mail_id
- WHERE content='V' AND NOT (msgs.quar_type = '')
+- WHERE content='V' AND NOT (msgs.quar_type = '')
++ WHERE msgs.content='V' AND NOT (msgs.quar_type = '')
AND msgrcpt.rs IN ('','v')
-- GROUP BY CAST(time_iso AS DATE)
-+ GROUP BY CAST(FROM_UNIXTIME(time_num) AS DATE)
+ GROUP BY CAST(time_iso AS DATE)
UNION
-- SELECT CAST(time_iso AS DATE) AS date,
-+ SELECT CAST(FROM_UNIXTIME(time_num) AS DATE) AS date,
+@@ -169,10 +169,10 @@ class DBEngine {
0 AS spam,
0 AS banned,
0 AS viruses,
-@@ -174,9 +174,9 @@
+- COUNT(content) AS badheaders,
++ COUNT(msgs.content) AS badheaders,
+ 0 AS pending
FROM msgs INNER JOIN msgrcpt ON msgs.mail_id=msgrcpt.mail_id
- WHERE content='H' AND NOT (msgs.quar_type = '')
+- WHERE content='H' AND NOT (msgs.quar_type = '')
++ WHERE msgs.content='H' AND NOT (msgs.quar_type = '')
AND msgrcpt.rs IN ('','v')
-- GROUP BY CAST(time_iso AS DATE)
-+ GROUP BY CAST(FROM_UNIXTIME(time_num) AS DATE)
+ GROUP BY CAST(time_iso AS DATE)
UNION
-- SELECT CAST(time_iso AS DATE) AS date,
-+ SELECT CAST(FROM_UNIXTIME(time_num) AS DATE) AS date,
- 0 AS spam,
+@@ -181,7 +181,7 @@ class DBEngine {
0 AS banned,
0 AS viruses,
-@@ -184,7 +184,7 @@
- COUNT(content) AS pending
+ 0 AS badheaders,
+- COUNT(content) AS pending
++ COUNT(msgs.content) AS pending
FROM msgs JOIN msgrcpt ON msgs.mail_id=msgrcpt.mail_id
WHERE msgrcpt.rs='p' AND NOT (msgs.quar_type = '')
-- GROUP BY CAST(time_iso AS DATE)
-+ GROUP BY CAST(FROM_UNIXTIME(time_num) AS DATE)
- ) AS stattable
- GROUP BY date
- ORDER BY date";
-@@ -253,7 +253,7 @@
- MAX(stattable.badheaders) AS badheaders,
+ GROUP BY CAST(time_iso AS DATE)
+@@ -240,7 +240,7 @@ class DBEngine {
+ $recipEmailClause = $this->convertEmailaddresses2SQL($emailaddresses);
+
+ # mysql seems to run faster with a left join
+- if ($conf['db']['dbtype'] == 'mysql') {
++ if ($conf['db']['dbType'] == 'mysql') {
+ $join_type = ' LEFT JOIN';
+ } else {
+ $join_type = ' INNER JOIN';
+@@ -254,38 +254,38 @@ class DBEngine {
MAX(stattable.pending) AS pending
FROM (
-- SELECT CAST(time_iso AS DATE) AS date,
-+ SELECT CAST(FROM_UNIXTIME(time_num) AS DATE) AS date,
- COUNT(content) AS spam,
+ SELECT CAST(time_iso AS DATE) AS date,
+- COUNT(content) AS spam,
++ COUNT(msgs.content) AS spam,
0 AS banned,
0 AS viruses,
-@@ -263,9 +263,9 @@
+ 0 AS badheaders,
+ 0 AS pending
+ FROM msgs INNER JOIN msgrcpt ON msgs.mail_id=msgrcpt.mail_id
$join_type maddr AS recip ON msgrcpt.rid=recip.id
- WHERE content='S' AND NOT (msgs.quar_type = '') AND msgrcpt.rs IN ('','v')
+- WHERE content='S' AND NOT (msgs.quar_type = '') AND msgrcpt.rs IN ('','v')
++ WHERE msgs.content='S' AND NOT (msgs.quar_type = '') AND msgrcpt.rs IN ('','v')
AND $recipEmailClause
-- GROUP BY CAST(time_iso AS DATE)
-+ GROUP BY CAST(FROM_UNIXTIME(time_num) AS DATE)
+ GROUP BY CAST(time_iso AS DATE)
UNION
-- SELECT CAST(time_iso AS DATE) AS date,
-+ SELECT CAST(FROM_UNIXTIME(time_num) AS DATE) AS date,
+ SELECT CAST(time_iso AS DATE) AS date,
0 AS spam,
- COUNT(content) AS banned,
+- COUNT(content) AS banned,
++ COUNT(msgs.content) AS banned,
0 AS viruses,
-@@ -275,9 +275,9 @@
+ 0 AS badheaders,
+ 0 AS pending
+ FROM msgs INNER JOIN msgrcpt ON msgs.mail_id=msgrcpt.mail_id
$join_type maddr AS recip ON msgrcpt.rid=recip.id
- WHERE content='B' AND NOT (msgs.quar_type = '') AND msgrcpt.rs IN ('','v')
+- WHERE content='B' AND NOT (msgs.quar_type = '') AND msgrcpt.rs IN ('','v')
++ WHERE msgs.content='B' AND NOT (msgs.quar_type = '') AND msgrcpt.rs IN ('','v')
AND $recipEmailClause
-- GROUP BY CAST(time_iso AS DATE)
-+ GROUP BY CAST(FROM_UNIXTIME(time_num) AS DATE)
+ GROUP BY CAST(time_iso AS DATE)
UNION
-- SELECT CAST(time_iso AS DATE) AS date,
-+ SELECT CAST(FROM_UNIXTIME(time_num) AS DATE) AS date,
+ SELECT CAST(time_iso AS DATE) AS date,
0 AS spam,
0 AS banned,
- COUNT(content) AS viruses,
-@@ -287,9 +287,9 @@
+- COUNT(content) AS viruses,
++ COUNT(msgs.content) AS viruses,
+ 0 AS badheaders,
+ 0 AS pending
+ FROM msgs INNER JOIN msgrcpt ON msgs.mail_id=msgrcpt.mail_id
$join_type maddr AS recip ON msgrcpt.rid=recip.id
- WHERE content='V' AND NOT (msgs.quar_type = '') AND msgrcpt.rs IN ('','v')
+- WHERE content='V' AND NOT (msgs.quar_type = '') AND msgrcpt.rs IN ('','v')
++ WHERE msgs.content='V' AND NOT (msgs.quar_type = '') AND msgrcpt.rs IN ('','v')
AND $recipEmailClause
-- GROUP BY CAST(time_iso AS DATE)
-+ GROUP BY CAST(FROM_UNIXTIME(time_num) AS DATE)
+ GROUP BY CAST(time_iso AS DATE)
UNION
-- SELECT CAST(time_iso AS DATE) AS date,
-+ SELECT CAST(FROM_UNIXTIME(time_num) AS DATE) AS date,
+@@ -293,11 +293,11 @@ class DBEngine {
0 AS spam,
0 AS banned,
0 AS viruses,
-@@ -299,9 +299,9 @@
+- COUNT(content) AS badheaders,
++ COUNT(msgs.content) AS badheaders,
+ 0 AS pending
+ FROM msgs INNER JOIN msgrcpt ON msgs.mail_id=msgrcpt.mail_id
$join_type maddr AS recip ON msgrcpt.rid=recip.id
- WHERE content='H' AND NOT (msgs.quar_type = '') AND msgrcpt.rs IN ('','v')
+- WHERE content='H' AND NOT (msgs.quar_type = '') AND msgrcpt.rs IN ('','v')
++ WHERE msgs.content='H' AND NOT (msgs.quar_type = '') AND msgrcpt.rs IN ('','v')
AND $recipEmailClause
-- GROUP BY CAST(time_iso AS DATE)
-+ GROUP BY CAST(FROM_UNIXTIME(time_num) AS DATE)
+ GROUP BY CAST(time_iso AS DATE)
UNION
-- SELECT CAST(time_iso AS DATE) AS date,
-+ SELECT CAST(FROM_UNIXTIME(time_num) AS DATE) AS date,
- 0 AS spam,
+@@ -306,7 +306,7 @@ class DBEngine {
0 AS banned,
0 AS viruses,
-@@ -311,7 +311,7 @@
+ 0 AS badheaders,
+- COUNT(content) AS pending
++ COUNT(msgs.content) AS pending
+ FROM msgs INNER JOIN msgrcpt ON msgs.mail_id=msgrcpt.mail_id
$join_type maddr AS recip ON msgrcpt.rid=recip.id
WHERE msgrcpt.rs='p' AND NOT (msgs.quar_type = '')
- AND $recipEmailClause
-- GROUP BY CAST(time_iso AS DATE)
-+ GROUP BY CAST(FROM_UNIXTIME(time_num) AS DATE)
- ) AS stattable
- GROUP BY date
- ORDER BY date";
diff --git a/security/mailzu/files/patch-lib_Auth.class.php b/security/mailzu/files/patch-lib_Auth.class.php
new file mode 100644
index 000000000000..8f4de18ac649
--- /dev/null
+++ b/security/mailzu/files/patch-lib_Auth.class.php
@@ -0,0 +1,129 @@
+--- lib/Auth.class.php.orig 2007-06-14 19:00:15 UTC
++++ lib/Auth.class.php
+@@ -43,42 +43,42 @@ class Auth {
+ * and start the session
+ * @param none
+ */
+- //function Auth() {
++ //public static function Auth() {
+ // $this->db = new AuthDB();
+ //}
+
+ /**
+ * Check if user is a super administrator
+- * This function checks to see if the currently
++ * This public static function checks to see if the currently
+ * logged in user is the administrator, granting
+ * them special permissions
+ * @param none
+ * @return boolean whether the user is a s_admin
+ */
+- function isAdmin() {
++ public static function isAdmin() {
+ return isset($_SESSION['sessionAdmin']);
+ }
+
+ /**
+ * Check if user is a mail administrator
+- * This function checks to see if the currently
++ * This public static function checks to see if the currently
+ * logged in user is the administrator, granting
+ * them special permissions
+ * @param none
+ * @return boolean whether the user is a m_admin
+ */
+- function isMailAdmin() {
++ public static function isMailAdmin() {
+ return (isset($_SESSION['sessionMailAdmin']) || isset($_SESSION['sessionAdmin']));
+ }
+
+ /**
+ * Check user login
+- * This function checks to see if the user has
++ * This public static function checks to see if the user has
+ * a valid session set (if they are logged in)
+ * @param none
+ * @return boolean whether the user is logged in
+ */
+- function is_logged_in() {
++ public static function is_logged_in() {
+ return isset($_SESSION['sessionID']);
+ }
+
+@@ -87,7 +87,7 @@ class Auth {
+ * @param none
+ * @return the userid, or null if the user is not logged in
+ */
+- function getCurrentID() {
++ public static function getCurrentID() {
+ return $_SESSION['sessionID'];//isset($_SESSION['sessionID']) ? $_SESSION['sessionID'] : null;
+ }
+
+@@ -281,7 +281,7 @@ class Auth {
+ }
+ }
+
+- function isAllowedToLogin( $username ) {
++ public static function isAllowedToLogin( $username ) {
+
+ global $conf;
+
+@@ -333,7 +333,7 @@ class Auth {
+ * @param none
+ * @return whether the user is attempting to log in
+ */
+- function isAttempting() {
++ public static function isAttempting() {
+ return $this->is_attempt;
+ }
+
+@@ -341,7 +341,7 @@ class Auth {
+ * Kills app
+ * @param none
+ */
+- function kill() {
++ public static function kill() {
+ die;
+ }
+
+@@ -349,7 +349,7 @@ class Auth {
+ * Destroy any lingering sessions
+ * @param none
+ */
+- function clean() {
++ public static function clean() {
+ // Destroy all session variables
+ unset($_SESSION['sessionID']);
+ unset($_SESSION['sessionName']);
+@@ -359,11 +359,11 @@ class Auth {
+ }
+
+ /**
+- * Wrapper function to call template 'printLoginForm' function
++ * Wrapper public static function to call template 'printLoginForm' function
+ * @param string $msg error messages to display for user
+ * @param string $resume page to resume after a login
+ */
+- function printLoginForm($msg = '', $resume = '') {
++ public static function printLoginForm($msg = '', $resume = '') {
+ printLoginForm($msg, $resume);
+ }
+
+@@ -371,7 +371,7 @@ class Auth {
+ * Prints a message telling the user to log in
+ * @param boolean $kill whether to end the program or not
+ */
+- function print_login_msg($kill = true) {
++ public static function print_login_msg($kill = true) {
+ CmnFns::redirect(CmnFns::getScriptURL() . '/index.php?auth=no&resume=' . urlencode($_SERVER['PHP_SELF']) . '?' . urlencode($_SERVER['QUERY_STRING']));
+ }
+
+@@ -379,7 +379,7 @@ class Auth {
+ * Prints out the latest success box
+ * @param none
+ */
+- function print_success_box() {
++ public static function print_success_box() {
+ CmnFns::do_message_box($this->success);
+ }
+ }
diff --git a/security/mailzu/files/patch-lib_CmnFns.class.php b/security/mailzu/files/patch-lib_CmnFns.class.php
new file mode 100644
index 000000000000..605dcb945c2e
--- /dev/null
+++ b/security/mailzu/files/patch-lib_CmnFns.class.php
@@ -0,0 +1,296 @@
+--- lib/CmnFns.class.php.orig 2007-06-14 19:00:15 UTC
++++ lib/CmnFns.class.php
+@@ -53,7 +53,7 @@ class CmnFns {
+ * @param double $time time to convert in minutes
+ * @return string time in 12 hour time
+ */
+- function formatTime($time) {
++ public static function formatTime($time) {
+ global $conf;
+
+ // Set up time array with $timeArray[0]=hour, $timeArray[1]=minute
+@@ -82,7 +82,7 @@ class CmnFns {
+ * @param string $date string (yyyy-mm-dd)
+ * @return int timestamp
+ */
+- function formatDateISO($date) {
++ public static function formatDateISO($date) {
+
+ $time = strtotime($date);
+ return $time;
+@@ -94,7 +94,7 @@ class CmnFns {
+ * @param string $format format to put datestamp into
+ * @return string date as $format or as default format
+ */
+- function formatDate($date, $format = '') {
++ public static function formatDate($date, $format = '') {
+ global $dates;
+
+ if (empty($format)) $format = $dates['general_date'];
+@@ -108,7 +108,7 @@ class CmnFns {
+ * @param string $format format to put datestamp into
+ * @return string date/time as $format or as default format
+ */
+- function formatDateTime($ts, $format = '') {
++ public static function formatDateTime($ts, $format = '') {
+ global $conf;
+ global $dates;
+
+@@ -123,7 +123,7 @@ class CmnFns {
+ * @param int $minutes minutes to convert
+ * @return string version of hours and minutes
+ */
+- function minutes_to_hours($minutes) {
++ public static function minutes_to_hours($minutes) {
+ if ($minutes == 0)
+ return '0 ' . translate('hours');
+
+@@ -137,7 +137,7 @@ class CmnFns {
+ * @param none
+ * @return url url of curent script directory
+ */
+- function getScriptURL() {
++ public static function getScriptURL() {
+ global $conf;
+ $uri = $conf['app']['weburi'];
+ return (strrpos($uri, '/') === false) ? $uri : substr($uri, 0, strlen($uri));
+@@ -150,7 +150,7 @@ class CmnFns {
+ * @param string $style inline CSS style definition to apply to box
+ * @param boolean $die whether to kill the app or not
+ */
+- function do_error_box($msg, $style='', $die = true) {
++ public static function do_error_box($msg, $style='', $die = true) {
+ global $conf;
+
+ echo '<table border="0" cellspacing="0" cellpadding="0" align="center" class="alert" style="' . $style . '"><tr><td>' . $msg . '</td></tr></table>';
+@@ -171,7 +171,7 @@ class CmnFns {
+ * @param string $msg message to print out
+ * @param string $style inline CSS style definition to apply to box
+ */
+- function do_message_box($msg, $style='') {
++ public static function do_message_box($msg, $style='') {
+ echo '<table border="0" cellspacing="0" cellpadding="0" align="center" class="message" style="' . $style . '"><tr><td>' . $msg . '</td></tr></table>';
+ }
+
+@@ -181,7 +181,7 @@ class CmnFns {
+ * @param none
+ * @return Link object
+ */
+- function getNewLink() {
++ public static function getNewLink() {
+ return new Link();
+ }
+
+@@ -191,7 +191,7 @@ class CmnFns {
+ * @param none
+ * @return Pager object
+ */
+- function getNewPager() {
++ public static function getNewPager() {
+ return new Pager();
+ }
+
+@@ -200,7 +200,7 @@ class CmnFns {
+ * @param none
+ * @return array of cleaned up POST values
+ */
+- function cleanPostVals() {
++ public static function cleanPostVals() {
+ $return = array();
+
+ foreach ($_POST as $key => $val)
+@@ -214,7 +214,7 @@ class CmnFns {
+ * @param none
+ * @return array of cleaned up data
+ */
+- function cleanVals($data) {
++ public static function cleanVals($data) {
+ $return = array();
+
+ foreach ($data as $key => $val)
+@@ -228,7 +228,7 @@ class CmnFns {
+ * @param string $vert value of vertical order
+ * @return string vertical order
+ */
+- function get_vert_order($get_name = 'vert') {
++ public static function get_vert_order($get_name = 'vert') {
+ // If no vertical value is specified, use DESC
+ $vert = isset($_GET[$get_name]) ? $_GET[$get_name] : 'DESC';
+
+@@ -251,7 +251,7 @@ class CmnFns {
+ * @param array $orders all valid order names
+ * @return string order of recorset
+ */
+- function get_value_order($orders = array(), $get_name = 'order') {
++ public static function get_value_order($orders = array(), $get_name = 'order') {
+ if (empty($orders)) // Return null if the order array is empty
+ return NULL;
+
+@@ -269,12 +269,12 @@ class CmnFns {
+
+
+ /**
+- * Opposite of php's nl2br function.
++ * Opposite of php's nl2br public static function.
+ * Subs in a newline for all brs
+ * @param string $subject line to make subs on
+ * @return reformatted line
+ */
+- function br2nl($subject) {
++ public static function br2nl($subject) {
+ return str_replace('<br />', "\n", $subject);
+ }
+
+@@ -284,7 +284,7 @@ class CmnFns {
+ * @param string $userid memeber id of user performing the action
+ * @param string $ip ip address of user performing the action
+ */
+- function write_log($string, $userid = NULL, $ip = NULL) {
++ public static function write_log($string, $userid = NULL, $ip = NULL) {
+ global $conf;
+ $delim = "\t";
+ $file = $conf['app']['logfile'];
+@@ -319,7 +319,7 @@ class CmnFns {
+ * @param int $day_of_week day of the week
+ * @param int $type how to return the day name (0 = full, 1 = one letter, 2 = two letter, 3 = three letter)
+ */
+- function get_day_name($day_of_week, $type = 0) {
++ public static function get_day_name($day_of_week, $type = 0) {
+ global $days_full;
+ global $days_abbr;
+ global $days_letter;
+@@ -343,7 +343,7 @@ class CmnFns {
+ * @param string $location new http location
+ * @param int $time time in seconds to wait before redirect
+ */
+- function redirect($location, $time = 0, $die = true) {
++ public static function redirect($location, $time = 0, $die = true) {
+ header("Refresh: $time; URL=$location");
+ if ($die) exit;
+ }
+@@ -352,7 +352,7 @@ class CmnFns {
+ * Prints out the HTML to choose a language
+ * @param none
+ */
+- function print_language_pulldown() {
++ public static function print_language_pulldown() {
+ global $conf;
+ ?>
+ <select name="language" class="textbox" onchange="changeLanguage(this);">
+@@ -375,7 +375,7 @@ class CmnFns {
+ * @param string $str string to search for links to create
+ * @return string with 'URL-like' text changed into clickable links
+ */
+- function html_activate_links($str) {
++ public static function html_activate_links($str) {
+ $str = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_+.~#?&//=]+)', '<a href="\1" target="_blank">\1</a>', $str);
+ $str = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_+.~#?&//=]+)', '\1<a href="http://\2" target="_blank">\2</a>', $str);
+ $str = eregi_replace('([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3})','<a href="mailto:\1">\1</a>', $str);
+@@ -388,7 +388,7 @@ class CmnFns {
+ * @param integer $page value of current page number
+ * @return integer current page number
+ */
+- function get_current_page_number($get_name = 'page') {
++ public static function get_current_page_number($get_name = 'page') {
+ // If no page number is specified, use 0
+ $page = ( isset($_GET[$get_name]) && is_numeric($_GET[$get_name]) ) ? $_GET[$get_name] : 0;
+ return $page;
+@@ -399,7 +399,7 @@ class CmnFns {
+ * @param none
+ * @return string mail_id
+ */
+- function get_mail_id($get_name = 'mail_id') {
++ public static function get_mail_id($get_name = 'mail_id') {
+ // If there isnt one set, return NULL
+ $mail_id = (isset($_GET[$get_name])) ? $_GET[$get_name] : NULL;
+ return $mail_id;
+@@ -413,7 +413,7 @@ class CmnFns {
+ * @param array $exclude_vars to be excluded from the resulting string
+ * @param boolean $url_encode_ampersands
+ */
+- function array_to_query_string( $array, $exclude_vars=array(), $url_encode_ampersands=true )
++ public static function array_to_query_string( $array, $exclude_vars=array(), $url_encode_ampersands=true )
+ {
+ if( ! is_array( $array ) )
+ return '';
+@@ -441,7 +441,7 @@ class CmnFns {
+ * @param integer $sizeLimit maximum number of messages per page
+ * @param integer $count total number of messages
+ */
+- function genMultiPagesLinks( $page, $sizeLimit, $count) {
++ public static function genMultiPagesLinks( $page, $sizeLimit, $count) {
+ global $link;
+
+ $total_pages = $count / $sizeLimit;
+@@ -501,7 +501,7 @@ class CmnFns {
+ * Generate HTML for search engine
+ * @param $content_type: 'B' (attachment) or 'S' (spam)
+ */
+- function searchEngine($content_type, $submit_page, $full_search = false) {
++ public static function searchEngine($content_type, $submit_page, $full_search = false) {
+ global $conf;
+
+ $fields_array = array("f" => translate('From'),
+@@ -579,7 +579,7 @@ class CmnFns {
+ * @param none
+ * @return value boolean
+ */
+- function didSearch() {
++ public static function didSearch() {
+ $return = false;
+ $strings = array('f_string','s_string','t_string','m_string');
+ foreach ($strings as $string) {
+@@ -593,7 +593,7 @@ class CmnFns {
+ * @param array of variables to exclude
+ * @return query string
+ */
+- function querystring_exclude_vars( $excl_array = array() ) {
++ public static function querystring_exclude_vars( $excl_array = array() ) {
+ return CmnFns::array_to_query_string( $_GET, $excl_array );
+ }
+
+@@ -602,7 +602,7 @@ class CmnFns {
+ * @param none
+ * @return value
+ */
+- function get_ctype($get_name = 'ctype') {
++ public static function get_ctype($get_name = 'ctype') {
+ // If there isnt one set, return NULL
+ $result = NULL;
+ if ( isset($_GET[$get_name]) )
+@@ -617,7 +617,7 @@ class CmnFns {
+ * @param none
+ * @return value
+ */
+- function get_action($get_name = 'action') {
++ public static function get_action($get_name = 'action') {
+ // If there isnt one set, return NULL
+ $result = (isset($_POST[$get_name])) ? $_POST[$get_name] : NULL;
+ return $result;
+@@ -628,7 +628,7 @@ class CmnFns {
+ * @param none
+ * @return value
+ */
+- function get_query_string($get_name = 'query_string') {
++ public static function get_query_string($get_name = 'query_string') {
+ // If there isnt one set, return NULL
+ $result = (isset($_POST[$get_name])) ? $_POST[$get_name] : NULL;
+ return $result;
+@@ -656,7 +656,7 @@ class CmnFns {
+ * INORDER, SESSION, FORM, POST, GET, SERVER
+ * @return value of var
+ */
+- function getGlobalVar($name, $search = INORDER) {
++ public static function getGlobalVar($name, $search = INORDER) {
+
+ switch ($search) {
+
+@@ -699,7 +699,7 @@ class CmnFns {
+ * Redirect using javascript
+ * @param $location string
+ */
+- function redirect_js($location) {
++ public static function redirect_js($location) {
+ echo "<SCRIPT LANGUAGE=\"JavaScript\">";
+ echo "parent.location.href = '" . $location . "';";
+ echo "</SCRIPT>";
diff --git a/security/mailzu/files/patch-lib_Quarantine.lib.php b/security/mailzu/files/patch-lib_Quarantine.lib.php
new file mode 100644
index 000000000000..e1b13bd7ddd0
--- /dev/null
+++ b/security/mailzu/files/patch-lib_Quarantine.lib.php
@@ -0,0 +1,20 @@
+--- lib/Quarantine.lib.php.orig 2007-06-14 19:00:15 UTC
++++ lib/Quarantine.lib.php
+@@ -65,7 +65,7 @@ function releaseMessages($emailaddresses
+ foreach ($mail_id_array as $mail_id_recip) {
+
+ // Get mail_id and recipient email address
+- $temp = preg_split('/_/', $mail_id_recip, 2);
++ $temp = preg_split('/__/', $mail_id_recip, 2);
+ $mail_id = $temp[0];
+ $recip_email = $temp[1];
+
+@@ -258,7 +258,7 @@ function updateMessages($flag, $content_
+ foreach ($mail_id_array as $mail_id_recip) {
+
+ // Get mail_id and recipient email address
+- $temp = preg_split('/_/', $mail_id_recip, 2);
++ $temp = preg_split('/__/', $mail_id_recip, 2);
+ $mail_id = $temp[0];
+ $recip_email = $temp[1];
+
diff --git a/security/mailzu/files/patch-lib_Template.class.php b/security/mailzu/files/patch-lib_Template.class.php
new file mode 100644
index 000000000000..5ec0cfe0ba80
--- /dev/null
+++ b/security/mailzu/files/patch-lib_Template.class.php
@@ -0,0 +1,11 @@
+--- lib/Template.class.php.orig 2007-06-14 19:00:15 UTC
++++ lib/Template.class.php
+@@ -111,7 +111,7 @@ class Template {
+ <td class="mainBkgrdClr" valign="top">
+ <div align="right">
+ <p>
+- <?= translate_date('header', mktime());?>
++ <?= translate_date('header', time());?>
+ </p>
+ <!--<p>
+ <? $this->link->doLink('javascript: help();', translate('Help')) ?>
diff --git a/security/mailzu/files/patch-messagesAdmin.php b/security/mailzu/files/patch-messagesAdmin.php
new file mode 100644
index 000000000000..5f99a3d60b01
--- /dev/null
+++ b/security/mailzu/files/patch-messagesAdmin.php
@@ -0,0 +1,10 @@
+--- messagesAdmin.php.orig 2007-06-14 19:00:15 UTC
++++ messagesAdmin.php
+@@ -55,6 +55,7 @@ if (! Auth::isMailAdmin()) {
+ CmnFns::do_error_box(translate('Access Denied'));
+
+ } else {
++ $content_type = (CmnFns::get_ctype() ? CmnFns::get_ctype() : 'A');
+ // Draw search engine
+ printSearchEngine($content_type, $_SERVER['PHP_SELF'], 1);
+ echo '<br>';
diff --git a/security/mailzu/files/patch-read__mail.php b/security/mailzu/files/patch-read__mail.php
new file mode 100644
index 000000000000..caef104d3e9a
--- /dev/null
+++ b/security/mailzu/files/patch-read__mail.php
@@ -0,0 +1,11 @@
+--- read_mail.php.orig 2007-06-14 19:00:15 UTC
++++ read_mail.php
+@@ -59,7 +59,7 @@ if ( ! $m->msg_found) {
+ } else {
+
+ echo '<form name="messages_process_form" action="messagesProcessing.php" method="POST">';
+- echo ' <input type="hidden" name="mail_id_array[]" value="' . $mail_id . '_' . $recip_email . '">';
++ echo ' <input type="hidden" name="mail_id_array[]" value="' . $mail_id . '__' . $recip_email . '">';
+ echo ' <input type="hidden" name="query_string" value="' . $query_string . '">';
+ printActionButtons(false);
+ echo '</form>';
diff --git a/security/mailzu/files/patch-templates_quarantine.template.php b/security/mailzu/files/patch-templates_quarantine.template.php
new file mode 100644
index 000000000000..7f4c469fa24f
--- /dev/null
+++ b/security/mailzu/files/patch-templates_quarantine.template.php
@@ -0,0 +1,11 @@
+--- templates/quarantine.template.php.orig 2007-06-14 19:00:15 UTC
++++ templates/quarantine.template.php
+@@ -143,7 +143,7 @@ function showMessagesTable($content_type
+ echo "<tr class=\"$class\" align=\"center\">";
+
+ echo ' <td><input type="checkbox" onclick="ColorRow(this,\'lightyellow\')"
+- name="mail_id_array[]" value="' . $rs['mail_id'] . '_' . $rs['email'] . '"></td>';
++ name="mail_id_array[]" value="' . $rs['mail_id'] . '__' . $rs['email'] . '"></td>';
+ if ( (count($_SESSION['sessionMail']) > 1) || (Auth::isMailAdmin() &&
+ ("Site Quarantine" == $_SESSION['sessionNav'] || "Site Pending Requests" == $_SESSION['sessionNav']))) {
+ echo ' <td>' . $to . '</td>';
diff --git a/security/mailzu/files/pl.help.php b/security/mailzu/files/pl.help.php
new file mode 100644
index 000000000000..8800fcf7a34b
--- /dev/null
+++ b/security/mailzu/files/pl.help.php
@@ -0,0 +1,144 @@
+<?php
+/**
+* English (en) help translation file.
+* This also serves as the base translation file from which to derive
+* all other translations.
+*
+* @author Brian Wong <bwsource@users.sourceforge.net>
+* @translator Your Name <your@email.com>
+* @version 01-08-05
+* @package Languages
+*
+* Copyright (C) 2003 - 2007 MailZu
+* License: GPL, see LICENSE
+*
+* $Id$
+*/
+///////////////////////////////////////////////////////////
+// INSTRUCTIONS
+///////////////////////////////////////////////////////////
+// This file contains all the help file for MailZu. Please save the translated
+// file as '2 letter language code'.help.php. For example, en.help.php.
+//
+// To make MailZu help available in another language, simply translate this
+// file into your language. If there is no direct translation, please provide the
+// closest translation.
+//
+// This will be included in the body of the help file.
+//
+// Please keep the HTML formatting unless you need to change it. Also, please try
+// to keep the HTML XHTML 1.0 Transitional complaint.
+///////////////////////////////////////////////////////////
+?>
+<div align="center">
+ <h3><a name="top" id="top"></a>Wprowadzenie do MailZu</h3>
+ <p><a href="http://mailzu.net" target="_blank">http://mailzu.net</a></p>
+ <table width="100%" border="0" cellspacing="0" cellpadding="5" style="border: solid #CCCCCC 1px">
+ <tr>
+ <td bgcolor="#FAFAFA">
+ <ul>
+ <li><b><a href="#getting_started">Rozpoczęcie pracy</a></b></li>
+ <ul>
+ <li><a href="#logging_in">Logowanie</a></li>
+ <li><a href="#language">Wybór mojego języka</a></li>
+ <li><a href="#getting_support">Uzyskanie wsparcia</a></li>
+ </ul>
+ <li><a href="#using_mailzu"><b>Używanie MailZu</b></a></li>
+ <ul>
+ <li><a href="#quick_links">Moje szybkie odnośniki</a></li>
+ <li><a href="#msg_summary">Podsumowanie wiadomości</a></li>
+ <li><a href="#msg_index">Indeksy wiadomości</a></li>
+ <li><a href="#search">Szukanie wiadomości</a></li>
+ <li><a href="#msg_view">Podgląd wiadomości</a></li>
+ </ul>
+ </ul>
+ <hr width="95%" size="1" noshade="noshade" />
+ <h4><a name="getting_started" id="getting_started"></a>Rozpoczęcie pracy</h4>
+ <p> At the top of each page you will see a welcome message and today's date.
+ If a previous user is displayed in the welcome message, click &quot;Log
+ Out&quot; to clear out any cookies they were using and <a href="#logging_in">log
+ in</a> as yourself.
+ Clicking the &quot;Help&quot; link brings a pop-up help window. Clicking
+ the &quot;Email Administrator&quot; link will open a new mail addressed to the system's
+ administrator.</p>
+ <p align="right"><a href="#top">Top</a></p>
+ <h5><a name="logging_in" id="logging_in"></a>Logging In</h5>
+ <p>To log in, users must provide their login id and password. The login id
+ may be your fully-qualified email address ('user@example.com') or simply
+ your username ('user'). The administrator shall inform you of the correct
+ form to use. Selecting the &quot;Keep Me Logged In&quot; option will use
+ cookies to identify you each time you return to the quarantine, bypassing
+ the need to log in each time. <i>You should only use this option if
+ you are the only person using MailZu on your computer.</i> After
+ logging in, you will be redirected to the <a href="#message_summary">
+ Message Summary</a>.</p>
+ <p align="right"><a href="#top">Top</a></p>
+ <h5><a name="language" id="language"></a>Selecting My Language</h5>
+ <p>On the login page, there will be a pull down menu with all of the
+ available language translations that your administrator has included.
+ Please select the language that you prefer and all MailZu text
+ will be translated. This will not translate any text related to actual
+ email messages; it will only translate the application text. You will
+ need to log out to select a different language.</p>
+ <p align="right"><a href="#top">Top</a></p>
+ <h5><a name="getting_support" id="getting_support"></a>Getting
+ Help</h5>
+ <p>If you you need assistance with viewing your quarantined messages or any
+ issue whatsoever, feel free to use the &quot;Email
+ Administrator&quot; link located in <a href="#quick_links">My Quick Links</a>.</p>
+ <p align="right"><a href="#top">Top</a></p> <p align="right">&nbsp;</p>
+ <hr width="95%" size="1" noshade="noshade" />
+ <h4><a name="using_mailzu" id="using_mailzu"></a>Using MailZu</h4>
+ <p>MailZu allows the user to view quarantined messages based on the type of messages.
+ The most prevalent types of messages which will be quarantined are those that are
+ considered spam, or contain a banned attachment.
+ <p align="right"><a href="#top">Top</a></p>
+ <h5><a name="quick_links" id="quick_links"></a>My Quick Links</h5>
+ <p>The Quick Links table will provide you with common application links.
+ The first, &quot;Quarantine Summary&quot; will give an overview of your message
+ quarantines.</p>
+ <p> &quot;My Quarantine&quot; will take you to
+ an index of your unsolicited bulk email and banned attachments.</p>
+ <p>&quot;Email Administrator&quot; is a quick way to contact your support
+ staff if you require assistance.</p>
+ <p>&quot;Help&quot; gives you this document.</p>
+ <p>The final link, &quot;Log Out&quot; will log you out of your current
+ session and return you to the log in screen.</p>
+ <p align="right"><a href="#top">Top</a></p>
+ <h5><a name="msg_summary" id="msg_summary"></a>Message Summary</h5>
+ <p> The message summary is the default page after login. It gives you a quick count of
+ how many messages you have in your quarantine and their type.
+ <p align="right"><a href="#top">Top</a></p>
+ <h5><a name="msg_index" id="msg_index"></a>Message Indexes</h5>
+ <p> Message indices show all the email for selected quarantined.
+ For each email quarantined, the index will show the From, Subject, and Date. Depending
+ on the quarantine currently in view, the index may show more information.</p>
+ <p>To sort your index by a specific field, click on the field title. Clicking the field
+ title again will reverse the sort.</p>
+ <p>Several buttons are available for handling the messages shown in the index. The
+ 'Release/Request' action removes the message from the index and delivers the email as
+ if it had never been quarantined. The 'Delete' action only removes the message from the
+ index. These buttons perform the action on the messages selected through the checkboxes.
+ The 'Delete All' button ignores the state of the checkboxes and removes all messages in
+ the quarantine selected.</p>
+ <p>When viewing your pending requests you can withdraw the request by clicking
+ 'Cancel Request'. The message will no longer be queued for administrator review.
+ </p>
+ <p align="right"><a href="#top">Top</a></p>
+ <h5><a name="search" id="search"></a>Message Search</h5>
+ <p>Using the search function is a quick way to find a message you believe has been
+ quarantined. You can search for a message by specifying either who its from, or
+ what the subject is, or both. The search is not case sensitive.</p>
+ <p align="right"><a href="#top">Top</a></p>
+ <h5><a name="msg_view" id="msg_view"></a>Message View</h5>
+ <p>The Message View allows you to see the contents of the message to help
+ determine if the message is legitimate. This view offers other options such
+ as to display the original plain text email and see additional message headers.
+ </p>
+ <p align="right"><a href="#top">Top</a></p> <p align="right">&nbsp;</p>
+
+ <hr width="95%" size="1" noshade="noshade" />
+ </td>
+ </tr>
+ </table>
+</div>
diff --git a/security/mailzu/files/pl.lang.php b/security/mailzu/files/pl.lang.php
new file mode 100644
index 000000000000..e1fff0d67fb4
--- /dev/null
+++ b/security/mailzu/files/pl.lang.php
@@ -0,0 +1,324 @@
+<?php
+/**
+* Polish (pl) translation file.
+* Based on phpScheduleIt translation file.
+* This also serves as the base translation file from which to derive
+* all other translations.
+*
+* @author Samuel Tran <stran2005@users.sourceforge.net>
+* @author Brian Wong <bwsource@users.sourceforge.net>
+* @author Nicolas Peyrussie <peyrouz@users.sourceforge.net>
+* @version 04-03-07
+* @package Languages
+*
+* Copyright (C) 2005 - 2007 MailZu
+* License: GPL, see LICENSE
+*
+* $Id$
+*/
+///////////////////////////////////////////////////////////
+// INSTRUCTIONS
+///////////////////////////////////////////////////////////
+// This file contains all of the strings that are used throughout phpScheduleit.
+// Please save the translated file as '2 letter language code'.lang.php. For example, en.lang.php.
+//
+// To make phpScheduleIt available in another language, simply translate each
+// of the following strings into the appropriate one for the language. If there
+// is no direct translation, please provide the closest translation. Please be sure
+// to make the proper additions the /config/langs.php file (instructions are in the file).
+// Also, please add a help translation for your language using en.help.php as a base.
+//
+// You will probably keep all sprintf (%s) tags in their current place. These tags
+// are there as a substitution placeholder. Please check the output after translating
+// to be sure that the sentences make sense.
+//
+// + Please use single quotes ' around all $strings. If you need to use the ' character, please enter it as \'
+// + Please use double quotes " around all $email. If you need to use the " character, please enter it as \"
+//
+// + For all $dates please use the PHP strftime() syntax
+// http://us2.php.net/manual/en/function.strftime.php
+//
+// + Non-intuitive parts of this file will be explained with comments. If you
+// have any questions, please email lqqkout13@users.sourceforge.net
+// or post questions in the Developers forum on SourceForge
+// http://sourceforge.net/forum/forum.php?forum_id=331297
+///////////////////////////////////////////////////////////
+
+////////////////////////////////
+/* Do not modify this section */
+////////////////////////////////
+global $strings; //
+global $email; //
+global $dates; //
+global $charset; //
+global $letters; //
+global $days_full; //
+global $days_abbr; //
+global $days_two; //
+global $days_letter; //
+global $months_full; //
+global $months_abbr; //
+global $days_letter; //
+/******************************/
+
+// Charset for this language
+// 'iso-8859-1' will work for most languages
+$charset = 'utf-8';
+
+/***
+ DAY NAMES
+ All of these arrays MUST start with Sunday as the first element
+ and go through the seven day week, ending on Saturday
+***/
+// The full day name
+$days_full = array('Niedziela', 'Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota');
+// The three letter abbreviation
+$days_abbr = array('Nie', 'Pon', 'Wto', 'Śro', 'Czw', 'Pią', 'Sob');
+// The two letter abbreviation
+$days_two = array('Nd', 'Pn', 'Wt', 'Śr', 'Cz', 'Pi', 'So');
+// The one letter abbreviation
+$days_letter = array('N', 'P', 'W', 'Ś', 'C', 'T', 'S');
+
+/***
+ MONTH NAMES
+ All of these arrays MUST start with January as the first element
+ and go through the twelve months of the year, ending on December
+***/
+// The full month name
+$months_full = array('Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj', 'Czerwiec', 'Lipiec', 'Sierpień', 'Wrzesień', 'Październik', 'Listopad', 'Grudzień');
+// The three letter month name
+$months_abbr = array('Sty', 'Lut', 'Mar', 'Kwi', 'Maj', 'Cze', 'Lip', 'Sie', 'Wrz', 'Paź', 'Lis', 'Gru');
+
+// All letters of the alphabet starting with A and ending with Z
+$letters = array ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');
+
+/***
+ DATE FORMATTING
+ All of the date formatting must use the PHP strftime() syntax
+ You can include any text/HTML formatting in the translation
+***/
+// General date formatting used for all date display unless otherwise noted
+$dates['general_date'] = '%d/%m/%Y';
+// General datetime formatting used for all datetime display unless otherwise noted
+// The hour:minute:second will always follow this format
+$dates['general_datetime'] = '%d/%m/%Y @';
+$dates['header'] = '%A, %B %d, %Y';
+
+/***
+ STRING TRANSLATIONS
+ All of these strings should be translated from the English value (right side of the equals sign) to the new language.
+ - Please keep the keys (between the [] brackets) as they are. The keys will not always be the same as the value.
+ - Please keep the sprintf formatting (%s) placeholders where they are unless you are sure it needs to be moved.
+ - Please keep the HTML and punctuation as-is unless you know that you want to change it.
+***/
+$strings['hours'] = 'godziny';
+$strings['minutes'] = 'minuty';
+// The common abbreviation to hint that a user should enter the month as 2 digits
+$strings['mm'] = 'mm';
+// The common abbreviation to hint that a user should enter the day as 2 digits
+$strings['dd'] = 'dd';
+// The common abbreviation to hint that a user should enter the year as 4 digits
+$strings['yyyy'] = 'yyyy';
+$strings['am'] = 'am';
+$strings['pm'] = 'pm';
+
+$strings['Administrator'] = 'Administrator';
+$strings['Welcome Back'] = '%s, witaj ponownie';
+$strings['Log Out'] = 'Wyloguj';
+$strings['Help'] = 'Pomoc';
+
+$strings['Admin Email'] = 'Email administratora';
+
+$strings['Default'] = 'Domyślny';
+$strings['Reset'] = 'Reset';
+$strings['Edit'] = 'Edytuj';
+$strings['Delete'] = 'Skasuj';
+$strings['Cancel'] = 'Anuluj';
+$strings['View'] = 'Podgląd';
+$strings['Modify'] = 'Modyfikacja';
+$strings['Save'] = 'Zachowaj';
+$strings['Back'] = 'Powrót';
+$strings['BackMessageIndex'] = 'Powrót do Wiadomości';
+$strings['ToggleHeaders'] = 'Przełącz nagłówki';
+$strings['ViewOriginal'] = 'Obejrzyj w oryginale';
+$strings['Next'] = 'Następna';
+$strings['Close Window'] = 'Zamknij okno';
+$strings['Search'] = 'Szukaj';
+$strings['Clear'] = 'Wyczyść';
+
+$strings['Days to Show'] = 'Dni do pokazania';
+$strings['Reservation Offset'] = 'Reservation Offset';
+$strings['Hidden'] = 'Ukryte';
+$strings['Show Summary'] = 'Pokaż podsumowanie';
+$strings['Add Schedule'] = 'Dodaj Schedule';
+$strings['Edit Schedule'] = 'Edytuj Schedule';
+$strings['No'] = 'Nie';
+$strings['Yes'] = 'Tak';
+$strings['Name'] = 'Nazwa';
+$strings['First Name'] = 'Imię';
+$strings['Last Name'] = 'Nazwisko';
+$strings['Resource Name'] = 'Nazwa Żródła';
+$strings['Email'] = 'Email';
+$strings['Institution'] = 'Instytucja';
+$strings['Phone'] = 'Telefon';
+$strings['Password'] = 'Hasło';
+$strings['Permissions'] = 'Uprawnienia';
+$strings['View information about'] = 'Zobacz informację o %s %s';
+$strings['Send email to'] = 'Wyślij email do %s %s';
+$strings['Reset password for'] = 'Reset hasła dla %s %s';
+$strings['Edit permissions for'] = 'Edycja uprawnień dla %s %s';
+$strings['Position'] = 'Pozycja';
+$strings['Password (6 char min)'] = 'Hasło (minimum %s znaków)'; // @since 1.1.0
+$strings['Re-Enter Password'] = 'Wprowadź hasło ponownie';
+
+$strings['Date'] = 'Data';
+$strings['Email Users'] = 'Wyślij email do użytkowników';
+$strings['Subject'] = 'Temat';
+$strings['Message'] = 'Wiadomość';
+$strings['Send Email'] = 'Wyślij Email';
+$strings['problem sending email'] = 'Niestety wystąpił błąd podczas wysyłania emaila. Proszę spróbować ponownie później.';
+$strings['The email sent successfully.'] = 'Wysłanie emaila zakończone sukcesem.';
+$strings['Email address'] = 'Adres email';
+$strings['Please Log In'] = 'Proszę się zalogować';
+$strings['Keep me logged in'] = 'Pamiętaj moje dane logowania <br/>(wymagane ciasteczka)';
+$strings['Password'] = 'Hasło';
+$strings['Log In'] = 'Zaloguj';
+$strings['Get online help'] = 'Dostęp do pomocy';
+$strings['Language'] = 'Język';
+$strings['(Default)'] = '(Domyślnie)';
+
+$strings['Email Administrator'] = 'Wyślij email do administrator';
+
+$strings['N/A'] = 'Niedostępne';
+$strings['Summary'] = 'Podsumowanie';
+
+$strings['View stats for schedule'] = 'Zobacz statystyki dla wykazu:';
+$strings['At A Glance'] = 'W skrócie';
+$strings['Total Users'] = 'Wszystkich użytkowników:';
+$strings['Total Resources'] = 'Wszystkich zasobów:';
+$strings['Total Reservations'] = 'Wszystkich Rezerwacji:';
+$strings['Max Reservation'] = 'Maksimum Rezerwacji:';
+$strings['Min Reservation'] = 'Minimum Rezerwacji:';
+$strings['Avg Reservation'] = 'Średnio Rezerwacji:';
+$strings['Most Active Resource'] = 'Najbardziej aktywne źródła:';
+$strings['Most Active User'] = 'Najbardziej aktywni użytkownicy:';
+$strings['System Stats'] = 'Statystyki systemowe';
+$strings['phpScheduleIt version'] = 'Wersja phpScheduleIt:';
+$strings['Database backend'] = 'Baza danych:';
+$strings['Database name'] = 'Nazwa bazy danych:';
+$strings['PHP version'] = 'Wersja PHP:';
+$strings['Server OS'] = 'System operacyjny serwera:';
+$strings['Server name'] = 'Nazwa serwera:';
+$strings['phpScheduleIt root directory'] = 'Katalog główny (root) phpScheduleIt:';
+$strings['Using permissions'] = 'Using permissions:';
+$strings['Using logging'] = 'Using logging:';
+$strings['Log file'] = 'Plik logu:';
+$strings['Admin email address'] = 'Adres email administracyjny:';
+$strings['Tech email address'] = 'Adres email techniczny:';
+$strings['CC email addresses'] = 'Adresy email do Cc (do wiadomości):';
+$strings['Reservation start time'] = 'Czas rozpoczęcia rezerwacji:';
+$strings['Reservation end time'] = 'Czas zakończenia rezerwacji:';
+$strings['Days shown at a time'] = 'Pokazana liczba dni:';
+$strings['Reservations'] = 'Rezerwacje';
+$strings['Return to top'] = 'Powrót na początek';
+$strings['for'] = 'dla';
+
+$strings['Per page'] = 'na stronę:';
+$strings['Page'] = 'Strona:';
+
+$strings['You are not logged in!'] = 'Nie jesteś zalogowany!';
+
+$strings['Setup'] = 'Setup';
+$strings['Invalid User Name/Password.'] = 'Niepoprawny login/hasło.';
+
+$strings['Valid username is required'] = 'Wymagana poprawna nazwa użytkownika';
+
+$strings['Close'] = 'Zamknij';
+
+$strings['Admin'] = 'Admin';
+
+$strings['My Quick Links'] = 'Moje szybkie odnośniki';
+
+$strings['Go to first page'] = 'Idź na pierwszą stronę';
+$strings['Go to last page'] = 'Idź na ostatnią stronę';
+$strings['Sort by descending order'] = 'Uporządkuj malejąco';
+$strings['Sort by ascending order'] = 'Uporządkuj rosnąco';
+$strings['Spam Quarantine'] = 'Kwarantanna spamów';
+$strings['Message View'] = 'Podgląd wiadomości';
+$strings['Attachment Quarantine'] = 'Kwarantanna załączników';
+$strings['No such content type'] = 'Nierozpoznana zawartość (content type)';
+$strings['No message was selected'] = 'Nie wybrano wiadomości...';
+$strings['Unknown action type'] = 'Nieznany rodzaj akcji...';
+$strings['A problem occured when trying to release the following messages'] = 'Wystąpił błąd w trakcie uwalniania wiadomości';
+$strings['A problem occured when trying to delete the following messages'] = 'Wystąpił błąd w trakcie kasowania wiadomości';
+$strings['Please release the following messages'] = 'Proszę uwolnić następujące wiadomości';
+$strings['To'] = 'Do';
+$strings['From'] = 'Od';
+$strings['Subject'] = 'Temat';
+$strings['Date'] = 'Data';
+$strings['Score'] = 'Punkty';
+$strings['Mail ID'] = 'ID wiadomości';
+$strings['Status'] = 'Status';
+$strings['Print'] = 'Drukuj';
+$strings['CloseWindow'] = 'Zamknij';
+$strings['Unknown server type'] = 'Nieznany type serwera...';
+$strings['Showing messages'] = "Wyświetlenie wiadomości %s do %s &nbsp;&nbsp; (%s wszystkich)\r\n";
+$strings['View this message'] = 'Zobacz wiadomość';
+$strings['Message Unavailable'] = 'Wiadomość niedostępna';
+$strings['My Quarantine'] = 'Moja kwarantanna';
+$strings['Site Quarantine'] = 'Kwarantanna systemu';
+$strings['Message Processing'] = 'Przetwarzanie wiadomości';
+$strings['Quarantine Summary'] = 'Podsumowanie kwarantanny';
+$strings['Site Quarantine Summary'] = 'Podsumowanie kwarantanny systemu';
+$strings['Login'] = 'Login';
+$strings['spam(s)'] = 'spam(ów)';
+$strings['attachment(s)'] = 'załącznik(ów)';
+$strings['pending release request(s)'] = 'przetwarzanie żądania(ń) uwolnienia';
+$strings['virus(es)'] = 'wirus(ów)';
+$strings['bad header(s)'] = 'zły(ch) nagłów-ek/ków';
+$strings['You have to type some text'] = 'Musisz podać jakikolwiek tekst';
+$strings['Release'] = 'Zwolnij';
+$strings['Release/Request release'] = 'Zwolnij wiadomości oczekujące w kolejce';
+$strings['Request release'] = 'Prośba o zwolnienie';
+$strings['Delete'] = 'Skasuj';
+$strings['Delete All'] = 'Skasuj wszystko';
+$strings['Send report and go back'] = 'Wyśłanie raportu i powrót';
+$strings['Go back'] = "Powrót";
+$strings['Select All'] = "Wybierz wszystko";
+$strings['Clear All'] = "Wyczyść wszystko";
+$strings['Access Denied'] = "Dostęp zabroniony";
+$strings['My Pending Requests'] = "My Pending Requests";
+$strings['Site Pending Requests'] = "Site Pending Requests";
+$strings['Cancel Request'] = "Anuluj prośbę";
+$strings['User is not allowed to login'] = "Brak uprawnień do zalogowania dla użytkownika";
+$strings['Authentication successful'] = "Uwierzytelnienie poprawne";
+$strings['Authentication failed'] = "Uwierzytelnienie niepoprawne";
+$strings['LDAP connection failed'] = "Połączenie LDAP/AD nie powiodło się";
+$strings['Logout successful'] = "Wylogowanie poprawne";
+$strings['IMAP Authentication: no match'] = "IMAP Authentication: no match";
+$strings['Search for messages whose:'] = "Szukaj wiadomości, które:";
+$strings['Content Type'] = "Content Type";
+$strings['Clear search results'] = "Wyczyść wyniki wyszukiwania";
+$strings['contains'] = "zawiera";
+$strings['doesn\'t contain'] = "nie zawiera";
+$strings['equals'] = "";
+$strings['doesn\'t equal'] = "różny od";
+$strings['All'] = "Wszystko";
+$strings['Spam'] = "Spam";
+$strings['Banned'] = "Niepoprawny załącznik";
+$strings['Virus'] = "Wirus";
+$strings['Viruses'] = "Viruses";
+$strings['Bad Header'] = "Bad Header";
+$strings['Bad Headers'] = "Bad Headers";
+$strings['Pending Requests'] = "Pending Requests";
+$strings['last'] = "ostatnie";
+$strings['first'] = "pierwsze";
+$strings['previous'] = "poprzedni";
+$strings['There was an error executing your query'] = 'There was an error executing your query:';
+$strings['There are no matching records.'] = 'There are no matching records.';
+$strings['Domain'] = 'Domena';
+$strings['Total'] = 'Wszystko';
+$strings['X-Amavis-Alert'] = 'X-Amavis-Alert';
+$strings['Loading Summary...'] = 'Loading Summary...';
+$strings['Retrieving Messages...'] = 'Retrieving Messages...';
+?>
diff --git a/security/mailzu/pkg-plist b/security/mailzu/pkg-plist
index f577e20e306f..e6863a779cd3 100644
--- a/security/mailzu/pkg-plist
+++ b/security/mailzu/pkg-plist
@@ -25,6 +25,8 @@
%%WWWDIR%%/lang/fr.lang.php
%%WWWDIR%%/lang/it.help.php
%%WWWDIR%%/lang/it.lang.php
+%%WWWDIR%%/lang/pl.help.php
+%%WWWDIR%%/lang/pl.lang.php
%%WWWDIR%%/lang/pt_BR.lang.php
%%WWWDIR%%/lib/AmavisdEngine.class.php
%%WWWDIR%%/lib/Auth.class.php