PluginProbe ʕ •ᴥ•ʔ
Advanced Editor Tools / 4.1.7
Advanced Editor Tools v4.1.7
trunk 1.0 1.0.1 2.0 2.2 3.0 3.0.1 3.1 3.2 3.2.4 3.2.7 3.3.9 3.3.9.1 3.3.9.2 3.4.2 3.4.2.1 3.4.5 3.4.5.1 3.4.9 3.5.8 3.5.9 3.5.9.1 4.0 4.0.1 4.0.2 4.1 4.1.1 4.1.7 4.1.9 4.2.3 4.2.3.1 4.2.5 4.2.8 4.3.10 4.3.10.1 4.3.8 4.4.1 4.4.3 4.5.6 4.6.3 4.6.7 4.7.11 4.8.0 4.8.1 4.8.2 5.0.0 5.0.1 5.1.0 5.2 5.2.1 5.3 5.4.0 5.5.0 5.5.1 5.6.0 5.9.0 5.9.1 5.9.2
tinymce-advanced / tadv_admin.php
tinymce-advanced Last commit date
css 11 years ago js 11 years ago langs 11 years ago mce 11 years ago readme.txt 11 years ago screenshot-1.png 12 years ago screenshot-2.png 12 years ago tadv_admin.php 11 years ago tinymce-advanced.php 11 years ago uninstall.php 12 years ago
tadv_admin.php
535 lines
1 <?php
2
3 if ( ! defined( 'TADV_ADMIN_PAGE' ) ) {
4 exit;
5 }
6
7 // TODO
8 if ( ! current_user_can( 'manage_options' ) ) {
9 wp_die('Access denied');
10 }
11
12 load_plugin_textdomain( 'tinymce-advanced', false, 'tinymce-advanced/langs' );
13 $message = '';
14
15 // TODO admin || SA
16 if ( ! $this->check_minimum_supported_version() ) {
17 ?>
18 <div class="wrap">
19 <div class="error">
20 <p><?php printf(
21 __( 'This plugin requires WordPress version %1$s or newer. Please upgrade your WordPress installation or download an <a href="%2$s">older version of the plugin</a>.', 'tinymce-advanced' ),
22 '4.0',
23 '//wordpress.org/extend/plugins/tinymce-advanced/download/'
24 ); ?></p>
25 </div>
26 </div>
27 <?php
28
29 return;
30 }
31
32 $imgpath = TADV_URL . 'images/';
33 $tadv_options_updated = false;
34 $settings = $admin_settings = array();
35
36 if ( isset( $_POST['tadv-save'] ) ) {
37 check_admin_referer( 'tadv-save-buttons-order' );
38 $options_array = $admin_settings_array = $disabled_plugins = $plugins_array = array();
39
40 // User settings
41 for ( $i = 1; $i < 5; $i++ ) {
42 $tb = 'tb' . $i;
43
44 if ( $i > 1 && ! empty( $_POST[$tb] ) && is_array( $_POST[$tb] ) &&
45 ( $wp_adv = array_search( 'wp_adv', $_POST[$tb] ) ) !== false ) {
46 // Remove the "Toolbar toggle" button from row 2, 3 or 4.
47 unset( $_POST[$tb][$wp_adv] );
48 }
49
50 $buttons = $this->parse_buttons( $tb );
51 // Layer plugin buttons??
52 $buttons = str_replace( 'insertlayer', 'insertlayer,moveforward,movebackward,absolute', $buttons );
53 $settings['toolbar_' . $i] = $buttons;
54 }
55
56 if ( ! empty( $_POST['advlist'] ) ) {
57 $options_array[] = 'advlist';
58 }
59
60 if ( ! empty( $_POST['contextmenu'] ) ) {
61 $options_array[] = 'contextmenu';
62 }
63
64 if ( ! empty( $_POST['advlink'] ) ) {
65 $options_array[] = 'advlink';
66 }
67
68 if ( ! empty( $_POST['menubar'] ) ) {
69 $options_array[] = 'menubar';
70 $plugins_array = array( 'anchor', 'code', 'insertdatetime', 'nonbreaking', 'print', 'searchreplace',
71 'table', 'visualblocks', 'visualchars' );
72 }
73
74 // Admin settings, TODO
75 if ( ! empty( $_POST['importcss'] ) ) {
76 $admin_settings_array[] = 'importcss';
77 }
78
79 if ( ! empty( $_POST['textpattern'] ) ) {
80 $admin_settings_array[] = 'textpattern';
81 }
82
83 if ( ! empty( $_POST['no_autop'] ) ) {
84 $admin_settings_array[] = 'no_autop';
85 }
86
87 if ( ! empty( $_POST['paste_images'] ) ) {
88 $admin_settings_array[] = 'paste_images';
89 }
90
91 if ( ! empty( $_POST['fontsize_formats'] ) ) {
92 $admin_settings_array[] = 'fontsize_formats';
93 }
94
95 if ( ! empty( $_POST['editorstyle'] ) ) {
96 $admin_settings_array[] = 'editorstyle';
97 }
98
99 if ( ! empty( $_POST['disabled_plugins'] ) && is_array( $_POST['disabled_plugins'] ) ) {
100 foreach( $_POST['disabled_plugins'] as $plugin ) {
101 if ( in_array( $this->all_plugins, $plugin, true ) ) {
102 $disabled_plugins[] = $plugin;
103 }
104 }
105 }
106
107 // Admin options
108 $admin_settings['options'] = implode( ',', $admin_settings_array );
109 $admin_settings['disabled_plugins'] = implode( ',', $disabled_plugins );
110
111 $this->admin_settings = $admin_settings;
112 update_option( 'tadv_admin_settings', $admin_settings );
113
114 // User options
115 // TODO allow editors, authors and contributors some access
116 $this->settings = $settings;
117 $this->load_settings();
118
119 // Special case
120 if ( in_array( 'image', $this->used_buttons, true ) ) {
121 $options_array[] = 'image';
122 }
123
124 $settings['options'] = implode( ',', $options_array );
125 $this->settings = $settings;
126 $this->load_settings();
127
128 // Merge the submitted plugins and from the buttons
129 $settings['plugins'] = implode( ',', $this->get_plugins( $plugins_array ) );
130 $this->settings = $settings;
131 $this->plugins = $settings['plugins'];
132
133 // Save the new settings
134 update_option( 'tadv_settings', $settings );
135
136 } elseif ( isset( $_POST['tadv-restore-defaults'] ) ) {
137 // TODO admin || SA
138 $this->admin_settings = $this->default_admin_settings;
139 update_option( 'tadv_admin_settings', $this->default_admin_settings );
140
141 // can 'save_posts' ?
142 $this->settings = $this->default_settings;
143 update_option( 'tadv_settings', $this->default_settings );
144
145 $message = '<div class="updated"><p>' . __('Default settings restored.', 'tinymce-advanced') . '</p></div>';
146 } elseif ( isset( $_POST['tadv-export-settings'] ) ) {
147 $this->load_settings();
148 $output = array( 'settings' => $this->settings );
149 // TODO admin || SA
150 $output['admin_settings'] = $this->admin_settings;
151
152 ?>
153 <div class="wrap">
154 <h2><?php _e( 'TinyMCE Advanced Settings Export', 'tinymce-advanced' ); ?></h2>
155
156 <div class="tadv-import-export">
157 <p>
158 <?php _e( 'The settings are exported as a JSON encoded string.', 'tinymce-advanced' ); ?>
159 <?php _e( 'Please copy the content and save it in a <b>text</b> (.txt) file, using a plain text editor like Notepad.', 'tinymce-advanced' ); ?>
160 <?php _e( 'It is important that the export is not changed in any way, no spaces, line breaks, etc.', 'tinymce-advanced' ); ?>
161 </p>
162
163 <form action="">
164 <p><textarea readonly="readonly" id="tadv-export"><?php echo json_encode( $output ); ?></textarea></p>
165 <p><button type="button" class="button" id="tadv-export-select"><?php _e( 'Select All', 'tinymce-advanced' ); ?></button></p>
166 </form>
167 <p><a href=""><?php _e( 'Back to Editor Settings', 'tinymce-advanced' ); ?></a></p>
168 </div>
169 </div>
170 <?php
171
172 return;
173 } elseif ( isset( $_POST['tadv-import-settings'] ) ) {
174 // TODO ! admin && ! SA
175 ?>
176 <div class="wrap">
177 <h2><?php _e( 'TinyMCE Advanced Settings Import', 'tinymce-advanced' ); ?></h2>
178
179 <div class="tadv-import-export">
180 <p><?php _e( 'The settings are imported from a JSON encoded string. Please paste the exported string in the text area below.', 'tinymce-advanced' ); ?></p>
181
182 <form action="" method="post">
183 <p><textarea id="tadv-import" name="tadv-import"></textarea></p>
184 <p>
185 <button type="button" class="button" id="tadv-import-verify"><?php _e( 'Verify', 'tinymce-advanced' ); ?></button>
186 <input type="submit" class="button button-primary alignright" name="tadv-import-submit" value="<?php _e( 'Import', 'tinymce-advanced' ); ?>" />
187 </p>
188 <?php wp_nonce_field('tadv-import'); ?>
189 <p id="tadv-import-error"></p>
190 </form>
191 <p><a href=""><?php _e( 'Back to Editor Settings', 'tinymce-advanced' ); ?></a></p>
192 </div>
193 </div>
194 <?php
195
196 return;
197 } elseif ( isset( $_POST['tadv-import-submit'] ) && ! empty( $_POST['tadv-import'] ) && is_string( $_POST['tadv-import'] ) ) {
198 check_admin_referer( 'tadv-import' );
199 $import = json_decode( trim( wp_unslash( $_POST['tadv-import'] ) ), true );
200 $settings = $admin_settings = array();
201
202 if ( is_array( $import ) ) {
203 if ( ! empty( $import['settings'] ) ) {
204 $settings = $this->sanitize_settings( $import['settings'] );
205 }
206
207 if ( ! empty( $import['admin_settings'] ) ) {
208 $admin_settings = $this->sanitize_settings( $import['admin_settings'] );
209 }
210 }
211
212 if ( empty( $settings ) ) {
213 $message = '<div class="error"><p>' . __('Importing of settings failed.', 'tinymce-advanced') . '</p></div>';
214 } else {
215 $this->admin_settings = $admin_settings;
216 update_option( 'tadv_admin_settings', $admin_settings );
217
218 // User options
219 // TODO allow editors, authors and contributors some access
220 $this->settings = $settings;
221 $this->load_settings();
222
223 // Merge the submitted plugins and from the buttons
224 if ( ! empty( $settings['plugins'] ) ) {
225 $settings['plugins'] = implode( ',', $this->get_plugins( explode( ',', $settings['plugins'] ) ) );
226 }
227
228 $this->plugins = $settings['plugins'];
229
230 // Save the new settings
231 update_option( 'tadv_settings', $settings );
232 }
233 }
234
235 $this->load_settings();
236
237 if ( empty( $this->toolbar_1 ) && empty( $this->toolbar_2 ) && empty( $this->toolbar_3 ) && empty( $this->toolbar_4 ) ) {
238 $message = '<div class="error"><p>' . __( 'ERROR: All toolbars are empty. Default settings loaded.', 'tinymce-advanced' ) . '</p></div>';
239
240 $this->admin_settings = $this->default_admin_settings;
241 $this->settings = $this->default_settings;
242 $this->load_settings();
243 }
244
245 $used_buttons = array_merge( $this->toolbar_1, $this->toolbar_2, $this->toolbar_3, $this->toolbar_4 );
246 $all_buttons = $this->get_all_buttons();
247
248 ?>
249 <div class="wrap" id="contain">
250 <h2><?php _e( 'Editor Settings', 'tinymce-advanced' ); ?></h2>
251 <?php
252
253 if ( isset( $_POST['tadv-save'] ) && empty( $message ) ) {
254 ?><div class="updated"><p><?php _e( 'Settings saved.', 'tinymce-advanced' ); ?></p></div><?php
255 } else {
256 echo $message;
257 }
258
259 ?>
260 <form id="tadvadmin" method="post" action="">
261
262 <p class="tadv-submit">
263 <input class="button-primary button-large" type="submit" name="tadv-save" value="<?php _e( 'Save Changes', 'tinymce-advanced' ); ?>" />
264 </p>
265
266 <div id="tadvzones">
267
268 <p><?php _e( 'New in TinyMCE 4.0/WordPress 3.9 is the editor menu. When it is enabled, most buttons are also available as menu items.', 'tinymce-advanced' ); ?></p>
269
270 <p><label>
271 <input type="checkbox" name="menubar" id="menubar" <?php if ( $this->check_setting( 'menubar' ) ) { echo ' checked="checked"'; } ?>>
272 <?php _e( 'Enable the editor menu.', 'tinymce-advanced' ); ?>
273 </label></p>
274
275 <div id="tadv-mce-menu" class="mce-container mce-menubar mce-toolbar mce-first mce-stack-layout-item
276 <?php if ( $this->check_setting( 'menubar' ) ) { echo ' enabled'; } ?>">
277 <div class="mce-container-body mce-flow-layout">
278 <div class="mce-widget mce-btn mce-menubtn mce-first mce-flow-layout-item">
279 <button type="button">
280 <span class="tadv-translate">File</span>
281 <i class="mce-caret"></i>
282 </button>
283 </div>
284 <div class="mce-widget mce-btn mce-menubtn mce-flow-layout-item">
285 <button type="button">
286 <span class="tadv-translate">Edit</span>
287 <i class="mce-caret"></i>
288 </button>
289 </div>
290 <div class="mce-widget mce-btn mce-menubtn mce-flow-layout-item">
291 <button type="button">
292 <span class="tadv-translate">Insert</span>
293 <i class="mce-caret"></i>
294 </button>
295 </div>
296 <div class="mce-widget mce-btn mce-menubtn mce-flow-layout-item mce-toolbar-item">
297 <button type="button">
298 <span class="tadv-translate">View</span>
299 <i class="mce-caret"></i>
300 </button>
301 </div>
302 <div class="mce-widget mce-btn mce-menubtn mce-flow-layout-item">
303 <button type="button">
304 <span class="tadv-translate">Format</span>
305 <i class="mce-caret"></i>
306 </button>
307 </div>
308 <div class="mce-widget mce-btn mce-menubtn mce-flow-layout-item">
309 <button type="button">
310 <span class="tadv-translate">Table</span>
311 <i class="mce-caret"></i>
312 </button>
313 </div>
314 <div class="mce-widget mce-btn mce-menubtn mce-last mce-flow-layout-item">
315 <button type="button">
316 <span class="tadv-translate">Tools</span>
317 <i class="mce-caret"></i>
318 </button>
319 </div>
320 </div>
321 </div>
322
323 <?php
324
325 $mce_text_buttons = array( 'styleselect', 'formatselect', 'fontselect', 'fontsizeselect' );
326
327 for ( $i = 1; $i < 5; $i++ ) {
328 $toolbar = "toolbar_$i";
329
330 ?>
331 <div class="tadvdropzone mce-toolbar">
332 <ul id="tb<?php echo $i; ?>" class="container">
333 <?php
334
335 foreach( $this->$toolbar as $button ) {
336 if ( strpos( $button, 'separator' ) !== false || in_array( $button, array( 'moveforward', 'movebackward', 'absolute' ) ) ) {
337 continue;
338 }
339
340 if ( isset( $all_buttons[$button] ) ) {
341 $name = $all_buttons[$button];
342 unset( $all_buttons[$button] );
343 } else {
344 // error?..
345 continue;
346 }
347
348 ?><li class="tadvmodule" id="<?php echo $button; ?>">
349 <?php
350
351 if ( in_array( $button, $mce_text_buttons, true ) ) {
352 ?>
353 <div class="tadvitem mce-widget mce-btn mce-menubtn mce-fixed-width mce-listbox">
354 <div class="the-button">
355 <span class="descr"><?php echo $name; ?></span>
356 <i class="mce-caret"></i>
357 <input type="hidden" class="tadv-button" name="tb<?php echo $i; ?>[]" value="<?php echo $button; ?>" />
358 </div>
359 </div>
360 <?php
361 } else {
362 ?>
363 <div class="tadvitem">
364 <i class="mce-ico mce-i-<?php echo $button; ?>" title="<?php echo $name; ?>"></i>
365 <span class="descr"><?php echo $name; ?></span>
366 <input type="hidden" class="tadv-button" name="tb<?php echo $i; ?>[]" value="<?php echo $button; ?>" />
367 </div>
368 <?php
369 }
370
371 ?>
372 </li><?php
373
374 }
375
376 ?>
377 </ul></div>
378 <?php
379 }
380
381 ?>
382 </div>
383
384 <p><?php _e( 'Drag buttons from the unused buttons below and drop them in the toolbars above, or drag the buttons in the toolbars to rearrange them.', 'tinymce-advanced' ); ?></p>
385
386 <div id="unuseddiv">
387 <h3><?php _e( 'Unused Buttons', 'tinymce-advanced' ); ?></h3>
388 <ul id="unused" class="container">
389 <?php
390
391 foreach( $all_buttons as $button => $name ) {
392 if ( strpos( $button, 'separator' ) !== false ) {
393 continue;
394 }
395
396 ?><li class="tadvmodule" id="<?php echo $button; ?>">
397 <?php
398
399 if ( in_array( $button, $mce_text_buttons, true ) ) {
400 ?>
401 <div class="tadvitem mce-widget mce-btn mce-menubtn mce-fixed-width mce-listbox">
402 <div class="the-button">
403 <span class="descr"><?php echo $name; ?></span>
404 <i class="mce-caret"></i>
405 <input type="hidden" class="tadv-button" name="tb<?php echo $i; ?>[]" value="<?php echo $button; ?>" />
406 </div>
407 </div>
408 <?php
409 } else {
410 ?>
411 <div class="tadvitem">
412 <i class="mce-ico mce-i-<?php echo $button; ?>" title="<?php echo $name; ?>"></i>
413 <span class="descr"><?php echo $name; ?></span>
414 <input type="hidden" class="tadv-button" name="tb<?php echo $i; ?>[]" value="<?php echo $button; ?>" />
415 </div>
416 <?php
417 }
418
419 ?>
420 </li><?php
421
422 }
423
424 ?>
425 </ul>
426 </div>
427
428 <p class="tadv-more-plugins"><?php _e( 'Also enable:', 'tinymce-advanced' ); ?>
429 <label>
430 <input type="checkbox" name="advlist" id="advlist" <?php if ( $this->check_setting('advlist') ) echo ' checked="checked"'; ?> />
431 <?php _e( 'List Style Options', 'tinymce-advanced' ); ?>
432 </label>
433
434 <label>
435 <input type="checkbox" name="contextmenu" id="contextmenu" <?php if ( $this->check_setting('contextmenu') ) echo ' checked="checked"'; ?> />
436 <?php _e( 'Context Menu', 'tinymce-advanced' ); ?>
437 </label>
438
439 <label>
440 <input type="checkbox" name="advlink" id="advlink" <?php if ( $this->check_setting('advlink') ) echo ' checked="checked"'; ?> />
441 <?php _e( 'Link (replaces the Insert/Edit Link dialog)', 'tinymce-advanced' ); ?>
442 </label>
443 </p>
444
445 <?php
446
447 if ( ! is_multisite() || current_user_can( 'manage_sites' ) ) {
448
449 ?>
450 <div class="advanced-options">
451 <h3><?php _e( 'Advanced Options', 'tinymce-advanced' ); ?></h3>
452 <?php
453
454 if ( ! is_multisite() && ! current_theme_supports( 'editor-style' ) ) {
455
456 ?>
457 <div>
458 <label><input type="checkbox" name="editorstyle" id="editorstyle" <?php if ( $this->check_admin_setting( 'editorstyle' ) ) echo ' checked="checked"'; ?> />
459 <?php _e( 'Import editor-style.css.', 'tinymce-advanced' ); ?></label>
460 <p>
461 <?php _e( 'It seems your theme does not support customised styles for the editor.', 'tinymce-advanced' ); ?>
462 <?php _e( 'You can create a CSS file named <code>editor-style.css</code> and upload it to your theme\'s directory.', 'tinymce-advanced' ); ?>
463 <?php _e( 'After that, enable this setting.', 'tinymce-advanced' ); ?>
464 </p>
465 </div>
466 <?php
467 }
468
469 ?>
470 <div>
471 <label><input type="checkbox" name="importcss" id="importcss" <?php if ( $this->check_admin_setting( 'importcss' ) ) echo ' checked="checked"'; ?> />
472 <?php _e( 'Load the CSS classes used in editor-style.css and replace the Formats button and sub-menu.', 'tinymce-advanced' ); ?></label>
473 </div>
474
475 <div>
476 <label><input type="checkbox" name="textpattern" id="textpattern" <?php if ( $this->check_admin_setting('textpattern') ) echo ' checked="checked"'; ?> />
477 <?php _e( 'Markdown typing support (text pattern plugin)', 'tinymce-advanced' ); ?></label>
478 <p>
479 <?php _e( 'This plugin matches special patterns while you type and applies formats or executes commands on the matched text.', 'tinymce-advanced' ); ?>
480 <?php _e( 'The default patterns are the same as the markdown syntax so you can type <code># text</code> to create a header, <code>1. text</code> to create a list, <code>**text**</code> to make it bold, etc.', 'tinymce-advanced' ); ?>
481 <a href="http://www.tinymce.com/wiki.php/Configuration:textpattern_patterns" target="_blank"><?php _e( 'More information', 'tinymce-advanced' ); ?></a>
482 </p>
483 </div>
484
485 <div>
486 <label><input type="checkbox" name="no_autop" id="no_autop" <?php if ( $this->check_admin_setting( 'no_autop' ) ) echo ' checked="checked"'; ?> />
487 <?php _e( 'Stop removing the &lt;p&gt; and &lt;br /&gt; tags when saving and show them in the Text editor', 'tinymce-advanced' ); ?></label>
488 <p>
489 <?php _e( 'This will make it possible to use more advanced coding in the HTML editor without the back-end filtering affecting it much.', 'tinymce-advanced' ); ?>
490 <?php _e( 'However it may behave unexpectedly in rare cases, so test it thoroughly before enabling it permanently.', 'tinymce-advanced' ); ?>
491 <?php _e( 'Line breaks in the HTML editor would still affect the output, in particular do not use empty lines, line breaks inside HTML tags or multiple &lt;br /&gt; tags.', 'tinymce-advanced' ); ?>
492 </p>
493 </div>
494
495 <div>
496 <label><input type="checkbox" name="fontsize_formats" id="fontsize_formats" <?php if ( $this->check_admin_setting( 'fontsize_formats' ) ) echo ' checked="checked"'; ?> />
497 <?php _e( 'Replace font size settings', 'tinymce-advanced' ); ?></label>
498 <p><?php _e( 'Replaces the size setting available for fonts with: 8px 10px 12px 14px 16px 20px 24px 28px 32px 36px.', 'tinymce-advanced' ); ?></p>
499 </div>
500
501 <div>
502 <label><input type="checkbox" name="paste_images" id="paste_images" <?php if ( $this->check_admin_setting( 'paste_images' ) ) echo ' checked="checked"'; ?> />
503 <?php _e( 'Enable pasting of image source', 'tinymce-advanced' ); ?></label>
504 <p>
505 <?php _e( 'Works only in Firefox and Safari. These browsers support pasting of images directly in the editor and convert them to base64 encoded text.', 'tinymce-advanced' ); ?>
506 <?php _e( 'This is not acceptable for larger images like photos or graphics, but may be useful in some cases for very small images like icons, not larger than 2-3KB.', 'tinymce-advanced' ); ?>
507 <?php _e( 'These images will not be available in the Media Library.', 'tinymce-advanced' ); ?>
508 </p>
509 </div>
510 </div>
511
512 <div class="advanced-options">
513 <h3><?php _e( 'Administration', 'tinymce-advanced' ); ?></h3>
514 <div>
515 <input type="submit" class="button" name="tadv-export-settings" value="<?php _e( 'Export Settings', 'tinymce-advanced' ); ?>" /> &nbsp;
516 <input type="submit" class="button" name="tadv-import-settings" value="<?php _e( 'Import Settings', 'tinymce-advanced' ); ?>" />
517 </div>
518 </div>
519 <?php
520
521 }
522 ?>
523
524 <p class="tadv-submit">
525 <?php wp_nonce_field( 'tadv-save-buttons-order' ); ?>
526 <input class="button" type="submit" name="tadv-restore-defaults" value="<?php _e( 'Restore Default Settings', 'tinymce-advanced' ); ?>" />
527 <input class="button-primary button-large" type="submit" name="tadv-save" value="<?php _e( 'Save Changes', 'tinymce-advanced' ); ?>" />
528 </p>
529 </form>
530
531 <div id="wp-adv-error-message" class="tadv-error">
532 <?php _e( 'The [Toolbar toggle] button shows or hides the second, third, and forth button rows. It will only work when it is in the first row and there are buttons in the second row.', 'tinymce-advanced' ); ?>
533 </div>
534 </div><!-- /wrap -->
535