/[drupal]/contributions/modules/condition/condition.admin.inc
ViewVC logotype

Contents of /contributions/modules/condition/condition.admin.inc

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.6 - (show annotations) (download) (as text)
Mon Jun 8 04:00:34 2009 UTC (5 months, 2 weeks ago) by tobiassjosten
Branch: MAIN
CVS Tags: HEAD
Changes since 1.5: +171 -172 lines
File MIME type: text/x-php
task #291012: Cleaned up as per coding style guidelines
1 <?php
2 // $Id: condition.admin.inc,v 1.5 2008/02/14 09:28:56 fokke Exp $
3
4 /**
5 * @file
6 * Conditions are sets of requirements that make the condition met or not.
7 * Other modules can use this to provide conditional actions.
8 */
9
10 /**
11 * Listing conditions.
12 */
13 function condition_list_form(&$form_state) {
14 $conditions = condition_load();
15
16 if (count($conditions)) {
17 foreach ($conditions as $condition) {
18 $form['conditions'][$condition->cid] = array(
19 '#tree' => TRUE,
20 );
21 $form['conditions'][$condition->cid]['#item'] = $condition;
22 $form['conditions'][$condition->cid]['name'] = array(
23 '#value' => $condition->name,
24 );
25 $form['conditions'][$condition->cid]['status'] = array(
26 '#type' => 'checkbox',
27 '#default_value' => (bool) (isset($form_state['conditions'][$condition->cid]['status']) ? $form_state['conditions'][$condition->cid]['status'] : $condition->status),
28 );
29 $form['conditions'][$condition->cid]['weight'] = array(
30 '#type' => 'weight',
31 '#default_value' => isset($form_state['conditions'][$condition->cid]['weight']) ? $form_state['conditions'][$condition->cid]['weight'] : $condition->weight,
32 );
33 $form['conditions'][$condition->cid]['edit'] = array(
34 '#value' => l(t('edit'), 'admin/settings/condition/'. $condition->cid .'/edit')
35 );
36 $form['conditions'][$condition->cid]['delete'] = array(
37 '#value' => l(t('delete'), 'admin/settings/condition/'. $condition->cid .'/delete'),
38 );
39 }
40
41 $form['submit'] = array(
42 '#type' => 'submit',
43 '#value' => t('Save configuration'),
44 );
45 }
46 else {
47 $form['empty'] = array('#value' => t('There are no conditions yet. !Add a condition first.', array('!Add' => l(t('Add'), 'admin/settings/condition/add'))));
48 }
49
50 return $form;
51 }
52
53 /**
54 * Theme: Listing rules or effects.
55 */
56 function theme_condition_list_form($form) {
57 drupal_add_tabledrag('order-conditions', 'order', 'sibling', 'condition-weight');
58
59 $header = array(
60 t('Condition'),
61 array('data' => t('Enabled'), 'class' => 'checkbox'),
62 t('Weight'),
63 array('data' => t('Operations'), 'colspan' => '2'),
64 );
65
66 $conditions = array();
67
68 foreach (element_children($form['conditions']) as $cid) {
69 $form['conditions'][$cid]['weight']['#attributes']['class'] = 'condition-weight';
70
71 $conditions[] = array(
72 'data' => array(
73 drupal_render($form['conditions'][$cid]['name']),
74 array(
75 'data' => drupal_render($form['conditions'][$cid]['status']),
76 'class' => 'checkbox'
77 ),
78 drupal_render($form['conditions'][$cid]['weight']),
79 drupal_render($form['conditions'][$cid]['edit']),
80 drupal_render($form['conditions'][$cid]['delete']),
81 ),
82 'class' => 'draggable',
83 );
84 }
85
86 $output = '';
87
88 if (count($conditions)) {
89 $output .= theme('table', $header, $conditions, array('id' => 'order-conditions'));
90 }
91
92 $output .= drupal_render($form);
93
94 return $output;
95 }
96
97 /**
98 * Submit: Listing rules or effects.
99 */
100 function condition_list_form_submit($form, &$form_state) {
101 foreach (element_children($form['conditions']) as $cid) {
102 $condition = $form['conditions'][$cid]['#item'];
103 $condition->weight = $form['conditions'][$cid]['weight']['#value'];
104 $condition->status = $form['conditions'][$cid]['status']['#value'];
105
106 condition_save($condition);
107 }
108 }
109
110 /**
111 * Adding or editting a condition.
112 */
113 function condition_edit_form(&$form_state, $condition = NULL) {
114 if (is_object($condition)) {
115 $form['#item'] = $condition;
116 }
117
118 $form['name'] = array(
119 '#type' => 'textfield',
120 '#title' => t('Name'),
121 '#description' => t('Name to indentify the condition.'),
122 '#required' => TRUE,
123 '#maxlength' => 255,
124 '#default_value' => $condition->name,
125 );
126
127 $requirements = module_invoke_all('requirement_info');
128
129 if (is_array($requirements) && count($requirements)) {
130 foreach ($requirements as $requirement => $info) {
131 $form['requirements'][$requirement] = array(
132 '#type' => 'fieldset',
133 '#title' => t('Requirement: @requirement', array('@requirement' => $info['name'])),
134 '#description' => $info['description'],
135 '#collapsible' => TRUE,
136 '#collapsed' => !isset($condition->parameters[$requirement]),
137 );
138
139 $function = $requirement .'_form';
140 $form['requirements'][$requirement] = array_merge($form['requirements'][$requirement], $function($condition->parameters[$requirement]));
141 }
142 }
143 else {
144 $form['requirements'] = array(
145 '#type' => 'fieldset',
146 '#title' => t('Requirements'),
147 '#description' => t('No requirement plug-ins found. Please !enable a module containing some or else this condition will always be met.', array('!enable' => l(t('enable'), 'admin/build/modules', array('fragment' => 'edit-status-requirements')))),
148 '#collapsible' => TRUE,
149 '#collapsed' => FALSE,
150 );
151 }
152
153 $form['submit'] = array(
154 '#type' => 'submit',
155 '#value' => t('Save configuration'),
156 );
157
158 return $form;
159 }
160
161 /**
162 * Theme: Adding or editting a condition.
163 */
164 function theme_condition_edit_form($form) {
165 if ($form['#item']) {
166 drupal_set_title(t('Edit condition %name', array('%name' => $form['#item']->name)));
167 }
168 else {
169 drupal_set_title(t('Add condition'));
170 }
171
172 return drupal_render($form);
173 }
174
175 /**
176 * Submit: Adding or editting a condition.
177 */
178 function condition_edit_form_submit($form, &$form_state) {
179 $condition = $form['#item'] ? $form['#item'] : new stdClass();
180 $condition->name = $form_state['values']['name'];
181
182 foreach (element_children($form['requirements']) as $requirement) {
183 $function = $requirement .'_form_submit';
184 $condition->parameters[$requirement] = $function($form, $form_state);
185 }
186
187 condition_save($condition);
188 drupal_set_message(t('The condition %name has been saved.', array('%name' => $condition->name)));
189 $form_state['redirect'] = 'admin/settings/condition';
190 }
191
192 /**
193 * Deleting a condition.
194 */
195 function condition_delete_form(&$form_state, $condition) {
196 $form['#item'] = $condition;
197
198 return confirm_form($form, t('Are you sure you wan to delete the condition %name?', array('%name' => $condition->name)), 'admin/settings/condition');
199 }
200
201 /**
202 * Submit: Deleting a condition.
203 */
204 function condition_delete_form_submit($form, &$form_state) {
205 condition_delete($form['#item']);
206 drupal_set_message(t('The condition %name has been deleted.', array('%name' => $form['#item']->name)));
207 $form_state['redirect'] = 'admin/settings/condition';
208 }

  ViewVC Help
Powered by ViewVC 1.1.2