Skip to content

Commit d871dad

Browse files
author
Michele
committed
Adding membership management for mlmmj
1 parent c81f8ac commit d871dad

19 files changed

+800
-107
lines changed

interface/lib/lang/en.lng

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,9 @@ $wb['datalog_status_d_mail_get'] = 'Delete mail fetcher account';
122122
$wb['datalog_status_i_mail_mailinglist'] = 'Create mailing list';
123123
$wb['datalog_status_u_mail_mailinglist'] = 'Update mailing list';
124124
$wb['datalog_status_d_mail_mailinglist'] = 'Delete mailing list';
125+
$wb['datalog_status_i_mail_ml_membership'] = 'Create mailing list member';
126+
$wb['datalog_status_u_mail_ml_membership'] = 'Update mailing list member';
127+
$wb['datalog_status_d_mail_ml_membership'] = 'Delete mailing list member';
125128
$wb['datalog_status_i_shell_user'] = 'Create shell user';
126129
$wb['datalog_status_u_shell_user'] = 'Update shell user';
127130
$wb['datalog_status_d_shell_user'] = 'Delete shell user';

interface/lib/lang/it.lng

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,9 @@ $wb['datalog_status_d_cron'] = 'Elimina cron job';
114114
$wb['datalog_status_i_mail_mailinglist'] = 'Crea mailing list';
115115
$wb['datalog_status_u_mail_mailinglist'] = 'Aggiorna mailing list';
116116
$wb['datalog_status_d_mail_mailinglist'] = 'Elimina mailing list';
117+
$wb['datalog_status_i_mail_ml_membership'] = 'Crea membro di mailing list';
118+
$wb['datalog_status_u_mail_ml_membership'] = 'Aggiorna membro di mailing list';
119+
$wb['datalog_status_d_mail_ml_membership'] = 'Elimina membro di mailing list';
117120
$wb['datalog_status_i_shell_user'] = 'Crea utente shell';
118121
$wb['datalog_status_u_shell_user'] = 'Aggiorna utente shell';
119122
$wb['datalog_status_d_shell_user'] = 'Elimina utente shell';

interface/web/mail/form/mail_mailinglist.tform.php

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,12 @@
167167
'admins' => array (
168168
'datatype' => 'TEXT',
169169
'formtype' => 'TEXTAREA',
170+
'validators' => array (
171+
0 => array ( 'type' => 'ISEMAIL',
172+
'allowempty' => 'y',
173+
'separator' => "\n",
174+
'errmsg'=> 'email_error_isemail'),
175+
),
170176
'cols' => '30',
171177
'rows' => '5'
172178
),
@@ -193,24 +199,6 @@
193199
)
194200
);
195201

196-
$form["tabs"]['membership'] = array (
197-
'title' => "Membership",
198-
'width' => 100,
199-
'template' => "templates/mail_mailinglist_membership.htm",
200-
'fields' => array (
201-
//#################################
202-
// Begin Datatable fields
203-
//#################################
204-
// 'membership' => array (
205-
// 'datatype' => 'TEXT',
206-
// 'formtype' => 'TEXTAREA',
207-
// 'cols' => '30',
208-
// 'rows' => '5'
209-
// ),
210-
)
211-
);
212-
213-
214202
$form["tabs"]['privacy'] = array (
215203
'title' => "Privacy",
216204
'width' => 100,
@@ -225,8 +213,7 @@
225213
'regex' => '',
226214
'errmsg' => '',
227215
'default' => 'user',
228-
'value' => array ('open' => 'Open', 'closed' => 'Closed'),
229-
'separator' => '',
216+
'value' => array ('open' => 'open_list_txt', 'closed' => 'closed_list_txt'),
230217
'width' => '30',
231218
'maxlength' => '255',
232219
'rows' => '',
Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
<?php
2+
3+
/*
4+
Form Definition
5+
6+
Tabledefinition
7+
8+
Datatypes:
9+
- INTEGER (Forces the input to Int)
10+
- DOUBLE
11+
- CURRENCY (Formats the values to currency notation)
12+
- VARCHAR (no format check, maxlength: 255)
13+
- TEXT (no format check)
14+
- DATE (Dateformat, automatic conversion to timestamps)
15+
16+
Formtype:
17+
- TEXT (Textfield)
18+
- TEXTAREA (Textarea)
19+
- PASSWORD (Password textfield, input is not shown when edited)
20+
- SELECT (Select option field)
21+
- RADIO
22+
- CHECKBOX
23+
- CHECKBOXARRAY
24+
- FILE
25+
26+
VALUE:
27+
- Wert oder Array
28+
29+
Hint:
30+
The ID field of the database table is not part of the datafield definition.
31+
The ID field must be always auto incement (int or bigint).
32+
33+
Search:
34+
- searchable = 1 or searchable = 2 include the field in the search
35+
- searchable = 1: this field will be the title of the search result
36+
- searchable = 2: this field will be included in the description of the search result
37+
38+
39+
*/
40+
41+
$app->uses('getconf');
42+
$mlManager = $app->getconf->get_server_config($conf['server_id'], 'mail')['mailinglist_manager'];
43+
44+
$form["title"] = "Mailing List";
45+
$form["description"] = "";
46+
$form["name"] = "mail_ml_membership";
47+
$form["action"] = "mail_ml_membership_edit.php";
48+
$form["db_table"] = "mail_ml_membership";
49+
$form["db_table_idx"] = "subscriber_id";
50+
$form["db_history"] = "yes";
51+
$form["tab_default"] = "membership";
52+
$form["list_default"] = "mail_ml_membership_list.php";
53+
$form["auth"] = 'yes'; // yes / no
54+
55+
$form["auth_preset"]["userid"] = 0; // 0 = id of the user, > 0 id must match with id of current user
56+
$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user
57+
$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete
58+
$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete
59+
$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete
60+
61+
$form["tabs"]['membership'] = array (
62+
'title' => "Membership",
63+
'width' => 100,
64+
'template' => "templates/mail_ml_membership_edit.htm",
65+
'fields' => array (
66+
'server_id' => array (
67+
'datatype' => 'INTEGER',
68+
'formtype' => 'SELECT',
69+
'default' => '',
70+
'datasource' => array ( 'type' => 'SQL',
71+
'querystring' => 'SELECT server_id,server_name FROM server WHERE mail_server = 1 AND mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name',
72+
'keyfield'=> 'server_id',
73+
'valuefield'=> 'server_name'
74+
),
75+
'value' => ''
76+
),
77+
'mailinglist_id' => array (
78+
'datatype' => 'INTEGER',
79+
'formtype' => 'SELECT',
80+
'default' => '',
81+
'datasource' => array ( 'type' => 'SQL',
82+
'querystring' => 'SELECT mailinglist_id, CONCAT_WS(\'@\', listname, domain) as listname FROM mail_mailinglist WHERE {AUTHSQL} ORDER BY listname',
83+
'keyfield'=> 'mailinglist_id',
84+
'valuefield'=> 'listname'
85+
),
86+
'value' => ''
87+
),
88+
'email' => array (
89+
'datatype' => 'VARCHAR',
90+
'formtype' => 'TEXT',
91+
'filters' => array( 0 => array( 'event' => 'SAVE',
92+
'type' => 'IDNTOASCII'),
93+
1 => array( 'event' => 'SHOW',
94+
'type' => 'IDNTOUTF8'),
95+
2 => array( 'event' => 'SAVE',
96+
'type' => 'TOLOWER')
97+
),
98+
'validators' => array ( 0 => array ( 'type' => 'ISEMAIL',
99+
'errmsg'=> 'email_error_isemail'),
100+
1 => array ( 'type' => 'UNIQUE',
101+
'errmsg'=> 'email_error_unique'),
102+
),
103+
'default' => '',
104+
'value' => '',
105+
'width' => '30',
106+
'maxlength' => '255',
107+
'searchable' => 1
108+
),
109+
'name' => array (
110+
'datatype' => 'VARCHAR',
111+
'formtype' => 'TEXT',
112+
'default' => '',
113+
'value' => '',
114+
'width' => '30',
115+
'maxlength' => '255',
116+
'searchable' => 2
117+
),
118+
'welcome_msg' => array (
119+
'datatype' => 'VARCHAR',
120+
'formtype' => 'CHECKBOX',
121+
'default' => 'y',
122+
'value' => array(0 => 'n', 1 => 'y')
123+
),
124+
'goodbye_msg' => array (
125+
'datatype' => 'VARCHAR',
126+
'formtype' => 'CHECKBOX',
127+
'default' => 'n',
128+
'value' => array(0 => 'n', 1 => 'y')
129+
),
130+
),
131+
);
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?php
2+
$wb["list_head_txt"] = 'imail_ml_membership';
3+
$wb["listname_txt"] = 'listname';
4+
$wb["domain_txt"] = 'domain';
5+
?>
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?php
2+
$wb['heading_subscription_txt'] = 'Subscription';
3+
$wb['heading_removal_txt'] = 'Removal';
4+
5+
$wb['subscribers_txt'] = 'Members';
6+
$wb['subscribers_desc_txt'] = 'The email addresses subscribed to the list';
7+
$wb['unsubscribers_desc_txt'] = 'The email addresses unsubscribed from the list';
8+
9+
$wb['welcomeMsg_txt'] = 'Welcome message';
10+
$wb['goodbyeMsg_txt'] = 'Goodbye message';
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?php
2+
$wb["list_head_txt"] = 'List Membership';
3+
$wb["listname_txt"] = 'listname';
4+
$wb["domain_txt"] = 'domain';
5+
?>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?php
2+
$wb['listname_txt'] = 'Lista';
3+
$wb['email_txt'] = 'Email';
4+
$wb['name_txt'] = 'Nome vero';
5+
$wb['name_optional_txt'] = '(Opzionale)';
6+
7+
$wb['welcomeMsg_txt'] = 'Messaggio di benvenuto';
8+
$wb['goodbyeMsg_txt'] = 'Messaggio di addio';
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?php
2+
$wb['heading_subscription_txt'] = 'Sottoscrizione';
3+
$wb['heading_removal_txt'] = 'Rimozione';
4+
$wb['list_head_txt'] = 'Membri di lista';
5+
6+
$wb['listname_txt'] = 'Lista';
7+
$wb['subscriber_email_txt'] = 'Email sottoscrittore';
8+
$wb['subscriber_name_txt'] = 'Nome sottoscrittore';
9+
10+
$wb['add_new_member_txt'] = 'Aggiungi nuovo membro';
11+
12+
$wb['subscribers_desc_txt'] = 'Gli indirizzi email da iscrivere alla lista';
13+
$wb['unsubscribers_desc_txt'] = 'Gli indirizzi email da rimuovere dalla lista';
14+
15+
$wb['welcomeMsg_txt'] = 'Messaggio di benvenuto';
16+
$wb['goodbyeMsg_txt'] = 'Notifica';

interface/web/mail/lib/module.conf.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,13 @@
8585
'target' => 'content',
8686
'link' => 'mail/mail_mailinglist_list.php',
8787
'html_id' => 'mail_mailinglist_list');
88+
89+
$mlManager = $app->getconf->get_server_config($conf['server_id'], 'mail')['mailinglist_manager'];
90+
if($mlManager == 'mlmmj')
91+
$items[] = array( 'title' => 'Membership',
92+
'target' => 'content',
93+
'link' => 'mail/mail_ml_membership_list.php',
94+
'html_id' => 'mail_ml_membership_list');
8895
}
8996

9097
if(count($items) && $app->system->has_service($userid, 'mail'))

0 commit comments

Comments
 (0)