| 1 |
<?php // $Id: admin.inc,v 1.12 2009/08/10 01:09:32 vauxia Exp $ |
<?php // $Id: admin.inc,v 1.13 2009/08/10 01:57:46 vauxia Exp $ |
| 2 |
|
|
| 3 |
/** |
/** |
| 4 |
* @file |
* @file |
| 19 |
); |
); |
| 20 |
$rows = array(); |
$rows = array(); |
| 21 |
|
|
| 22 |
|
$info = mlm_backends(); |
| 23 |
|
$types = mlm_list_types(); |
| 24 |
|
|
| 25 |
foreach (mlm_lists(NULL, NULL, NULL, $header, 50) as $mlm) { |
foreach (mlm_lists(NULL, NULL, NULL, $header, 50) as $mlm) { |
| 26 |
$rows[] = array( |
$rows[] = array( |
| 27 |
l($mlm->title(), $mlm->path()), |
l($mlm->title(), $mlm->path()), |
| 28 |
$mlm->backend, |
$info[$mlm->backend]['title'], |
| 29 |
$mlm->list_type, |
$types[$mlm->list_type]['title'], |
| 30 |
array('data' => l($mlm->count(), 'mlm/'. $mlm->lid .'/subscribers'), 'align' => 'right'), |
array('data' => l($mlm->count(), 'mlm/'. $mlm->lid .'/subscribers'), 'align' => 'right'), |
| 31 |
l(t('subscribers'), $mlm->path() .'/subscribers', array('query' => 'destination='. $_GET['q'])) .' '. |
l(t('subscribers'), $mlm->path() .'/subscribers', array('query' => 'destination='. $_GET['q'])) .' '. |
| 32 |
l(t('edit'), $mlm->path() .'/edit', array('query' => 'destination='. $_GET['q'])), |
l(t('edit'), $mlm->path() .'/edit', array('query' => 'destination='. $_GET['q'])), |
| 46 |
* Administration form for overall MLM features and settings. |
* Administration form for overall MLM features and settings. |
| 47 |
*/ |
*/ |
| 48 |
function mlm_admin_settings() { |
function mlm_admin_settings() { |
|
drupal_add_js(drupal_get_path('module', 'mlm') .'/js/mlm-settings.js'); |
|
|
|
|
| 49 |
$form = array(); |
$form = array(); |
| 50 |
$form['#validate'][] = '_mlm_admin_settings_validate'; |
$form['#validate'][] = '_mlm_admin_settings_validate'; |
| 51 |
$form['#submit'][] = '_mlm_admin_settings_submit'; |
$form['#submit'][] = '_mlm_admin_settings_submit'; |
| 52 |
|
|
| 53 |
// And a list of backends. |
// And a list of backends. |
| 54 |
$backends = mlm_backends(FALSE); |
$backends = mlm_backends(); |
| 55 |
|
|
| 56 |
$form['general'] = array( |
$form['general'] = array( |
| 57 |
'#type' => 'fieldset', |
'#type' => 'fieldset', |
| 61 |
|
|
| 62 |
$form['general']['mlm_backends'] = array( |
$form['general']['mlm_backends'] = array( |
| 63 |
'#type' => 'checkboxes', |
'#type' => 'checkboxes', |
| 64 |
'#title' => t('Backends'), |
'#title' => t('Enabled backends'), |
| 65 |
'#options' => $backend_list, |
'#options' => $backend_list, |
|
'#attributes' => array('id' => 'mlm-backends'), |
|
| 66 |
); |
); |
| 67 |
$mlm_backends = variable_get('mlm_backends', array()); |
|
| 68 |
foreach ($backends as $backend => $mlm) { |
$enabled = array_filter(variable_get('mlm_backends', array())); |
| 69 |
$form['general']['mlm_backends'][$backend] = array( |
|
| 70 |
|
foreach ($backends as $name => $info) { |
| 71 |
|
$form['general']['mlm_backends'][$name] = array( |
| 72 |
'#type' => 'checkbox', |
'#type' => 'checkbox', |
| 73 |
'#title' => $mlm->name, |
'#title' => $info['title'], |
| 74 |
'#description' => $mlm->description, |
'#description' => $info['description'], |
| 75 |
'#return_value' => $backend, |
'#default_value' => isset($enabled[$name]), |
|
'#default_value' => isset($mlm_backends[$backend]) && $mlm_backends[$backend], |
|
| 76 |
); |
); |
| 77 |
|
|
| 78 |
|
$mlm = mlm_load($name); |
| 79 |
|
if ($settings = $mlm->settings_form()) { |
| 80 |
|
$id = 'edit-mlm-backends-'. str_replace('_', '-', $name); |
| 81 |
|
$form['settings'][$name] = array_merge($settings, array( |
| 82 |
|
'#type' => 'fieldset', |
| 83 |
|
'#title' => t('@name settings', array('@name' => $info['title'])), |
| 84 |
|
'#attributes' => array('class' => $id), |
| 85 |
|
)); |
| 86 |
|
} |
| 87 |
} |
} |
| 88 |
|
|
| 89 |
$form['general']['mlm_help'] = array( |
$form['general']['mlm_help'] = array( |
| 94 |
); |
); |
| 95 |
$form['general']['mlm_help_format'] = filter_form(variable_get('mlm_help_format', FILTER_FORMAT_DEFAULT), NULL, array('mlm_help_format')); |
$form['general']['mlm_help_format'] = filter_form(variable_get('mlm_help_format', FILTER_FORMAT_DEFAULT), NULL, array('mlm_help_format')); |
| 96 |
|
|
| 97 |
$form['backends'] = array( |
foreach ($backends as $name => $info) { |
|
'#type' => 'fieldset', |
|
|
'#collapsible' => TRUE, |
|
|
'#title' => t('Backend settings'), |
|
|
'#attributes' => array('id' => 'mlm-backend-settings'), |
|
|
); |
|
|
|
|
|
foreach ($backends as $name => $mlm) { |
|
|
if ($form['backends'][$name] = $mlm->settings_form()) { |
|
|
$form['backends'][$name]['#type'] = 'fieldset'; |
|
|
$form['backends'][$name]['#title'] = $mlm->title(); |
|
|
$form['backends'][$name]['#attributes'] = array('id' => 'mlm-backend-'. $name); |
|
|
} |
|
|
else { |
|
|
unset($form['backends'][$name]); |
|
|
} |
|
| 98 |
} |
} |
| 99 |
|
|
| 100 |
|
// Hide the non-pertinent settings forms. |
| 101 |
|
$js = 'Drupal.behaviors.mlmSettings = function(context) { |
| 102 |
|
$("input[type=checkbox]").change( function() { |
| 103 |
|
var settingsForm = $("." + $(this).attr("id")); |
| 104 |
|
if ($(this).attr("checked") == 1) settingsForm.show(); |
| 105 |
|
else settingsForm.hide(); |
| 106 |
|
}); |
| 107 |
|
$("input[type=checkbox]").trigger("change"); |
| 108 |
|
}'; |
| 109 |
|
drupal_add_js($js, 'inline'); |
| 110 |
|
|
| 111 |
return system_settings_form($form); |
return system_settings_form($form); |
| 112 |
} |
} |
| 113 |
|
|