Newer
Older
<?php
// $Id$
/**
* @file
* Administration menu callbacks for Privatemsg.
*/
function privatemsg_admin_settings() {
$form = array();
$form['theming_settings'] = array(
'#type' => 'fieldset',
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#title' => t('Theming settings'),
);
$form['theming_settings']['private_message_view_template'] = array(
'#type' => 'radios',
'#title' => t('Private message display template'),
'#default_value' => variable_get('private_message_view_template', 'privatemsg-view'),
'#options' => privatemsg_view_options(),
);
$form['privatemsg_display_loginmessage'] = array(
'#type' => 'checkbox',
'#title' => t('Inform the user about new messages on login'),
'#default_value' => variable_get('privatemsg_display_loginmessage', TRUE),
'#description' => t('This option can safely be disabled if the "New message indication" block is used instead.'),
Sascha Grossenbacher
committed
'#weight' => -5,
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
);
$form['flush_deleted'] = array(
'#type' => 'fieldset',
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#title' => t('Flush deleted messages'),
'#description' => t('By default, deleted messages are only hidden from the user but still stored in the database. These settings control if and when messages should be removed.'),
);
$form['flush_deleted']['privatemsg_flush_enabled'] = array(
'#type' => 'checkbox',
'#title' => t('Flush deleted messages'),
'#default_value' => variable_get('privatemsg_flush_enabled', FALSE),
'#description' => t('Enable the flushing of deleted messages. Requires that cron is enabled'),
);
$form['flush_deleted']['privatemsg_flush_days'] = array(
'#type' => 'select',
'#title' => t('Flush messages after they have been deleted for more days than'),
'#default_value' => variable_get('privatemsg_flush_days', 30),
'#options' => drupal_map_assoc(array(0, 1, 2, 5, 10, 30, 100)),
);
$form['flush_deleted']['privatemsg_flush_max'] = array(
'#type' => 'select',
'#title' => t('Maximum number of messages to flush per cron run'),
'#default_value' => variable_get('privatemsg_flush_max', 200),
'#options' => drupal_map_assoc(array(50, 100, 200, 500, 1000)),
);
$form['privatemsg_listing'] = array(
'#type' => 'fieldset',
'#title' => t('Configure listings'),
'#collapsible' => TRUE,
'#collapsed' => FALSE,
);
$form['privatemsg_listing']['privatemsg_per_page'] = array(
'#type' => 'select',
'#title' => t('Threads per page'),
'#default_value' => variable_get('privatemsg_per_page', 25),
'#options' => drupal_map_assoc(array(10, 25, 50, 75, 100)),
'#description' => t('Choose the number of conversations that should be listed per page.'),
);
$form['privatemsg_listing']['privatemsg_display_fields'] = array(
'#type' => 'checkboxes',
'#title' => t('Configure fields'),
'#description' => t('Select which columns/fields should be displayed in the message listings. Subject and Last updated cannot be disabled.'),
'#options' => array(
'participants' => t('Participants'),
'thread_started' => t('Started'),
'count' => t('Messages'),
),
'#default_value' => variable_get('privatemsg_display_fields', array('participants')),
);
$amounts = drupal_map_assoc(array(5, 10, 20, 30, 50, 70, 90, 150, 200, 250, 300));
$form['privatemsg_listing']['privatemsg_view_max_amount'] = array(
'#type' => 'select',
'#title' => t('Number of messages on thread pages'),
'#options' => $amounts + array(PRIVATEMSG_UNLIMITED => t('Unlimited')),
'#default_value' => variable_get('privatemsg_view_max_amount', 20),
'#description' => t('Threads will not show more than this number of messages on a single page.'),
'#weight' => 10,
);
$form['privatemsg_listing']['privatemsg_view_use_max_as_default'] = array(
'#type' => 'checkbox',
'#title' => t('Display different amount of messages on first thread page'),
'#default_value' => variable_get('privatemsg_view_use_max_as_default', FALSE),
'#description' => t('By default, the first thread page shows the maximally allowed amount of messages. Enable this checkbox to set a different value.'),
'#weight' => 15,
);
$form['privatemsg_listing']['privatemsg_view_default_amount'] = array(
'#prefix' => '<div id="privatemsg-view-default-button">',
'#suffix' => '</div>',
'#type' => 'select',
'#title' => t('Number of messages on first thread page'),
'#default_value' => variable_get('privatemsg_view_default_amount', 10),
'#description' => t('The number of messages to be displayed on first thread page. Displays the newest messages.'),
'#options' => $amounts,
'#weight' => 20,
);
Sascha Grossenbacher
committed
$form['links'] = array(
'#type' => 'fieldset',
'#title' => t('"Send private message" link settings'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
Sascha Grossenbacher
committed
$form['links']['privatemsg_display_link_self'] = array(
'#type' => 'checkbox',
'#title' => t('Display "Send this user a message" links for themself'),
'#description' => t('If enabled, each users sees that link on their own profile, comments and similiar places.'),
'#default_value' => variable_get('privatemsg_display_link_self', TRUE),
'#weight' => -10,
);
Sascha Grossenbacher
committed
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
$form['links']['privatemsg_display_profile_links'] = array(
'#type' => 'checkbox',
'#title' => t('Display link on profile pages.'),
'#description' => t('If this setting is enabled, a link to send a private message will be displayed.'),
'#default_value' => variable_get('privatemsg_display_profile_links', 1),
);
$node_types = node_type_get_names();
$form['links']['privatemsg_link_node_types'] = array(
'#type' => 'checkboxes',
'#title' => t('Display link on the selected content types'),
'#description' => t('Select which content types should display a link to send a private message to the author. By default, the link is not displayed below teasers.'),
'#default_value' => variable_get('privatemsg_link_node_types', array()),
'#options' => $node_types,
);
$form['links']['privatemsg_display_on_teaser'] = array(
'#type' => 'checkbox',
'#title' => t('Display link on teasers of the selected content types.'),
'#default_value' => variable_get('privatemsg_display_on_teaser', 1),
);
$form['links']['privatemsg_display_on_comments'] = array(
'#type' => 'checkbox',
'#title' => t('Display links on comments of selected content types.'),
'#description' => t('Also display a link to send a private message to the authors of the comments of the selected content types.'),
'#default_value' => variable_get('privatemsg_display_on_comments', 0),
);
drupal_add_js(drupal_get_path('module', 'privatemsg') .'/privatemsg-admin.js');
$form['#submit'][] = 'private_message_settings_submit';
return system_settings_form($form);
}
function privatemsg_admin_settings_submit() {
drupal_theme_rebuild();
}
function privatemsg_view_options() {
$options = module_invoke_all('privatemsg_view_template');
return $options;
}