View Issue Details

IDProjectCategoryView StatusLast Update
0003823mantisbtnewspublic2014-12-08 02:18
ReporterRJelinek Assigned Tovboctor  
PrioritynormalSeverityfeatureReproducibilityN/A
Status closedResolutionwon't fix 
Summary0003823: Send Mail to all users/access level/projects independent of a bug
Description

As I announced in 0003018, I would like to have a feature to inform all users configured for a project to inform about some news, which can not be done via an issue. Project news would be an idea, but who do not log in frequently is not reached by news. So I created a new menu entry called "message".

Steps To Reproduce

In config_defaults two new options are included to define the threshold for users, who are allowed to send messages.

Additional Information

Security issue,

  • users who have the right to send messages can spy on other projects, which users have which access levels, and send them messages. Maybe I implement a plausability-check.
Tagspatch
Attached Files
message_patch.diff (60,791 bytes)   
diff -Naurb epia_std/config_defaults_inc.php epia/config_defaults_inc.php
--- epia_std/config_defaults_inc.php	2004-05-10 20:41:58.000000000 +0200
+++ epia/config_defaults_inc.php	2004-05-10 20:44:09.000000000 +0200
+	#########
+	# Mail
+	#########
+	
+	# Threshold to send messages (global)
+	$g_message_global_send_threshold = ADMINISTRATOR;
+	
+	# Threshold to send messages (project)
+	$g_message_proj_send_threshold = MANAGER;
+
+	# Threshold to be excluded from messages
+	$g_message_excluded_threshold = ADMINISTRATOR;
+	
 	##########
 	# Icons
 	##########
diff -Naurb epia_std/core/access_api.php epia/core/access_api.php
--- epia_std/core/access_api.php	2004-05-04 13:21:44.000000000 +0200
+++ epia/core/access_api.php	2004-05-10 17:38:58.000000000 +0200
@@ -243,6 +243,31 @@
 	}
 
 	# --------------------
+	# Check if the user has any configured access level
+	# to send messages
+	function access_has_any_message_level( ) {
+
+		$t_has_message_global_send_access	= access_has_global_level ( config_get ( 'message_global_send_threshold' ) );
+		$t_has_message_proj_send_access		= access_has_project_level ( config_get ( 'message_proj_send_threshold' ) );
+		
+		if ( ($t_has_message_global_send_access ||
+			  $t_has_message_proj_send_access ) ) {
+			return true;
+		}
+	
+		return false;
+	}
+
+	# --------------------
+	# Check if the user has any configured access level
+	# to send messages and deny access to the page if not
+	function access_ensure_any_message_level( ) {
+		if ( ! access_has_any_message_level(  ) ) {
+			access_denied();
+		}
+	}
+
+	# --------------------
 	# Check the current user's access against the given value and return true
 	#  if the user's access is equal to or higher, false otherwise.
 	#
diff -Naurb epia_std/core/email_api.php epia/core/email_api.php
--- epia_std/core/email_api.php	2004-03-08 13:33:32.000000000 +0100
+++ epia/core/email_api.php	2004-05-10 16:38:03.000000000 +0200
@@ -813,4 +813,36 @@
 		}
 		return $result;
 	}
+	# --------------------
+	# Send a message to each of the given user, or to each user if the first
+	#  parameter is an array
+	# return an array of usernames to which the reminder was successfully sent
+	#
+	# @@@ I'm not sure this shouldn't return an array of user ids... more work for
+	#  the caller but cleaner from an API point of view.
+	function email_message ( $p_recipients, $p_message ) {
+		if ( ! is_array( $p_recipients ) ) {
+			$p_recipients = array( $p_recipients );
+		}
+
+		$t_subject = lang_get ( 'message_subject' );
+		$t_sender = current_user_get_field( 'username' ) . ' <' .
+					current_user_get_field( 'email' ) . '>' ;
+		$t_date = date( config_get( 'normal_date_format' ) );
+		$t_header = "\n" . lang_get( 'on' ) . " $t_date, $t_sender " .
+					lang_get( 'sent_you_this_message' ) . ":\n\n";
+
+		$result = array();
+		foreach ( $p_recipients as $t_recipient ) {
+			$t_email = user_get_email( $t_recipient );
+			$result[] = user_get_name( $t_recipient );
+			$t_contents = $t_header .
+							"\n\n$p_message";
+							
+			if( ON == config_get( 'enable_email_notification' ) ) {
+				email_send( $t_email, $t_subject, $t_contents );
+			}
+		}
+		return $result;
+	}
 ?>
diff -Naurb epia_std/core/helper_api.php epia/core/helper_api.php
--- epia_std/core/helper_api.php	2004-01-11 09:16:10.000000000 +0100
+++ epia/core/helper_api.php	2004-05-10 17:19:34.000000000 +0200
@@ -105,8 +105,15 @@
 	# If the second parameter is not given, the first parameter is compared
 	#  to the boolean value true
 	function check_selected( $p_var, $p_val=true ) {
-		if ( $p_var == $p_val ) {
+		if ( !is_array ( $p_var ) ) {
+			$p_var = array ( $p_var );
+		}
+		
+		foreach ($p_var as $t_var) {
+			if ( $t_var == $p_val ) {
 			echo ' selected="selected" ';
+				break;
+			}
 		}
 	}
 	# --------------------
@@ -117,8 +124,14 @@
 	# If the second parameter is not given, the first parameter is compared
 	#  to the boolean value true
 	function check_checked( $p_var, $p_val=true ) {
-		if ( $p_var == $p_val ) {
+		if ( !is_array ( $p_var ) ) {
+			$p_var = array ( $p_var );
+		}
+		foreach ($p_var as $t_var) {
+			if ( $t_var == $p_val ) {
 			echo ' checked="checked" ';
+				break;
+			}
 		}
 	}
 
diff -Naurb epia_std/core/html_api.php epia/core/html_api.php
--- epia_std/core/html_api.php	2004-05-04 15:02:01.000000000 +0200
+++ epia/core/html_api.php	2004-05-10 17:38:59.000000000 +0200
@@ -392,6 +392,12 @@
 				$t_menu_options[] = '<a href="proj_doc_page.php">' . lang_get( 'docs_link' ) . '</a>';
 				}
 
+				# message
+				if ( access_has_any_message_level ( ) ) {
+					$t_link = 'message_page.php';
+					$t_menu_options[] = "<a href=\"$t_link\">" . lang_get( 'message_link' ) . '</a>';
+				} 
+
 				# Manage Users (admins) or Manage Project (managers)
 				if ( access_has_any_manage_level( ) ) {
 					$t_link = 'manage_page.php';
diff -Naurb epia_std/core/print_api.php epia/core/print_api.php
--- epia_std/core/print_api.php	2004-02-10 18:04:39.000000000 +0100
+++ epia/core/print_api.php	2004-05-10 17:17:28.000000000 +0200
@@ -671,6 +671,29 @@
 		}
 	}
 	# --------------------
+	# list of projects that a user is in with minimum of a specific access_level
+	function print_project_user_list_option_list3( $p_user_id, $p_project_set, $p_access_level=ANYBODY ) {
+		$t_project_ids = user_get_accessible_projects( $p_user_id );
+		$t_project_list = array();
+		foreach ($t_project_ids as $t_project_id) {
+			if ( user_get_access_level ($p_user_id, $t_project_id) >= $p_access_level) {
+				$t_project_list[$t_project_id] = project_get_row ( $t_project_id );
+			}
+		}
+		
+		$t_project_list = multi_sort( array_values($t_project_list), 'name' );
+		
+		$count = count ( $t_project_list );
+		echo "$count";
+		foreach ($t_project_list as $t_project) {
+			$t_project_name = string_attribute ( $t_project['name'] );
+			$t_project_id   = $t_project['id'];
+			PRINT "<option value=\"$t_project_id\"";
+			check_selected ( $p_project_set, $t_project_id );
+			PRINT ">$t_project_name</option>";
+		}
+	}
+	# --------------------
 	# list of projects that a user is NOT in
 	function print_project_user_list( $p_user_id ) {
 		global	$g_mantis_project_user_list_table, $g_mantis_project_table;
diff -Naurb epia_std/lang/strings_chinese_simplified.txt epia/lang/strings_chinese_simplified.txt
--- epia_std/lang/strings_chinese_simplified.txt	2004-05-10 19:27:33.000000000 +0200
+++ epia/lang/strings_chinese_simplified.txt	2004-05-10 20:12:28.000000000 +0200
@@ -658,11 +658,28 @@
 $s_summary_link = "ժҪ";
 $s_account_link = "�����ʺ�";
 $s_users_link = "Users";
+$s_message_link = 'Message';
 $s_manage_link = "���";
 $s_edit_news_link = "�༭����";
 $s_docs_link = "ʹ��˵�";
 $s_logout_link = "ע�";
 
+# message_page.php
+$s_prev_step_button = 'Previous';
+$s_next_step_button = 'Next';
+$s_message_filter_project = 'Send message to all projects ... ?';
+$s_message_filter_project_yes = 'Yes, to all projects!';
+$s_message_filter_project_no = 'No, only to selected projects ...';
+$s_message_filter_access_level = 'Send message to all access-levels ... ?';
+$s_message_filter_access_level_yes = 'Yes, to all access-levels!';
+$s_message_filter_access_level_no = 'No, only to selected access-levels ...';
+$s_message_filter_user = 'Send message to all users ... ?';
+$s_message_filter_user_yes = 'Yes, to all users!';
+$s_message_filter_user_no = 'No, only to selected users ...';
+$s_message_filter_message = 'Which message should be send?';
+$s_message_subject = 'Information';
+$s_sent_you_this_message = 'has send you this message';
+
 # meta_inc.php
 
 # news_add.php
diff -Naurb epia_std/lang/strings_chinese_traditional.txt epia/lang/strings_chinese_traditional.txt
--- epia_std/lang/strings_chinese_traditional.txt	2004-05-10 19:28:18.000000000 +0200
+++ epia/lang/strings_chinese_traditional.txt	2004-05-10 20:12:25.000000000 +0200
@@ -654,12 +654,29 @@
 $s_report_bug_link = '�^������';
 $s_summary_link = '�K�n';
 $s_account_link = '�ӤH�b��';
+$s_message_link = 'Message';
 $s_users_link = 'Users';
 $s_manage_link = '�޲z';
 $s_edit_news_link = '�s��s�D';
 $s_docs_link = '�ϥλ���';
 $s_logout_link = '�n�X';
 
+# message_page.php
+$s_prev_step_button = 'Previous';
+$s_next_step_button = 'Next';
+$s_message_filter_project = 'Send message to all projects ... ?';
+$s_message_filter_project_yes = 'Yes, to all projects!';
+$s_message_filter_project_no = 'No, only to selected projects ...';
+$s_message_filter_access_level = 'Send message to all access-levels ... ?';
+$s_message_filter_access_level_yes = 'Yes, to all access-levels!';
+$s_message_filter_access_level_no = 'No, only to selected access-levels ...';
+$s_message_filter_user = 'Send message to all users ... ?';
+$s_message_filter_user_yes = 'Yes, to all users!';
+$s_message_filter_user_no = 'No, only to selected users ...';
+$s_message_filter_message = 'Which message should be send?';
+$s_message_subject = 'Information';
+$s_sent_you_this_message = 'has send you this message';
+
 # meta_inc.php
 
 # news_add.php
diff -Naurb epia_std/lang/strings_croatian.txt epia/lang/strings_croatian.txt
--- epia_std/lang/strings_croatian.txt	2004-05-10 19:28:55.000000000 +0200
+++ epia/lang/strings_croatian.txt	2004-05-10 20:12:22.000000000 +0200
@@ -656,12 +656,29 @@
 $s_report_bug_link = "Prijavi bug";
 $s_summary_link = "Sa�etak";
 $s_account_link = "Korisni�ki ra�un";
+$s_message_link = 'Message';
 $s_users_link = "Korisnici";
 $s_manage_link = "Administriraj";
 $s_edit_news_link = "Editiraj novosti";
 $s_docs_link = "Dokumenti";
 $s_logout_link = "Odjava";
 
+# message_page.php
+$s_prev_step_button = 'Previous';
+$s_next_step_button = 'Next';
+$s_message_filter_project = 'Send message to all projects ... ?';
+$s_message_filter_project_yes = 'Yes, to all projects!';
+$s_message_filter_project_no = 'No, only to selected projects ...';
+$s_message_filter_access_level = 'Send message to all access-levels ... ?';
+$s_message_filter_access_level_yes = 'Yes, to all access-levels!';
+$s_message_filter_access_level_no = 'No, only to selected access-levels ...';
+$s_message_filter_user = 'Send message to all users ... ?';
+$s_message_filter_user_yes = 'Yes, to all users!';
+$s_message_filter_user_no = 'No, only to selected users ...';
+$s_message_filter_message = 'Which message should be send?';
+$s_message_subject = 'Information';
+$s_sent_you_this_message = 'has send you this message';
+
 # meta_inc.php
 
 # news_add.php
diff -Naurb epia_std/lang/strings_czech.txt epia/lang/strings_czech.txt
--- epia_std/lang/strings_czech.txt	2004-05-10 19:29:22.000000000 +0200
+++ epia/lang/strings_czech.txt	2004-05-10 20:12:19.000000000 +0200
@@ -658,12 +658,29 @@
 $s_report_bug_link = 'Vlo�it bug';
 $s_summary_link = 'Shrnut�';
 $s_account_link = '��et';
+$s_message_link = 'Message';
 $s_users_link = 'U�ivatel�';
 $s_manage_link = 'Spr�va';
 $s_edit_news_link = 'Upravit novinky';
 $s_docs_link = 'Dokumenty';
 $s_logout_link = 'Odhl�sit';
 
+# message_page.php
+$s_prev_step_button = 'Previous';
+$s_next_step_button = 'Next';
+$s_message_filter_project = 'Send message to all projects ... ?';
+$s_message_filter_project_yes = 'Yes, to all projects!';
+$s_message_filter_project_no = 'No, only to selected projects ...';
+$s_message_filter_access_level = 'Send message to all access-levels ... ?';
+$s_message_filter_access_level_yes = 'Yes, to all access-levels!';
+$s_message_filter_access_level_no = 'No, only to selected access-levels ...';
+$s_message_filter_user = 'Send message to all users ... ?';
+$s_message_filter_user_yes = 'Yes, to all users!';
+$s_message_filter_user_no = 'No, only to selected users ...';
+$s_message_filter_message = 'Which message should be send?';
+$s_message_subject = 'Information';
+$s_sent_you_this_message = 'has send you this message';
+
 # meta_inc.php
 
 # news_add.php
diff -Naurb epia_std/lang/strings_danish.txt epia/lang/strings_danish.txt
--- epia_std/lang/strings_danish.txt	2004-05-10 19:29:43.000000000 +0200
+++ epia/lang/strings_danish.txt	2004-05-10 20:12:16.000000000 +0200
@@ -654,12 +654,29 @@
 $s_report_bug_link = 'Rapporter Fejl';
 $s_summary_link = 'Opsummering';
 $s_account_link = 'Min Konto';
+$s_message_link = 'Message';
 $s_users_link = 'Bruger';
 $s_manage_link = 'Administrer';
 $s_edit_news_link = 'Rediger Nyheder';
 $s_docs_link = 'Dokumentation';
 $s_logout_link = 'Log Af';
 
+# message_page.php
+$s_prev_step_button = 'Previous';
+$s_next_step_button = 'Next';
+$s_message_filter_project = 'Send message to all projects ... ?';
+$s_message_filter_project_yes = 'Yes, to all projects!';
+$s_message_filter_project_no = 'No, only to selected projects ...';
+$s_message_filter_access_level = 'Send message to all access-levels ... ?';
+$s_message_filter_access_level_yes = 'Yes, to all access-levels!';
+$s_message_filter_access_level_no = 'No, only to selected access-levels ...';
+$s_message_filter_user = 'Send message to all users ... ?';
+$s_message_filter_user_yes = 'Yes, to all users!';
+$s_message_filter_user_no = 'No, only to selected users ...';
+$s_message_filter_message = 'Which message should be send?';
+$s_message_subject = 'Information';
+$s_sent_you_this_message = 'has send you this message';
+
 # meta_inc.php
 
 # news_add.php
diff -Naurb epia_std/lang/strings_dutch.txt epia/lang/strings_dutch.txt
--- epia_std/lang/strings_dutch.txt	2004-05-10 19:30:29.000000000 +0200
+++ epia/lang/strings_dutch.txt	2004-05-10 20:12:13.000000000 +0200
@@ -656,12 +656,29 @@
 $s_report_bug_link = 'Rapporteer bug';
 $s_summary_link = 'Samenvatting';
 $s_account_link = 'Accounts';
+$s_message_link = 'Message';
 $s_users_link = 'Gebruikers';
 $s_manage_link = 'Beheer';
 $s_edit_news_link = 'Aanpassen nieuws';
 $s_docs_link = 'Documenten';
 $s_logout_link = 'Uitloggen';
 
+# message_page.php
+$s_prev_step_button = 'Previous';
+$s_next_step_button = 'Next';
+$s_message_filter_project = 'Send message to all projects ... ?';
+$s_message_filter_project_yes = 'Yes, to all projects!';
+$s_message_filter_project_no = 'No, only to selected projects ...';
+$s_message_filter_access_level = 'Send message to all access-levels ... ?';
+$s_message_filter_access_level_yes = 'Yes, to all access-levels!';
+$s_message_filter_access_level_no = 'No, only to selected access-levels ...';
+$s_message_filter_user = 'Send message to all users ... ?';
+$s_message_filter_user_yes = 'Yes, to all users!';
+$s_message_filter_user_no = 'No, only to selected users ...';
+$s_message_filter_message = 'Which message should be send?';
+$s_message_subject = 'Information';
+$s_sent_you_this_message = 'has send you this message';
+
 # meta_inc.php
 
 # news_add.php
diff -Naurb epia_std/lang/strings_english.txt epia/lang/strings_english.txt
--- epia_std/lang/strings_english.txt	2004-05-10 19:26:03.000000000 +0200
+++ epia/lang/strings_english.txt	2004-05-10 20:11:00.000000000 +0200
@@ -656,12 +656,29 @@
 $s_report_bug_link = 'Make Entry';
 $s_summary_link = 'Summary';
 $s_account_link = 'My Account';
+$s_message_link = 'Message';
 $s_users_link = 'Users';
 $s_manage_link = 'Manage';
 $s_edit_news_link = 'Edit News';
 $s_docs_link = 'Docs';
 $s_logout_link = 'Logout';
 
+# message_page.php
+$s_prev_step_button = 'Previous';
+$s_next_step_button = 'Next';
+$s_message_filter_project = 'Send message to all projects ... ?';
+$s_message_filter_project_yes = 'Yes, to all projects!';
+$s_message_filter_project_no = 'No, only to selected projects ...';
+$s_message_filter_access_level = 'Send message to all access-levels ... ?';
+$s_message_filter_access_level_yes = 'Yes, to all access-levels!';
+$s_message_filter_access_level_no = 'No, only to selected access-levels ...';
+$s_message_filter_user = 'Send message to all users ... ?';
+$s_message_filter_user_yes = 'Yes, to all users!';
+$s_message_filter_user_no = 'No, only to selected users ...';
+$s_message_filter_message = 'Which message should be send?';
+$s_message_subject = 'Information';
+$s_sent_you_this_message = 'has send you this message';
+
 # meta_inc.php
 
 # news_add.php
diff -Naurb epia_std/lang/strings_estonian.txt epia/lang/strings_estonian.txt
--- epia_std/lang/strings_estonian.txt	2004-05-10 19:31:12.000000000 +0200
+++ epia/lang/strings_estonian.txt	2004-05-10 20:12:08.000000000 +0200
@@ -656,12 +656,29 @@
 $s_report_bug_link = 'Bugidest teatamine';
 $s_summary_link = 'Kokkuv�te';
 $s_account_link = 'Minu andmed';
+$s_message_link = 'Message';
 $s_users_link = 'Kasutajad';
 $s_manage_link = 'Haldus';
 $s_edit_news_link = 'Uudiste redigeerimine';
 $s_docs_link = 'Dokumendid';
 $s_logout_link = 'Logi v�lja';
 
+# message_page.php
+$s_prev_step_button = 'Previous';
+$s_next_step_button = 'Next';
+$s_message_filter_project = 'Send message to all projects ... ?';
+$s_message_filter_project_yes = 'Yes, to all projects!';
+$s_message_filter_project_no = 'No, only to selected projects ...';
+$s_message_filter_access_level = 'Send message to all access-levels ... ?';
+$s_message_filter_access_level_yes = 'Yes, to all access-levels!';
+$s_message_filter_access_level_no = 'No, only to selected access-levels ...';
+$s_message_filter_user = 'Send message to all users ... ?';
+$s_message_filter_user_yes = 'Yes, to all users!';
+$s_message_filter_user_no = 'No, only to selected users ...';
+$s_message_filter_message = 'Which message should be send?';
+$s_message_subject = 'Information';
+$s_sent_you_this_message = 'has send you this message';
+
 # meta_inc.php
 
 # news_add.php
diff -Naurb epia_std/lang/strings_finnish.txt epia/lang/strings_finnish.txt
--- epia_std/lang/strings_finnish.txt	2004-05-10 19:31:40.000000000 +0200
+++ epia/lang/strings_finnish.txt	2004-05-10 20:12:05.000000000 +0200
@@ -657,12 +657,29 @@
 $s_report_bug_link = 'Raportoi Bugi';
 $s_summary_link = 'Yhteenveto';
 $s_account_link = 'K�ytt�j�tunnukseni';
+$s_message_link = 'Message';
 $s_users_link = 'K�ytt�j�t';
 $s_manage_link = 'Hallinta';
 $s_edit_news_link = 'Muokkaa Uutisia';
 $s_docs_link = 'Dokumentaatio';
 $s_logout_link = 'Poistu';
 
+# message_page.php
+$s_prev_step_button = 'Previous';
+$s_next_step_button = 'Next';
+$s_message_filter_project = 'Send message to all projects ... ?';
+$s_message_filter_project_yes = 'Yes, to all projects!';
+$s_message_filter_project_no = 'No, only to selected projects ...';
+$s_message_filter_access_level = 'Send message to all access-levels ... ?';
+$s_message_filter_access_level_yes = 'Yes, to all access-levels!';
+$s_message_filter_access_level_no = 'No, only to selected access-levels ...';
+$s_message_filter_user = 'Send message to all users ... ?';
+$s_message_filter_user_yes = 'Yes, to all users!';
+$s_message_filter_user_no = 'No, only to selected users ...';
+$s_message_filter_message = 'Which message should be send?';
+$s_message_subject = 'Information';
+$s_sent_you_this_message = 'has send you this message';
+
 # meta_inc.php
 
 # news_add.php
diff -Naurb epia_std/lang/strings_french.txt epia/lang/strings_french.txt
--- epia_std/lang/strings_french.txt	2004-05-10 19:31:59.000000000 +0200
+++ epia/lang/strings_french.txt	2004-05-10 20:12:01.000000000 +0200
@@ -661,12 +661,29 @@
 $s_report_bug_link = 'Rapporter un bug';
 $s_summary_link = 'Synth�se';
 $s_account_link = 'Options';
+$s_message_link = 'Message';
 $s_users_link = 'Utilisateurs';
 $s_manage_link = 'Administration';
 $s_edit_news_link = 'Modifier les nouvelles';
 $s_docs_link = 'Documentation';
 $s_logout_link = 'D�connexion';
 
+# message_page.php
+$s_prev_step_button = 'Previous';
+$s_next_step_button = 'Next';
+$s_message_filter_project = 'Send message to all projects ... ?';
+$s_message_filter_project_yes = 'Yes, to all projects!';
+$s_message_filter_project_no = 'No, only to selected projects ...';
+$s_message_filter_access_level = 'Send message to all access-levels ... ?';
+$s_message_filter_access_level_yes = 'Yes, to all access-levels!';
+$s_message_filter_access_level_no = 'No, only to selected access-levels ...';
+$s_message_filter_user = 'Send message to all users ... ?';
+$s_message_filter_user_yes = 'Yes, to all users!';
+$s_message_filter_user_no = 'No, only to selected users ...';
+$s_message_filter_message = 'Which message should be send?';
+$s_message_subject = 'Information';
+$s_sent_you_this_message = 'has send you this message';
+
 # meta_inc.php
 
 # news_add.php
diff -Naurb epia_std/lang/strings_german.txt epia/lang/strings_german.txt
--- epia_std/lang/strings_german.txt	2004-05-10 17:38:58.000000000 +0200
+++ epia/lang/strings_german.txt	2004-05-10 20:08:46.000000000 +0200
@@ -496,6 +496,22 @@
 $s_redirecting = '...Weiterleitung';
 $s_here = 'hier klicken';
 
+# message_page.php
+$s_prev_step_button = 'Vorheriger Schritt';
+$s_next_step_button = 'N�chster Schritt';
+$s_message_filter_project = 'Soll die Nachricht an alle Projekte gehen ... ?';
+$s_message_filter_project_yes = 'Ja, an alle Projekte!';
+$s_message_filter_project_no = 'Nein, an ausgew�hlte Projekte ...';
+$s_message_filter_access_level = 'Soll die Nachricht an alle Rechte-Ebenen gehen ... ?';
+$s_message_filter_access_level_yes = 'Ja, an alle Rechte-Ebenen!';
+$s_message_filter_access_level_no = 'Nein, an ausgew�hlte Rechte-Ebenen ...';
+$s_message_filter_user = 'Soll die Nachricht an alle User mit den ausw�hlten Rechte-Ebenen gehen ... ?';
+$s_message_filter_user_yes = 'Ja, an alle User!';
+$s_message_filter_user_no = 'Nein, an ausgew�hlte User ...';
+$s_message_filter_message = 'Welche Nachricht wollen sie senden ?';
+$s_message_subject = 'Information';
+$s_sent_you_this_message = 'hat Ihnen diese Information gesendet';
+
 # main_page.php
 $s_open_and_assigned_to_me = 'Offen und mir zugewiesen';
 $s_open_and_reported_to_me = 'Offen und von mir berichtet';
@@ -666,6 +650,22 @@
 $s_docs_link = 'Dokumentation';
 $s_logout_link = 'Abmelden';
 
+# message_page.php
+$s_prev_step_button = 'Vorheriger Schritt';
+$s_next_step_button = 'N�chster Schritt';
+$s_message_filter_project = 'Soll die Nachricht an alle Projekte gehen ... ?';
+$s_message_filter_project_yes = 'Ja, an alle Projekte!';
+$s_message_filter_project_no = 'Nein, an ausgew�hlte Projekte ...';
+$s_message_filter_access_level = 'Soll die Nachricht an alle Rechte-Ebenen gehen ... ?';
+$s_message_filter_access_level_yes = 'Ja, an alle Rechte-Ebenen!';
+$s_message_filter_access_level_no = 'Nein, an ausgew�hlte Rechte-Ebenen ...';
+$s_message_filter_user = 'Soll die Nachricht an alle User mit den ausw�hlten Rechte-Ebenen gehen ... ?';
+$s_message_filter_user_yes = 'Ja, an alle User!';
+$s_message_filter_user_no = 'Nein, an ausgew�hlte User ...';
+$s_message_filter_message = 'Welche Nachricht wollen sie senden ?';
+$s_message_subject = 'Information';
+$s_sent_you_this_message = 'hat Ihnen diese Information gesendet';
+
 # meta_inc.php
 
 # news_add.php
diff -Naurb epia_std/lang/strings_hungarian.txt epia/lang/strings_hungarian.txt
--- epia_std/lang/strings_hungarian.txt	2004-05-10 19:32:27.000000000 +0200
+++ epia/lang/strings_hungarian.txt	2004-05-10 20:11:58.000000000 +0200
@@ -655,12 +655,29 @@
 $s_report_bug_link = 'Hiba bejelent�se';
 $s_summary_link = '�sszegz�s';
 $s_account_link = 'Fi�k';
+$s_message_link = 'Message';
 $s_users_link = 'Felhaszn�l�k';
 $s_manage_link = 'Karbantart�s';
 $s_edit_news_link = 'H�rek';
 $s_docs_link = 'Dokument�ci�';
 $s_logout_link = 'Kijelentkez�s';
 
+# message_page.php
+$s_prev_step_button = 'Previous';
+$s_next_step_button = 'Next';
+$s_message_filter_project = 'Send message to all projects ... ?';
+$s_message_filter_project_yes = 'Yes, to all projects!';
+$s_message_filter_project_no = 'No, only to selected projects ...';
+$s_message_filter_access_level = 'Send message to all access-levels ... ?';
+$s_message_filter_access_level_yes = 'Yes, to all access-levels!';
+$s_message_filter_access_level_no = 'No, only to selected access-levels ...';
+$s_message_filter_user = 'Send message to all users ... ?';
+$s_message_filter_user_yes = 'Yes, to all users!';
+$s_message_filter_user_no = 'No, only to selected users ...';
+$s_message_filter_message = 'Which message should be send?';
+$s_message_subject = 'Information';
+$s_sent_you_this_message = 'has send you this message';
+
 # meta_inc.php
 
 # news_add.php
diff -Naurb epia_std/lang/strings_italian.txt epia/lang/strings_italian.txt
--- epia_std/lang/strings_italian.txt	2004-05-10 19:33:11.000000000 +0200
+++ epia/lang/strings_italian.txt	2004-05-10 20:11:54.000000000 +0200
@@ -656,12 +656,29 @@
 $s_report_bug_link = "Inserisci nuovo Bug";
 $s_summary_link = "Statistiche";
 $s_account_link = "Account";
+$s_message_link = 'Message';
 $s_users_link = "Utenti";
 $s_manage_link = "Amministra";
 $s_edit_news_link = "Modifica Notizie";
 $s_docs_link = "Documentazione";
 $s_logout_link = "Esci";
 
+# message_page.php
+$s_prev_step_button = 'Previous';
+$s_next_step_button = 'Next';
+$s_message_filter_project = 'Send message to all projects ... ?';
+$s_message_filter_project_yes = 'Yes, to all projects!';
+$s_message_filter_project_no = 'No, only to selected projects ...';
+$s_message_filter_access_level = 'Send message to all access-levels ... ?';
+$s_message_filter_access_level_yes = 'Yes, to all access-levels!';
+$s_message_filter_access_level_no = 'No, only to selected access-levels ...';
+$s_message_filter_user = 'Send message to all users ... ?';
+$s_message_filter_user_yes = 'Yes, to all users!';
+$s_message_filter_user_no = 'No, only to selected users ...';
+$s_message_filter_message = 'Which message should be send?';
+$s_message_subject = 'Information';
+$s_sent_you_this_message = 'has send you this message';
+
 # meta_inc.php
 
 # news_add.php
diff -Naurb epia_std/lang/strings_japanese_euc.txt epia/lang/strings_japanese_euc.txt
--- epia_std/lang/strings_japanese_euc.txt	2004-05-10 19:33:42.000000000 +0200
+++ epia/lang/strings_japanese_euc.txt	2004-05-10 20:11:50.000000000 +0200
@@ -654,12 +654,29 @@
 $s_report_bug_link = "��Ͽ";
 $s_summary_link = "���ޥ�";
 $s_account_link = "������������";
+$s_message_link = 'Message';
 $s_users_link = "�ץ����������";
 $s_manage_link = "�����ƥ���";
 $s_edit_news_link = "�˥塼���Խ�";
 $s_docs_link = "�ɥ������";
 $s_logout_link = "��������";
 
+# message_page.php
+$s_prev_step_button = 'Previous';
+$s_next_step_button = 'Next';
+$s_message_filter_project = 'Send message to all projects ... ?';
+$s_message_filter_project_yes = 'Yes, to all projects!';
+$s_message_filter_project_no = 'No, only to selected projects ...';
+$s_message_filter_access_level = 'Send message to all access-levels ... ?';
+$s_message_filter_access_level_yes = 'Yes, to all access-levels!';
+$s_message_filter_access_level_no = 'No, only to selected access-levels ...';
+$s_message_filter_user = 'Send message to all users ... ?';
+$s_message_filter_user_yes = 'Yes, to all users!';
+$s_message_filter_user_no = 'No, only to selected users ...';
+$s_message_filter_message = 'Which message should be send?';
+$s_message_subject = 'Information';
+$s_sent_you_this_message = 'has send you this message';
+
 # meta_inc.php
 
 # news_add.php
diff -Naurb epia_std/lang/strings_japanese_sjis.txt epia/lang/strings_japanese_sjis.txt
--- epia_std/lang/strings_japanese_sjis.txt	2004-05-10 19:34:08.000000000 +0200
+++ epia/lang/strings_japanese_sjis.txt	2004-05-10 20:11:46.000000000 +0200
@@ -654,12 +654,29 @@
 $s_report_bug_link = "�o�^";
 $s_summary_link = "�T�}��";
 $s_account_link = "�A�J�E���g�ݒ�";
+$s_message_link = 'Message';
 $s_users_link = "�v���W�F�N�g�ݒ�";
 $s_manage_link = "�V�X�e���Ǘ�";
 $s_edit_news_link = "�j���[�X�ҏW";
 $s_docs_link = "�h�L�������g";
 $s_logout_link = "���O�A�E�g";
 
+# message_page.php
+$s_prev_step_button = 'Previous';
+$s_next_step_button = 'Next';
+$s_message_filter_project = 'Send message to all projects ... ?';
+$s_message_filter_project_yes = 'Yes, to all projects!';
+$s_message_filter_project_no = 'No, only to selected projects ...';
+$s_message_filter_access_level = 'Send message to all access-levels ... ?';
+$s_message_filter_access_level_yes = 'Yes, to all access-levels!';
+$s_message_filter_access_level_no = 'No, only to selected access-levels ...';
+$s_message_filter_user = 'Send message to all users ... ?';
+$s_message_filter_user_yes = 'Yes, to all users!';
+$s_message_filter_user_no = 'No, only to selected users ...';
+$s_message_filter_message = 'Which message should be send?';
+$s_message_subject = 'Information';
+$s_sent_you_this_message = 'has send you this message';
+
 # meta_inc.php
 
 # news_add.php
diff -Naurb epia_std/lang/strings_korean.txt epia/lang/strings_korean.txt
--- epia_std/lang/strings_korean.txt	2004-05-10 19:34:32.000000000 +0200
+++ epia/lang/strings_korean.txt	2004-05-10 20:11:41.000000000 +0200
@@ -655,12 +655,29 @@
 $s_report_bug_link = '���� �����ϱ�';
 $s_summary_link = '���';
 $s_account_link = '�� ����';
+$s_message_link = 'Message';
 $s_users_link = '����';
 $s_manage_link = '����';
 $s_edit_news_link = '���� ��';
 $s_docs_link = '����';
 $s_logout_link = '�α׾ƿ�';
 
+# message_page.php
+$s_prev_step_button = 'Previous';
+$s_next_step_button = 'Next';
+$s_message_filter_project = 'Send message to all projects ... ?';
+$s_message_filter_project_yes = 'Yes, to all projects!';
+$s_message_filter_project_no = 'No, only to selected projects ...';
+$s_message_filter_access_level = 'Send message to all access-levels ... ?';
+$s_message_filter_access_level_yes = 'Yes, to all access-levels!';
+$s_message_filter_access_level_no = 'No, only to selected access-levels ...';
+$s_message_filter_user = 'Send message to all users ... ?';
+$s_message_filter_user_yes = 'Yes, to all users!';
+$s_message_filter_user_no = 'No, only to selected users ...';
+$s_message_filter_message = 'Which message should be send?';
+$s_message_subject = 'Information';
+$s_sent_you_this_message = 'has send you this message';
+
 # meta_inc.php
 
 # news_add.php
diff -Naurb epia_std/lang/strings_latvian.txt epia/lang/strings_latvian.txt
--- epia_std/lang/strings_latvian.txt	2004-05-10 19:34:55.000000000 +0200
+++ epia/lang/strings_latvian.txt	2004-05-10 20:11:31.000000000 +0200
@@ -656,12 +656,29 @@
 $s_report_bug_link = "Piere�istr�t k�du";
 $s_summary_link = "Statistika";
 $s_account_link = "Re��mi";
+$s_message_link = 'Message';
 $s_users_link = "Lietot�ji";
 $s_manage_link = "Vad�ba";
 $s_edit_news_link = "Jaunumi";
 $s_docs_link = "Dokument�cija";
 $s_logout_link = "Beigt";
 
+# message_page.php
+$s_prev_step_button = 'Previous';
+$s_next_step_button = 'Next';
+$s_message_filter_project = 'Send message to all projects ... ?';
+$s_message_filter_project_yes = 'Yes, to all projects!';
+$s_message_filter_project_no = 'No, only to selected projects ...';
+$s_message_filter_access_level = 'Send message to all access-levels ... ?';
+$s_message_filter_access_level_yes = 'Yes, to all access-levels!';
+$s_message_filter_access_level_no = 'No, only to selected access-levels ...';
+$s_message_filter_user = 'Send message to all users ... ?';
+$s_message_filter_user_yes = 'Yes, to all users!';
+$s_message_filter_user_no = 'No, only to selected users ...';
+$s_message_filter_message = 'Which message should be send?';
+$s_message_subject = 'Information';
+$s_sent_you_this_message = 'has send you this message';
+
 # meta_inc.php
 
 # news_add.php
diff -Naurb epia_std/lang/strings_lithuanian.txt epia/lang/strings_lithuanian.txt
--- epia_std/lang/strings_lithuanian.txt	2004-05-10 19:35:14.000000000 +0200
+++ epia/lang/strings_lithuanian.txt	2004-05-10 20:11:26.000000000 +0200
@@ -666,12 +666,29 @@
 $s_report_bug_link = 'Prane�ti apie problem�';
 $s_summary_link = 'Statistika';
 $s_account_link = 'Mano prisijungimas';
+$s_message_link = 'Message';
 $s_users_link = 'Vartotojai';
 $s_manage_link = 'Valdyti';
 $s_edit_news_link = 'Redaguoti naujienas';
 $s_docs_link = 'Dokumentai';
 $s_logout_link = 'Atsijungti';
 
+# message_page.php
+$s_prev_step_button = 'Previous';
+$s_next_step_button = 'Next';
+$s_message_filter_project = 'Send message to all projects ... ?';
+$s_message_filter_project_yes = 'Yes, to all projects!';
+$s_message_filter_project_no = 'No, only to selected projects ...';
+$s_message_filter_access_level = 'Send message to all access-levels ... ?';
+$s_message_filter_access_level_yes = 'Yes, to all access-levels!';
+$s_message_filter_access_level_no = 'No, only to selected access-levels ...';
+$s_message_filter_user = 'Send message to all users ... ?';
+$s_message_filter_user_yes = 'Yes, to all users!';
+$s_message_filter_user_no = 'No, only to selected users ...';
+$s_message_filter_message = 'Which message should be send?';
+$s_message_subject = 'Information';
+$s_sent_you_this_message = 'has send you this message';
+
 # meta_inc.php
 
 # news_add.php
diff -Naurb epia_std/lang/strings_norwegian.txt epia/lang/strings_norwegian.txt
--- epia_std/lang/strings_norwegian.txt	2004-05-10 19:35:29.000000000 +0200
+++ epia/lang/strings_norwegian.txt	2004-05-10 20:11:20.000000000 +0200
@@ -656,12 +656,29 @@
 $s_report_bug_link = 'Ny sak';
 $s_summary_link = 'Oppsummering';
 $s_account_link = 'Konto';
+$s_message_link = 'Message';
 $s_users_link = 'Brukere';
 $s_manage_link = 'Administrasjon';
 $s_edit_news_link = 'Rediger nyheter';
 $s_docs_link = 'Dokumentasjon';
 $s_logout_link = 'Logg ut';
 
+# message_page.php
+$s_prev_step_button = 'Previous';
+$s_next_step_button = 'Next';
+$s_message_filter_project = 'Send message to all projects ... ?';
+$s_message_filter_project_yes = 'Yes, to all projects!';
+$s_message_filter_project_no = 'No, only to selected projects ...';
+$s_message_filter_access_level = 'Send message to all access-levels ... ?';
+$s_message_filter_access_level_yes = 'Yes, to all access-levels!';
+$s_message_filter_access_level_no = 'No, only to selected access-levels ...';
+$s_message_filter_user = 'Send message to all users ... ?';
+$s_message_filter_user_yes = 'Yes, to all users!';
+$s_message_filter_user_no = 'No, only to selected users ...';
+$s_message_filter_message = 'Which message should be send?';
+$s_message_subject = 'Information';
+$s_sent_you_this_message = 'has send you this message';
+
 # meta_inc.php
 
 # news_add.php
diff -Naurb epia_std/lang/strings_polish.txt epia/lang/strings_polish.txt
--- epia_std/lang/strings_polish.txt	2004-05-10 19:35:56.000000000 +0200
+++ epia/lang/strings_polish.txt	2004-05-10 20:11:16.000000000 +0200
@@ -655,12 +655,29 @@
 $s_report_bug_link = 'Zg�o� b��d';
 $s_summary_link = 'Statystyki';
 $s_account_link = 'Twoje konto';
+$s_message_link = 'Message';
 $s_users_link = 'U�ytkownicy';
 $s_manage_link = 'Zarz�dzanie';
 $s_edit_news_link = 'Wiadomo�ci';
 $s_docs_link = 'Dokumentacja';
 $s_logout_link = 'Wylogowanie';
 
+# message_page.php
+$s_prev_step_button = 'Previous';
+$s_next_step_button = 'Next';
+$s_message_filter_project = 'Send message to all projects ... ?';
+$s_message_filter_project_yes = 'Yes, to all projects!';
+$s_message_filter_project_no = 'No, only to selected projects ...';
+$s_message_filter_access_level = 'Send message to all access-levels ... ?';
+$s_message_filter_access_level_yes = 'Yes, to all access-levels!';
+$s_message_filter_access_level_no = 'No, only to selected access-levels ...';
+$s_message_filter_user = 'Send message to all users ... ?';
+$s_message_filter_user_yes = 'Yes, to all users!';
+$s_message_filter_user_no = 'No, only to selected users ...';
+$s_message_filter_message = 'Which message should be send?';
+$s_message_subject = 'Information';
+$s_sent_you_this_message = 'has send you this message';
+
 # meta_inc.php
 
 # news_add.php
diff -Naurb epia_std/lang/strings_portuguese_brazil.txt epia/lang/strings_portuguese_brazil.txt
--- epia_std/lang/strings_portuguese_brazil.txt	2004-05-10 19:36:24.000000000 +0200
+++ epia/lang/strings_portuguese_brazil.txt	2004-05-10 20:11:12.000000000 +0200
@@ -655,12 +655,29 @@
 $s_report_bug_link = "Relatar Bugs";
 $s_summary_link    = "Resumo";
 $s_account_link    = "Sua conta";
+$s_message_link = 'Message';
 $s_users_link      = "Usu&aacute;rios";
 $s_manage_link     = "Gerenciador";
 $s_edit_news_link  = "Editar not&iacute;cias";
 $s_docs_link       = "Docs.";
 $s_logout_link     = "Sair";
 
+# message_page.php
+$s_prev_step_button = 'Previous';
+$s_next_step_button = 'Next';
+$s_message_filter_project = 'Send message to all projects ... ?';
+$s_message_filter_project_yes = 'Yes, to all projects!';
+$s_message_filter_project_no = 'No, only to selected projects ...';
+$s_message_filter_access_level = 'Send message to all access-levels ... ?';
+$s_message_filter_access_level_yes = 'Yes, to all access-levels!';
+$s_message_filter_access_level_no = 'No, only to selected access-levels ...';
+$s_message_filter_user = 'Send message to all users ... ?';
+$s_message_filter_user_yes = 'Yes, to all users!';
+$s_message_filter_user_no = 'No, only to selected users ...';
+$s_message_filter_message = 'Which message should be send?';
+$s_message_subject = 'Information';
+$s_sent_you_this_message = 'has send you this message';
+
 # meta_inc.php
 
 # news_add.php
diff -Naurb epia_std/lang/strings_portuguese_standard.txt epia/lang/strings_portuguese_standard.txt
--- epia_std/lang/strings_portuguese_standard.txt	2004-05-10 19:36:53.000000000 +0200
+++ epia/lang/strings_portuguese_standard.txt	2004-05-10 20:11:07.000000000 +0200
@@ -655,12 +655,29 @@
 $s_report_bug_link = 'Relatar Bugs';
 $s_summary_link = 'Sum�rio';
 $s_account_link = 'Conta Pessoal';
+$s_message_link = 'Message';
 $s_users_link = 'Utilizadores';
 $s_manage_link = 'Gerenciador';
 $s_edit_news_link = 'Editar Not�cias';
 $s_docs_link = 'Docs.';
 $s_logout_link = 'Sair';
 
+# message_page.php
+$s_prev_step_button = 'Previous';
+$s_next_step_button = 'Next';
+$s_message_filter_project = 'Send message to all projects ... ?';
+$s_message_filter_project_yes = 'Yes, to all projects!';
+$s_message_filter_project_no = 'No, only to selected projects ...';
+$s_message_filter_access_level = 'Send message to all access-levels ... ?';
+$s_message_filter_access_level_yes = 'Yes, to all access-levels!';
+$s_message_filter_access_level_no = 'No, only to selected access-levels ...';
+$s_message_filter_user = 'Send message to all users ... ?';
+$s_message_filter_user_yes = 'Yes, to all users!';
+$s_message_filter_user_no = 'No, only to selected users ...';
+$s_message_filter_message = 'Which message should be send?';
+$s_message_subject = 'Information';
+$s_sent_you_this_message = 'has send you this message';
+
 # meta_inc.php
 
 # news_add.php
diff -Naurb epia_std/lang/strings_romanian.txt epia/lang/strings_romanian.txt
--- epia_std/lang/strings_romanian.txt	2004-05-10 19:37:13.000000000 +0200
+++ epia/lang/strings_romanian.txt	2004-05-10 20:12:31.000000000 +0200
@@ -654,12 +654,29 @@
 $s_report_bug_link = 'Semnalare bug';
 $s_summary_link = 'Sumar';
 $s_account_link = 'Cont';
+$s_message_link = 'Message';
 $s_users_link = 'Utilizatori';
 $s_manage_link = 'Gestiune';
 $s_edit_news_link = 'Modifica stirile';
 $s_docs_link = 'Documentatie';
 $s_logout_link = 'Deconectare';
 
+# message_page.php
+$s_prev_step_button = 'Previous';
+$s_next_step_button = 'Next';
+$s_message_filter_project = 'Send message to all projects ... ?';
+$s_message_filter_project_yes = 'Yes, to all projects!';
+$s_message_filter_project_no = 'No, only to selected projects ...';
+$s_message_filter_access_level = 'Send message to all access-levels ... ?';
+$s_message_filter_access_level_yes = 'Yes, to all access-levels!';
+$s_message_filter_access_level_no = 'No, only to selected access-levels ...';
+$s_message_filter_user = 'Send message to all users ... ?';
+$s_message_filter_user_yes = 'Yes, to all users!';
+$s_message_filter_user_no = 'No, only to selected users ...';
+$s_message_filter_message = 'Which message should be send?';
+$s_message_subject = 'Information';
+$s_sent_you_this_message = 'has send you this message';
+
 # meta_inc.php
 
 # news_add.php
diff -Naurb epia_std/lang/strings_russian.txt epia/lang/strings_russian.txt
--- epia_std/lang/strings_russian.txt	2004-05-10 19:37:40.000000000 +0200
+++ epia/lang/strings_russian.txt	2004-05-10 20:12:35.000000000 +0200
@@ -655,12 +655,29 @@
 $s_report_bug_link = '������� ���';
 $s_summary_link = '����������';
 $s_account_link = '��� ���������';
+$s_message_link = 'Message';
 $s_users_link = '�����������';
 $s_manage_link = '����������';
 $s_edit_news_link = '������������ �������';
 $s_docs_link = '����������';
 $s_logout_link = '����';
 
+# message_page.php
+$s_prev_step_button = 'Previous';
+$s_next_step_button = 'Next';
+$s_message_filter_project = 'Send message to all projects ... ?';
+$s_message_filter_project_yes = 'Yes, to all projects!';
+$s_message_filter_project_no = 'No, only to selected projects ...';
+$s_message_filter_access_level = 'Send message to all access-levels ... ?';
+$s_message_filter_access_level_yes = 'Yes, to all access-levels!';
+$s_message_filter_access_level_no = 'No, only to selected access-levels ...';
+$s_message_filter_user = 'Send message to all users ... ?';
+$s_message_filter_user_yes = 'Yes, to all users!';
+$s_message_filter_user_no = 'No, only to selected users ...';
+$s_message_filter_message = 'Which message should be send?';
+$s_message_subject = 'Information';
+$s_sent_you_this_message = 'has send you this message';
+
 # meta_inc.php
 
 # news_add.php
diff -Naurb epia_std/lang/strings_russian_koi8.txt epia/lang/strings_russian_koi8.txt
--- epia_std/lang/strings_russian_koi8.txt	2004-05-10 19:38:09.000000000 +0200
+++ epia/lang/strings_russian_koi8.txt	2004-05-10 20:12:38.000000000 +0200
@@ -654,12 +654,29 @@
 $s_report_bug_link = '������� ��';
 $s_summary_link = '��������';
 $s_account_link = '��� ��������';
+$s_message_link = 'Message';
 $s_users_link = '�����������';
 $s_manage_link = '���������';
 $s_edit_news_link = '����������� �������';
 $s_docs_link = '�����������';
 $s_logout_link = '�����';
 
+# message_page.php
+$s_prev_step_button = 'Previous';
+$s_next_step_button = 'Next';
+$s_message_filter_project = 'Send message to all projects ... ?';
+$s_message_filter_project_yes = 'Yes, to all projects!';
+$s_message_filter_project_no = 'No, only to selected projects ...';
+$s_message_filter_access_level = 'Send message to all access-levels ... ?';
+$s_message_filter_access_level_yes = 'Yes, to all access-levels!';
+$s_message_filter_access_level_no = 'No, only to selected access-levels ...';
+$s_message_filter_user = 'Send message to all users ... ?';
+$s_message_filter_user_yes = 'Yes, to all users!';
+$s_message_filter_user_no = 'No, only to selected users ...';
+$s_message_filter_message = 'Which message should be send?';
+$s_message_subject = 'Information';
+$s_sent_you_this_message = 'has send you this message';
+
 # meta_inc.php
 
 # news_add.php
diff -Naurb epia_std/lang/strings_serbian.txt epia/lang/strings_serbian.txt
--- epia_std/lang/strings_serbian.txt	2004-05-10 19:38:27.000000000 +0200
+++ epia/lang/strings_serbian.txt	2004-05-10 20:12:41.000000000 +0200
@@ -656,12 +656,29 @@
 $s_report_bug_link = 'Prijava gre.aka';
 $s_summary_link = 'Sa.etak';
 $s_account_link = 'Moj nalog';
+$s_message_link = 'Message';
 $s_users_link = 'Korisnici';
 $s_manage_link = 'Upravljanje';
 $s_edit_news_link = 'Izmena vesti';
 $s_docs_link = 'Dokumenti';
 $s_logout_link = 'Odjava';
 
+# message_page.php
+$s_prev_step_button = 'Previous';
+$s_next_step_button = 'Next';
+$s_message_filter_project = 'Send message to all projects ... ?';
+$s_message_filter_project_yes = 'Yes, to all projects!';
+$s_message_filter_project_no = 'No, only to selected projects ...';
+$s_message_filter_access_level = 'Send message to all access-levels ... ?';
+$s_message_filter_access_level_yes = 'Yes, to all access-levels!';
+$s_message_filter_access_level_no = 'No, only to selected access-levels ...';
+$s_message_filter_user = 'Send message to all users ... ?';
+$s_message_filter_user_yes = 'Yes, to all users!';
+$s_message_filter_user_no = 'No, only to selected users ...';
+$s_message_filter_message = 'Which message should be send?';
+$s_message_subject = 'Information';
+$s_sent_you_this_message = 'has send you this message';
+
 # meta_inc.php
 
 # news_add.php
diff -Naurb epia_std/lang/strings_slovak.txt epia/lang/strings_slovak.txt
--- epia_std/lang/strings_slovak.txt	2004-05-10 19:38:47.000000000 +0200
+++ epia/lang/strings_slovak.txt	2004-05-10 20:12:44.000000000 +0200
@@ -656,12 +656,29 @@
 $s_report_bug_link = 'Vlo�i� bug';
 $s_summary_link = 'Zhrnutie';
 $s_account_link = '��et';
+$s_message_link = 'Message';
 $s_users_link = 'Pou��vatelia';
 $s_manage_link = 'Spr�va';
 $s_edit_news_link = 'Upravi� novinky';
 $s_docs_link = 'Dokumenty';
 $s_logout_link = 'Odhl�si�';
 
+# message_page.php
+$s_prev_step_button = 'Previous';
+$s_next_step_button = 'Next';
+$s_message_filter_project = 'Send message to all projects ... ?';
+$s_message_filter_project_yes = 'Yes, to all projects!';
+$s_message_filter_project_no = 'No, only to selected projects ...';
+$s_message_filter_access_level = 'Send message to all access-levels ... ?';
+$s_message_filter_access_level_yes = 'Yes, to all access-levels!';
+$s_message_filter_access_level_no = 'No, only to selected access-levels ...';
+$s_message_filter_user = 'Send message to all users ... ?';
+$s_message_filter_user_yes = 'Yes, to all users!';
+$s_message_filter_user_no = 'No, only to selected users ...';
+$s_message_filter_message = 'Which message should be send?';
+$s_message_subject = 'Information';
+$s_sent_you_this_message = 'has send you this message';
+
 # meta_inc.php
 
 # news_add.php
diff -Naurb epia_std/lang/strings_spanish.txt epia/lang/strings_spanish.txt
--- epia_std/lang/strings_spanish.txt	2004-05-10 19:39:02.000000000 +0200
+++ epia/lang/strings_spanish.txt	2004-05-10 20:12:48.000000000 +0200
@@ -658,12 +658,29 @@
 $s_report_bug_link = 'Informar de Bug';
 $s_summary_link = 'Resumen';
 $s_account_link = 'Mi Cuenta';
+$s_message_link = 'Message';
 $s_users_link = 'Usuarios del Proyecto';
 $s_manage_link = 'Administraci�n';
 $s_edit_news_link = 'Noticias';
 $s_docs_link = 'Documentos';
 $s_logout_link = 'Salir';
 
+# message_page.php
+$s_prev_step_button = 'Previous';
+$s_next_step_button = 'Next';
+$s_message_filter_project = 'Send message to all projects ... ?';
+$s_message_filter_project_yes = 'Yes, to all projects!';
+$s_message_filter_project_no = 'No, only to selected projects ...';
+$s_message_filter_access_level = 'Send message to all access-levels ... ?';
+$s_message_filter_access_level_yes = 'Yes, to all access-levels!';
+$s_message_filter_access_level_no = 'No, only to selected access-levels ...';
+$s_message_filter_user = 'Send message to all users ... ?';
+$s_message_filter_user_yes = 'Yes, to all users!';
+$s_message_filter_user_no = 'No, only to selected users ...';
+$s_message_filter_message = 'Which message should be send?';
+$s_message_subject = 'Information';
+$s_sent_you_this_message = 'has send you this message';
+
 # meta_inc.php
 
 # news_add.php
diff -Naurb epia_std/lang/strings_swedish.txt epia/lang/strings_swedish.txt
--- epia_std/lang/strings_swedish.txt	2004-05-10 19:39:24.000000000 +0200
+++ epia/lang/strings_swedish.txt	2004-05-10 20:12:54.000000000 +0200
@@ -654,12 +654,29 @@
 $s_report_bug_link = 'Rapportera bugg';
 $s_summary_link = 'Sammanfattning';
 $s_account_link = 'Anv�ndarkonto';
+$s_message_link = 'Message';
 $s_users_link = 'Anv�ndare';
 $s_manage_link = 'Hantera';
 $s_edit_news_link = 'Redigera nyheter';
 $s_docs_link = 'Dokument';
 $s_logout_link = 'Logga ut';
 
+# message_page.php
+$s_prev_step_button = 'Previous';
+$s_next_step_button = 'Next';
+$s_message_filter_project = 'Send message to all projects ... ?';
+$s_message_filter_project_yes = 'Yes, to all projects!';
+$s_message_filter_project_no = 'No, only to selected projects ...';
+$s_message_filter_access_level = 'Send message to all access-levels ... ?';
+$s_message_filter_access_level_yes = 'Yes, to all access-levels!';
+$s_message_filter_access_level_no = 'No, only to selected access-levels ...';
+$s_message_filter_user = 'Send message to all users ... ?';
+$s_message_filter_user_yes = 'Yes, to all users!';
+$s_message_filter_user_no = 'No, only to selected users ...';
+$s_message_filter_message = 'Which message should be send?';
+$s_message_subject = 'Information';
+$s_sent_you_this_message = 'has send you this message';
+
 # meta_inc.php
 
 # news_add.php
diff -Naurb epia_std/lang/strings_turkish.txt epia/lang/strings_turkish.txt
--- epia_std/lang/strings_turkish.txt	2004-05-10 19:39:46.000000000 +0200
+++ epia/lang/strings_turkish.txt	2004-05-10 20:12:57.000000000 +0200
@@ -655,12 +655,29 @@
 $s_report_bug_link = 'Bug Bildir';
 $s_summary_link = '�zet';
 $s_account_link = 'Hesap';
+$s_message_link = 'Message';
 $s_users_link = 'Users';
 $s_manage_link = 'D�zenle';
 $s_edit_news_link = 'Haberleri D�zenle';
 $s_docs_link = 'Belgeler';
 $s_logout_link = 'Sistemden �k';
 
+# message_page.php
+$s_prev_step_button = 'Previous';
+$s_next_step_button = 'Next';
+$s_message_filter_project = 'Send message to all projects ... ?';
+$s_message_filter_project_yes = 'Yes, to all projects!';
+$s_message_filter_project_no = 'No, only to selected projects ...';
+$s_message_filter_access_level = 'Send message to all access-levels ... ?';
+$s_message_filter_access_level_yes = 'Yes, to all access-levels!';
+$s_message_filter_access_level_no = 'No, only to selected access-levels ...';
+$s_message_filter_user = 'Send message to all users ... ?';
+$s_message_filter_user_yes = 'Yes, to all users!';
+$s_message_filter_user_no = 'No, only to selected users ...';
+$s_message_filter_message = 'Which message should be send?';
+$s_message_subject = 'Information';
+$s_sent_you_this_message = 'has send you this message';
+
 # meta_inc.php
 
 # news_add.php
diff -Naurb epia_std/message_page.php epia/message_page.php
--- epia_std/message_page.php	1970-01-01 01:00:00.000000000 +0100
+++ epia/message_page.php	2004-05-10 20:44:09.000000000 +0200
@@ -0,0 +1,361 @@
+<?php
+	# Mantis - a php based bugtracking system
+	# Copyright (C) 2000 - 2002  Kenzaburo Ito - kenito@300baud.org
+	# Copyright (C) 2002 - 2004  Mantis Team   - mantisbt-dev@lists.sourceforge.net
+	# This program is distributed under the terms and conditions of the GPL
+	# See the README and LICENSE files for details
+
+	# --------------------------------------------------------
+	# $Id$
+	# --------------------------------------------------------
+?>
+<?php
+	require_once( 'core.php' );
+	
+	$t_core_path = config_get( 'core_path' );
+
+	require_once( $t_core_path . 'icon_api.php' );
+
+	$f_step				= gpc_get_int( 'step', 0 );
+	if ( gpc_get_bool( 'prev_step' ) ) {
+		$f_step = $f_step - 1;
+	}
+	if ( gpc_get_bool( 'next_step' ) ) {
+		$f_step = $f_step + 1;
+	}
+	$f_filter_project_id    = gpc_get_int_array ( 'project_id', array() );
+	if ( count ( $f_filter_project_id ) > 0 ) {
+		$f_filter_project = "true";	
+	} else {
+		$f_filter_project = "false";	
+	}
+	
+	$f_filter_access_levels = gpc_get_int_array ( 'access_levels', array() );
+	if ( count ( $f_filter_access_levels ) > 0 ) {
+		$f_filter_access_level = "true";	
+	} else {
+		$f_filter_access_level = "false";	
+	}
+	
+	$f_user_id				= gpc_get_int_array ( 'user_id', array() );
+	if ( count ( $f_user_id ) > 0 ) {
+		$f_filter_user = "true";	
+	} else {
+		$f_filter_user = "false";	
+	}
+	
+	$f_body					= gpc_get_string( 'body', '' );
+?>
+
+<?php auth_ensure_user_authenticated() ?>
+<?php html_page_top1() ?>
+<?php html_page_top2() ?>
+<?php access_ensure_any_message_level() ?>
+
+<?php
+	function message_get_filtered_user_list ( ) {
+		global $f_filter_project,
+			$f_filter_project_id,
+			$f_filter_access_level,
+			$f_filter_access_levels;
+			
+		if ( $f_filter_project == "false" ) {
+			$t_user_id = auth_get_current_user_id();
+			$t_project_ids = user_get_accessible_projects( $t_user_id );
+			foreach ($t_project_ids as $t_project_id) {
+				if ( user_get_access_level ( $t_user_id , $t_project_id ) >= config_get ( 'message_proj_send_threshold' ) ) {
+					$f_filter_project_id[$t_project_id] = $t_project_id;
+				}
+			}
+		}
+			
+		$t_user_list = array();
+		foreach ($f_filter_project_id as $t_project_id) {
+			$t_user_list[$t_project_id] = project_get_all_user_rows ( $t_project_id );
+		}
+			
+		$t_user_list_filtered = array();
+		foreach ($t_user_list as $t_users) {
+			foreach ($t_users as $t_user) {
+				if ( $f_filter_access_level == "true" ) {
+					foreach ($f_filter_access_levels as $t_access_level) {
+						if ($t_user['access_level'] == $t_access_level) {
+						 	$t_user_list_filtered[$t_user['id']] = $t_user;
+							break;
+						}
+					}
+				} else {
+					if ($t_user['access_level'] < config_get ( 'message_excluded_threshold' ) ) {
+					 	$t_user_list_filtered[$t_user['id']] = $t_user;
+					}
+				}
+			}
+		}
+	
+		return multi_sort( array_values($t_user_list_filtered), 'username' );
+	}
+?>
+
+<form name="message_page" method="post"  action="message_page.php">
+	<input type="hidden" name="step" value="<?php echo $f_step ?>" />
+<?php
+	if ( $f_step <> 0 ) {
+		foreach ( $f_filter_project_id as $t_project_id ) {
+?>
+		<input type="hidden" name="project_id[]" value="<?php echo $t_project_id ?>" />
+<?php
+	}
+?>
+	<input type="hidden" name="filter_project" value="<?php echo $f_filter_project ?>" />
+<?php
+	}
+	
+	if ( $f_step <> 1 ) {
+		foreach ( $f_filter_access_levels as $t_access_level ) {
+?>
+		<input type="hidden" name="access_levels[]" value="<?php echo $t_access_level ?>" />
+<?php
+	}
+?>
+	<input type="hidden" name="filter_access_level" value="<?php echo $f_filter_access_level ?>" />
+<?php
+	}
+	
+	if ( $f_step <> 2 ) {
+?>
+	<input type="hidden" name="filter_user" value="<?php echo $f_filter_user ?>" />
+<?php
+		foreach ( $f_user_id as $t_user_id ) {
+?>
+			<input type="hidden" name="user_id[]" value="<?php echo $t_user_id ?>" />
+<?php
+		}
+	}
+	
+	if ( $f_step <> 3 ) {
+?>
+	<input type="hidden" name="body" value="<?php echo $f_body ?>" />
+<?php
+	}
+?>
+	<br />
+<?php
+	switch ( $f_step ) {
+		case 0:
+			# --- first step: global or local message
+?>
+			<div align="center">
+			<table class="width75" cellspacing="1">
+			<!-- Title -->
+			<tr>
+				<td class="form-title" colspan="2">
+					<?php echo lang_get( 'message_filter_project' ) ?>
+				</td>
+			</tr>
+			<!-- global message -->
+			<tr <?php echo helper_alternate_class() ?>>
+				<td>
+					<input type="radio" name="filter_project" value=false <?php check_checked($f_filter_project, "false") ?> />
+				</td>
+				<td class="category">
+					<?php echo lang_get( 'message_filter_project_yes' ) ?>
+				</td>
+			</tr>
+			<!-- message to specific projects -->
+			<tr <?php echo helper_alternate_class() ?>>
+				<td>
+					<input type="radio" name="filter_project" value=true <?php check_checked($f_filter_project, "true") ?>  />
+				</td>
+				<td class="category">
+				<table>
+					<td>
+					<?php echo lang_get( 'message_filter_project_no' ) ?>
+					</td>
+					<td>
+					<select name="project_id[]" multiple="multiple" size="10">
+						<?php print_project_user_list_option_list3(auth_get_current_user_id(), $f_filter_project_id, config_get ( 'message_proj_send_threshold' ) ) ?>
+					</select>
+					</td>
+				</table>
+				</td>
+			</tr>
+			</table>
+			</div>
+<?php
+			break;
+		case 1:
+			# --- second step: choose access_levels
+?>
+			<div align="center">
+			<table class="width75" cellspacing="1">
+			<!-- Title -->
+			<tr>
+				<td class="form-title" colspan="2">
+					<?php echo lang_get( 'message_filter_access_level' ) ?>
+				</td>
+			</tr>
+			<!-- message to all access levels -->
+			<tr <?php echo helper_alternate_class() ?>>
+				<td>
+					<input type="radio" name="filter_access_level" value=false <?php check_checked($f_filter_access_level, "false") ?> />
+				</td>
+				<td class="category">
+					<?php echo lang_get( 'message_filter_access_level_yes' ) ?>
+				</td>
+			</tr>
+			<!-- message to specific access_levels -->
+			<tr <?php echo helper_alternate_class() ?>>
+				<td>
+					<input type="radio" name="filter_access_level" value=true <?php check_checked($f_filter_access_level, "true") ?>  />
+				</td>
+				<td class="category">
+				<table>
+					<td>
+					<?php echo lang_get( 'message_filter_access_level_no' ) ?>
+					</td>
+					<td>
+					<select name="access_levels[]" multiple="multiple" size="10">
+						<?php print_project_access_levels_option_list( $f_filter_access_levels ) ?>
+					</select>
+					</td>
+				</table>
+				</td>
+			</tr>
+			</table>
+			</div>
+<?php
+			break;
+		case 2:
+			# --- third step: choose users
+?>
+			<div align="center">
+			<table class="width75" cellspacing="1">
+			<!-- Title -->
+			<tr>
+				<td class="form-title" colspan="2">
+					<?php echo lang_get( 'message_filter_user' ) ?>
+				</td>
+			</tr>
+			<!-- message to all users -->
+			<tr <?php echo helper_alternate_class() ?>>
+				<td>
+					<input type="radio" name="filter_user" value=false <?php check_checked($f_filter_user, "false") ?> />
+				</td>
+				<td class="category">
+					<?php echo lang_get( 'message_filter_user_yes' ) ?>
+				</td>
+			</tr>
+			<!-- message to specific users -->
+			<tr <?php echo helper_alternate_class() ?>>
+				<td>
+					<input type="radio" name="filter_user" value=true <?php check_checked($f_filter_user, "true") ?>  />
+				</td>
+				<td class="category">
+				<table>
+					<td>
+					<?php echo lang_get( 'message_filter_user_no' ) ?>
+					</td>
+					<td>
+					<select name="user_id[]" multiple="multiple" size="10">
+<?php
+			$t_user_list_filtered = message_get_filtered_user_list ( );
+
+			$count = count ( $t_user_list_filtered );
+			echo "$count";
+			foreach ($t_user_list_filtered as $t_user) {
+				$t_user_name = string_attribute ( $t_user['username'] );
+				$t_user_id   = $t_user['id'];
+				PRINT "<option value=\"$t_user_id\"";
+				check_selected ( $f_user_id, $t_user_id );
+				PRINT ">$t_user_name</option>";
+			}
+?>
+					</select>
+					</td>
+				</table>
+				</td>
+			</tr>
+			</table>
+			</div>
+<?php
+			break;
+		case 3:
+			# --- fourth step: write message
+?>
+<div align="center">
+<table class="width75" cellspacing="1">
+<tr>
+	<td class="category">
+		<?php echo lang_get( 'message_filter_message' ) ?>
+	</td>
+</tr>
+<tr <?php echo helper_alternate_class() ?>>
+	<td class="center">
+		<textarea name="body" cols="65" rows="10" wrap="virtual"><?php echo"$f_body"?></textarea>
+	</td>
+</tr>
+</table>
+</div>
+<?php
+			break;
+		case 4:
+			# --- fifth step: send message
+			if ( $f_filter_user == "false" ) {
+				$t_user_ids = message_get_filtered_user_list ( );
+				$f_user_id = array();
+				foreach ($t_user_ids as $t_user) {
+					array_push ( $f_user_id, $t_user['id'] );
+				}
+			}
+
+			$result = email_message( $f_user_id, $f_body );
+
+			html_meta_redirect( 'message_page.php' );
+
+?>
+			<div align="center">
+<?php
+			echo lang_get( 'operation_successful' ).'<br />';
+			print_bracket_link( 'message_page.php', lang_get( 'proceed' ) );
+?>
+			</div>
+<?php
+			break;
+		default:
+			# --- unallowed step
+			access_denied ();
+			break;
+  	}
+?>
+
+
+	<div align="center">
+	<tr>
+<?php
+	if ( ( $f_step > 0 ) AND ( $f_step < 4 )) {
+?>		
+	<td class="center">
+		<input tabindex="21" type="submit" name="prev_step" value="<?php echo lang_get( 'prev_step_button' ) ?>" />
+	</td>
+<?php
+	}
+	if ( $f_step < 3 ) {
+?>		
+	<td class="center">
+		<input tabindex="22" type="submit" name="next_step" value="<?php echo lang_get( 'next_step_button' ) ?>" />
+	</td>
+<?php
+	}
+	
+	if ( $f_step == 3 ) {
+?>		
+	<td class="center">
+		<input tabindex="22" type="submit" name="next_step" value="<?php echo lang_get( 'bug_send_button' ) ?>" />
+	</td>
+<?php
+	}
+?>
+	</tr>
+	</div>
+
+<?php html_page_bottom1( __FILE__ ) ?>
message_patch.diff (60,791 bytes)   
pic1.jpg (97,657 bytes)   
pic1.jpg (97,657 bytes)   

Relationships

has duplicate 0003018 closedgrangeway Email notifications for project news 
related to 0000723 closedprescience Email on new news items 

Activities

morganparry

morganparry

2004-05-12 12:26

reporter   ~0005488

It would be nice to have this as just an option when adding some news.

masc

masc

2004-10-15 03:36

reporter   ~0008047

Inviato memorandum a vboctor

Victor,
I have integrated this patch in the Mantis installation we use at work and it's very nice.
What do you think about integrating it in the official Mantis as an option.
The integration activity is fast.

Marcello

tk

tk

2007-09-06 02:19

reporter   ~0015574

I have requests from my project managers who miss this feature.

vboctor

vboctor

2014-11-25 10:33

manager   ~0041904

@RJelinek - The issue your reported is related to a deprecated feature that is no longer supported. Hence, resolving as won't fix.