Project

General

Profile

1
<?php
2
/**
3
 *
4
 * @category        module
5
 * @package         Form
6
 * @author          WebsiteBaker Project
7
 * @copyright       2009-2013, WebsiteBaker Org. e.V.
8
 * @link            http://www.websitebaker.org/
9
 * @license         http://www.gnu.org/licenses/gpl.html
10
 * @platform        WebsiteBaker 2.8.x
11
 * @requirements    PHP 5.2.2 and higher
12
 * @version         $Id: modify.php 1919 2013-06-07 04:21:49Z Luisehahne $
13
 * @filesource      $HeadURL: svn://isteam.dynxs.de/wb-archiv/branches/2.8.x/wb/modules/form/modify.php $
14
 * @lastmodified    $Date: 2013-06-07 06:21:49 +0200 (Fri, 07 Jun 2013) $
15
 * @description
16
 */
17

    
18
// Must include code to stop this file being access directly
19
/* -------------------------------------------------------- */
20
if(defined('WB_PATH') == false)
21
{
22
	// Stop this file being access directly
23
		die('<h2 style="color:red;margin:3em auto;text-align:center;">Cannot access this file directly</h2>');
24
}
25
/* -------------------------------------------------------- */
26

    
27
//overwrite php.ini on Apache servers for valid SESSION ID Separator
28
if(function_exists('ini_set')) {
29
	ini_set('arg_separator.output', '&amp;');
30
}
31

    
32
// load module language file
33
$lang = (dirname(__FILE__)) . '/languages/' . LANGUAGE . '.php';
34
require_once(!file_exists($lang) ? (dirname(__FILE__)) . '/languages/EN.php' : $lang );
35

    
36
include_once(WB_PATH.'/framework/functions.php');
37

    
38
//Delete all form fields with no title
39
$sql  = 'DELETE FROM `'.TABLE_PREFIX.'mod_form_fields` ';
40
$sql .= 'WHERE page_id = '.(int)$page_id.' ';
41
$sql .=   'AND section_id = '.(int)$section_id.' ';
42
$sql .=   'AND title=\'\' ';
43
if( !$database->query($sql) ) {
44
// error msg
45
}
46

    
47
// later in upgrade.php
48
$table_name = TABLE_PREFIX.'mod_form_settings';
49
$field_name = 'perpage_submissions';
50
$description = "INT NOT NULL DEFAULT '10' AFTER `max_submissions`";
51
if(!$database->field_exists($table_name,$field_name)) {
52
	$database->field_add($table_name, $field_name, $description);
53
}
54
?>
55
<table summary="" width="100%" cellpadding="0" cellspacing="0" border="0">
56
<tr>
57
	<td align="left" width="50%">
58
		<input type="button" value="<?php echo $TEXT['ADD'].' '.$TEXT['FIELD']; ?>" onclick="javascript: window.location = '<?php echo WB_URL; ?>/modules/form/add_field.php?page_id=<?php echo $page_id; ?>&amp;section_id=<?php echo $section_id; ?>';" style="width: 100%;" />
59
	</td>
60
	<td align="right" width="50%">
61
		<input type="button" value="<?php echo $TEXT['SETTINGS']; ?>" onclick="javascript: window.location = '<?php echo WB_URL; ?>/modules/form/modify_settings.php?page_id=<?php echo $page_id; ?>&amp;section_id=<?php echo $section_id; ?>';" style="width: 100%;" />
62
	</td>
63
</tr>
64
</table>
65

    
66
<br />
67

    
68
<h2><?php echo $TEXT['MODIFY'].'/'.$TEXT['DELETE'].' '.$TEXT['FIELD']; ?></h2>
69
<?php
70

    
71
// Loop through existing fields
72
$sql  = 'SELECT * FROM `'.TABLE_PREFIX.'mod_form_fields` ';
73
$sql .= 'WHERE `section_id` = '.(int)$section_id.' ';
74
$sql .= 'ORDER BY `position` ASC';
75
if($query_fields = $database->query($sql)) {
76
	if($query_fields->numRows() > 0) {
77
		$num_fields = $query_fields->numRows();
78
		$row = 'a';
79
		?>
80
		<table summary="" width="100%" cellpadding="2" cellspacing="0" border="0">
81
		<thead>
82
			<tr style="background-color: #dddddd; font-weight: bold;">
83
				<th width="20" style="padding-left: 5px;">&nbsp;</th>
84
				<th width="30" style="text-align: right;">ID</th>
85
				<th width="400"><?php print $TEXT['FIELD']; ?></th>
86
				<th width="175"><?php print $TEXT['TYPE']; ?></th>
87
				<th width="100"><?php print $TEXT['REQUIRED']; ?></th>
88
				<th width="175">
89
				<?php
90
					echo $TEXT['MULTISELECT'];
91
				?>
92
				</th>
93
				<th width="175" colspan="3">
94
				<?php
95
					echo $TEXT['ACTIONS'];
96
				?>
97
				</th>
98
			</tr>
99
		</thead>
100
		<tbody>
101
		<?php
102
		while($field = $query_fields->fetchRow(MYSQL_ASSOC)) {
103
			?>
104
			<tr class="row_<?php echo $row; ?>">
105
				<td style="padding-left: 5px;">
106
					<a href="<?php echo WB_URL; ?>/modules/form/modify_field.php?page_id=<?php echo $page_id; ?>&amp;section_id=<?php echo $section_id; ?>&amp;field_id=<?php echo $admin->getIDKEY($field['field_id']); ?>" title="<?php echo $TEXT['MODIFY']; ?>">
107
						<img src="<?php echo THEME_URL; ?>/images/modify_16.png" border="0" alt="^" />
108
					</a>
109
				</td>
110
				<td style="text-align: right;">
111
					<a href="<?php echo WB_URL; ?>/modules/form/modify_field.php?page_id=<?php echo $page_id; ?>&amp;section_id=<?php echo $section_id; ?>&amp;field_id=<?php echo $admin->getIDKEY($field['field_id']); ?>">
112
						<?php echo $field['field_id']; ?>
113
					</a>
114
				</td>
115
				<td>
116
					<a href="<?php echo WB_URL; ?>/modules/form/modify_field.php?page_id=<?php echo $page_id; ?>&amp;section_id=<?php echo $section_id; ?>&amp;field_id=<?php echo $admin->getIDKEY($field['field_id']); ?>">
117
						<?php echo $field['title']; ?>
118
					</a>
119
				</td>
120
				<td>
121
					<?php
122
					if($field['type'] == 'textfield') {
123
						echo $TEXT['SHORT_TEXT'];
124
					} elseif($field['type'] == 'textarea') {
125
						echo $TEXT['LONG_TEXT'];
126
					} elseif($field['type'] == 'heading') {
127
						echo $TEXT['HEADING'];
128
					} elseif($field['type'] == 'select') {
129
						echo $TEXT['SELECT_BOX'];
130
					} elseif($field['type'] == 'checkbox') {
131
						echo $TEXT['CHECKBOX_GROUP'];
132
					} elseif($field['type'] == 'radio') {
133
						echo $TEXT['RADIO_BUTTON_GROUP'];
134
					} elseif($field['type'] == 'email') {
135
						echo $TEXT['EMAIL_ADDRESS'];
136
					}
137
					?>
138
				</td>
139
				<td style="text-align: center;">
140
				<?php
141
				if ($field['type'] != 'group_begin') {
142
					if($field['required'] == 1) { echo $TEXT['YES']; } else { echo $TEXT['NO']; }
143
				}
144
				?>
145
				</td>
146
				<td>
147
				<?php
148
				if ($field['type'] == 'select') {
149
					$field['extra'] = explode(',',$field['extra']);
150
					 if($field['extra'][1] == 'multiple') { echo $TEXT['YES']; } else { echo $TEXT['NO']; }
151
				}
152
				?>
153
				</td>
154
				<td width="20" style="text-align: center;">
155
				<?php if($field['position'] != 1) { ?>
156
					<a href="<?php echo WB_URL; ?>/modules/form/move_up.php?page_id=<?php echo $page_id; ?>&amp;section_id=<?php echo $section_id; ?>&amp;field_id=<?php echo $admin->getIDKEY($field['field_id']); ?>" title="<?php echo $TEXT['MOVE_UP']; ?>">
157
						<img src="<?php echo THEME_URL; ?>/images/up_16.png" border="0" alt="^" />
158
					</a>
159
				<?php } ?>
160
				</td>
161
				<td width="20" style="text-align: center;">
162
				<?php if($field['position'] != $num_fields) { ?>
163
					<a href="<?php echo WB_URL; ?>/modules/form/move_down.php?page_id=<?php echo $page_id; ?>&amp;section_id=<?php echo $section_id; ?>&amp;field_id=<?php echo $admin->getIDKEY($field['field_id']); ?>" title="<?php echo $TEXT['MOVE_DOWN']; ?>">
164
						<img src="<?php echo THEME_URL; ?>/images/down_16.png" border="0" alt="v" />
165
					</a>
166
				<?php } ?>
167
				</td>
168
				<td width="20" style="text-align: center;">
169
<?php
170
				$url = (WB_URL.'/modules/form/delete_field.php?page_id='.$page_id.'&amp;section_id='.$section_id.'&amp;field_id='.$admin->getIDKEY($field['field_id']))
171
?>
172
					<a href="javascript:confirm_link('<?php echo url_encode($TEXT['ARE_YOU_SURE']); ?>','<?php echo $url; ?>');" title="<?php echo $TEXT['DELETE']; ?>">
173
						<img src="<?php echo THEME_URL; ?>/images/delete_16.png" border="0" alt="X" />
174
					</a>
175
				</td>
176
			</tr>
177
<?php
178
			// Alternate row color
179
			if($row == 'a') {
180
				$row = 'b';
181
			} else {
182
				$row = 'a';
183
			}
184
		}
185
?>
186
		</tbody>
187
		</table>
188
		<?php
189
	} else {
190
		echo $TEXT['NONE_FOUND'];
191
	}
192
}
193
// Query overview submissions table
194
/*
195
*/
196
$sql  = 'SELECT `perpage_submissions` FROM `'.TABLE_PREFIX.'mod_form_settings`  ';
197
$sql .= 'WHERE `section_id` = '.(int)$section_id.' ';
198
//$sql .= 'ORDER BY `submitted_when` ASC ';
199
$limit = $database->get_one($sql);
200

    
201
$page = 1;
202
if(isset($_GET['page']) && is_numeric(trim($_GET['page'])))
203
{
204
	$page = intval($database->escapeString($_GET['page']));
205
}
206

    
207
// How many adjacent pages should be shown on each side?
208
$adjacents = 1;
209

    
210
$startrow = ($page * $limit) - ($limit);
211

    
212
$sql  = 'SELECT s.*, u.`display_name`, u.`email` ';
213
$sql .=            'FROM `'.TABLE_PREFIX.'mod_form_submissions` s ';
214
$sql .= 'LEFT OUTER JOIN `'.TABLE_PREFIX.'users` u ';
215
$sql .= 'ON u.`user_id` = s.`submitted_by` ';
216
$sql .= 'WHERE s.`section_id` = '.(int)$section_id.' ';
217
$sql .= 'ORDER BY s.`submitted_when` DESC ';
218
//$sql .= "LIMIT $startrow,$limit ";
219

    
220
if($query_submissions = $database->query($sql)) {
221
    $totalrows = $query_submissions->numRows();
222

    
223
// set template file and assign module and template block
224
	$oTpl = new Template(dirname(__FILE__).'/htt','keep');
225
	$oTpl->set_file('page', 'OverviewSubmission.htt');
226
	$oTpl->debug = false; // false, true
227
	$oTpl->set_block('page', 'main_block', 'main');
228
// generell vars
229
	$oTpl->set_var(array(
230
		'TEXT_SUBMISSIONS' => $TEXT['SUBMISSIONS'],
231
		'WB_URL' => WB_URL,
232
		'THEME_URL' => THEME_URL,
233
		'MESSAGE_VALUE' => '',
234
		'PAGINATION' => '',
235
		'PAGE_ID' => $page_id,
236
		'SECTION_ID' => $section_id,
237
		'TEXT_SUBMITTED' => $TEXT['SUBMITTED'],
238
		'TEXT_USER' => $TEXT['USER'],
239
		'TEXT_EMAIL' => $TEXT['EMAIL'],
240
		'MOD_FORM_FROM' => $MOD_FORM['FROM'],
241
		'TEXT_NONE_FOUND' => '',
242
		'SUBMISSION_ID' => '',
243
		'SUBMISSION_CREATE_WHEN' => '',
244
		'SUBMISSION_BY' => '',
245
		'SUBMISSION_EMAIL' => '',
246
		'loop_submmission' => '',
247
		)
248
	);
249

    
250
//	$oTpl->set_block('main_block', 'language_list_block', 'language_list');
251
	$oTpl->set_block('main_block', 'loop_submmission_block', 'loop_submmission');
252
	if($query_submissions->numRows() > 0) {
253
//print '<pre style="text-align: left;"><strong>function '.__FUNCTION__.'( '.''.' );</strong>  basename: '.basename(__FILE__).'  line: '.__LINE__.' -> <br />';
254
//print_r( $_SERVER ); print '</pre>'; // flush ();sleep(10); die();
255
		if($startrow > 0  ){
256
			$query_submissions->seekRow($startrow);
257
		} else {
258
			$query_submissions->rewind();
259
		}
260
		// List submissions
261
        $currentrow = 0;
262
		$row = 'a';
263
//    	$oTpl->set_block('main_block', 'loop_submmission_block', 'loop_submmission');
264
		while($submission = $query_submissions->fetchRow(MYSQL_ASSOC) )
265
        {
266
			$currentrow++;
267
	        $submission['display_name'] = (($submission['display_name']!=null) ? $submission['display_name'] : '');
268
			$sBody = $submission['body'];
269
			$regex = "/[a-z0-9\-_]?[a-z0-9.\-_]+[a-z0-9\-_]?@[a-z0-9.-]+\.[a-z]{2,}/i";
270
			preg_match ($regex, $sBody, $output);
271
// workout if output is empty
272
			$submission['email'] = (isset($output['0']) ? $output['0'] : '');
273
			$querystr = 'page='.$page.'&amp;page_id='.$page_id.'&amp;section_id='.$section_id.'&amp;submission_id='.$admin->getIDKEY($submission['submission_id']);
274
			$row = $row=='a' ? 'b' : 'a';
275

    
276
			$oTpl->set_var('ROW_BIT',$row);
277
			$oTpl->set_var('QUERYSTR', $querystr);
278
			$oTpl->set_var('TEXT_ARE_YOU_SURE', url_encode($TEXT['ARE_YOU_SURE']));
279
			$oTpl->set_var('SUBMISSION_IDKEY', $admin->getIDKEY($submission['submission_id']));
280
			$oTpl->set_var('TEXT_DELETE', $TEXT['DELETE']);
281
			$oTpl->set_var('PAGE', $page);
282
			$oTpl->set_var('TEXT_OPEN', $TEXT['OPEN']);
283
			$oTpl->set_var('SUBMISSION_ID', $submission['submission_id']);
284
			$oTpl->set_var('SUBMISSION_CREATE_WHEN', gmdate(DATE_FORMAT.', '.TIME_FORMAT, $submission['submitted_when']+TIMEZONE ));
285
			$oTpl->set_var('SUBMISSION_BY', $submission['display_name']);
286
			$oTpl->set_var('SUBMISSION_EMAIL', $submission['email']);
287

    
288
			$oTpl->parse('loop_submmission', 'loop_submmission_block', true);
289

    
290
			if ($currentrow==$limit) { break;}
291
		}
292
        $script_name = $_SERVER['SCRIPT_NAME'];
293
        //include_once((dirname(__FILE__)) .'/DiggPagination.php');
294
        $pagination = m_form_DiggPagination::Pager($page,$totalrows,$limit,$adjacents,$script_name);
295
    	$oTpl->set_var(array(
296
    		'PAGINATION' => $pagination,
297
    		)
298
    	);
299

    
300
	} else {
301
    	$oTpl->set_block('loop_submmission_block', '');
302
		$oTpl->set_var('TEXT_NONE_FOUND', $TEXT['NONE_FOUND']);
303
    }
304
} else {
305
	echo $database->get_error().'<br />';
306
	echo $sql;
307

    
308
}
309

    
310
// Parse template object
311
$oTpl->parse('main', 'main_block', false);
312
$output = $oTpl->finish($oTpl->parse('output', 'page'));
313
unset($oTpl);
314
print $output;
315
$output = '';
(13-13/25)