__( 'Month', 'accua-form-api'), 'unique_submissions' => __( 'Unique submissions', 'accua-form-api') , 'submissions' => __('Total submissions', 'accua-form-api'), ); global $hook_suffix; register_column_headers($hook_suffix, $column_list); //$baseurl = WP_PLUGIN_URL.'/'.substr(plugin_basename(__FILE__),0,-strlen(basename(__FILE__))); //echo ''; //echo ''; //echo ''; } function accua_forms_report_page() { ?>

Forms submissions report

'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'); $query = "SELECT YEAR(sub_date) AS `year`, MONTH(sub_date) AS `month`, COUNT(DISTINCT `email`) AS `unique_submissions`, COUNT(*) AS `submissions` FROM `{$wpdb->prefix}cformssubmissions` GROUP BY `year`, `month` ORDER BY `year` DESC, `month` DESC"; $results = $wpdb->get_results($query); if ($results) { ?>
__( 'Unique submissions', 'accua-form-api'), 'data' => array()), array( 'label' => __( 'Total submissions', 'accua-form-api'), 'data' => array()), ); foreach ($results as $result){ $month = $months[$result->month]; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; $time = mktime(0, 0, 0, $result->month, 1, $result->year) * 1000; $data[0]['data'][] = array($time, (int)$result->unique_submissions); $data[1]['data'][] = array($time, (int)$result->submissions); } /* $year = $results[0]->year; $month = $results[0]->month; while ($year <= $result->year || $month <= $result->month) { $month++; if ($month > 12) { $year++; $month = 1; } } */ ?>
$order) { if (strpos($fid, 'cimatti-accua-fields-form-area-') !== 0){ die('-1'); } $fid = substr($fid, 31); $old_fields = $forms_data[$fid]['fields']; unset($forms_data[$fid]['fields']); $new_fields = array(); $order = explode(',', $order); foreach ($order as $i) { $i = preg_replace('/^(new-)?widget-\\d+_/', '', $i); if (isset($old_fields[$i])) { $new_fields[$i] = $old_fields[$i]; unset($old_fields[$i]); } } if($old_fields){ $new_fields += $old_fields; } $forms_data[$fid]['fields'] = $new_fields; } update_option('accua_forms_saved_forms', $forms_data); die('1'); } add_action( 'wp_ajax_accua-save-form-field', 'accua_forms_save_form_field'); function accua_forms_save_form_field() { $post = stripslashes_deep($_POST); //update_option('accua_forms_save_form_field_post', $post); $forms_data = get_option('accua_forms_saved_forms', array()); $fid = $post['form-id']; if (empty($forms_data[$fid]['fields'])) { $forms_data[$fid]['fields'] = array(); } @ $wid = $post['widget-id']; if (empty($post['delete_widget'])) { //$istance_id = $post['multi_number']; @ $ref = $post['id_base']; $required = !empty($post["form-field-{$wid}-required"]); $widget_number = empty($post['multi_number']) ? (empty($post['widget_number']) ? '' : $post['widget_number']) : $post['multi_number']; $forms_data[$fid]['fields'][$wid] = array ( 'istance_id' => $wid, 'widget_number' => $widget_number, 'ref' => $ref, 'required' => $required, ); if (!empty($post["form-field-{$wid}-override-label"])) { @ $label = (string) $post["form-field-{$wid}-label"]; $forms_data[$fid]['fields'][$wid]['label'] = $label; } if (!empty($post["form-field-{$wid}-override-default-value"])) { @ $default_value = (string) $post["form-field-{$wid}-default-value"]; $forms_data[$fid]['fields'][$wid]['default_value'] = $default_value; } if (!empty($post["form-field-{$wid}-override-allowed-values"])) { @ $allowed_values = (string) $post["form-field-{$wid}-allowed-values"]; $forms_data[$fid]['fields'][$wid]['allowed_values'] = $allowed_values; } } else { unset($forms_data[$fid]['fields'][$wid]); } update_option('accua_forms_saved_forms', $forms_data); die('1'); } add_action( 'wp_ajax_accua-save-form-settings', 'accua_forms_save_form_settings'); function accua_forms_save_form_settings() { $post = stripslashes_deep($_POST); $forms_data = get_option('accua_forms_saved_forms', array()); $fid = $post['form-id']; $settings = array( 'title', 'success_message', 'success_message_no_message', 'error_message', 'error_message_no_message', 'emails_from_name', 'emails_from', 'admin_emails_to', 'emails_bcc', 'admin_emails_subject', 'admin_emails_message', 'admin_emails_message_no_message', 'confirmation_emails_subject', 'confirmation_emails_message', 'confirmation_emails_message_no_message', //'use_ajax', 'layout', 'style_margin', 'style_border_color', 'style_border_width', 'style_border_radius', 'style_background_color', 'style_padding', 'style_color', 'style_font_size', 'style_field_spacing', 'style_field_border_color', 'style_field_border_width', 'style_field_border_radius', 'style_field_background_color', 'style_field_padding', 'style_field_color', 'style_submit_border_color', 'style_submit_border_width', 'style_submit_border_radius', 'style_submit_background_color', 'style_submit_padding', 'style_submit_color', 'style_submit_font_size', ); // print_r($post); foreach($settings as $i) { if (isset($post[$i])) { $forms_data[$fid][$i] = $post[$i]; } else { unset($forms_data[$fid][$i]); } } $forms_data[$fid]['use_ajax'] = !empty($post['use_ajax']); update_option('accua_forms_saved_forms', $forms_data); print_r($forms_data[$fid]); die(''); } function accua_forms_field_settings_form_counter() { static $i = 0; $i++; return $i; } function accua_forms_field_text_settings_form($fid, $field_data=array(), $istance_data=array()){ static $html_multi_number = 1; $i = accua_forms_field_settings_form_counter(); $hidden = ''; if (!is_array($istance_data)) { if ($istance_data === 'hidden') { $hidden = 'style="display:none"'; } $istance_data = array(); $empty_istance = true; } else { $empty_istance = empty($istance_data); } if (!is_array($field_data)){ $field_data = array(); } $field_data += array( 'id' => '__html', 'name' => __( 'Custom HTML content', 'accua-form-api'), 'type' => 'html', 'description' => __('Use this special field to inject raw HTML in the form. You can use this multiple times.', 'accua-form-api'), 'default_value' => '', 'allowed_values' => '', ); $override_label = isset($istance_data['label']) ? 'checked="checked"' : ''; $override_default_value = isset($istance_data['default_value']) ? 'checked="checked"' : ''; $override_allowed_values = isset($istance_data['allowed_values']) ? 'checked="checked"' : ''; if (($field_data['type'] === 'file') && ($field_data['allowed_values'] === '')) { $file_data = get_option('accua_forms_default_file_field_data',array()); if (isset($file_data['valid_extensions'])){ $field_data['allowed_values'] = $file_data['valid_extensions']; } } $istance_data += array( 'istance_id' => $field_data['id'], 'widget_number' => '', 'ref' => $field_data['id'], 'label' => $field_data['name'], 'default_value' => $field_data['default_value'], 'allowed_values' => $field_data['allowed_values'], 'required' => false, ); foreach ($istance_data as $key => $value) { $istance_data[$key] = htmlspecialchars($istance_data[$key], ENT_QUOTES); } foreach ($field_data as $key => $value) { $field_data[$key] = htmlspecialchars($field_data[$key], ENT_QUOTES); } $multi_number = ''; if (in_array($istance_data['ref'], array('__html','__fieldset-begin','__fieldset-end'))) { $forceoverride_field = true; if ($empty_istance) { $add_new = 'multi'; $istance_data['istance_id'] .= '-__i__'; $istance_data['widget_number'] = 1; $multi_number = 1 + $html_multi_number; } else { if ($html_multi_number < $istance_data['widget_number']) { $html_multi_number = $istance_data['widget_number']; } } } else { $forceoverride_field = false; $add_new = $empty_istance ? 'single' : ''; } $fid = htmlspecialchars($fid, ENT_QUOTES); $testi_eot = array ( 'label' => __( 'Label', 'accua-form-api'), 'override' => __( 'override', 'accua-form-api'), 'default_value' => __( 'Default value', 'accua-form-api'), 'default_values' => __( 'Default value(s)', 'accua-form-api'), 'desc_def' => __( 'For multiple default values, use | as separator.', 'accua-form-api'), 'allowed_values' => __( 'Allowed values', 'accua-form-api'), 'desc_all' => __( 'The possible values this field can contain. Enter one value per line, in the format key|label. The key is the value that will be stored in the database. The label is optional, and the key will be used as the label if no label is specified.', 'accua-form-api'), 'allowed_extensions' => __( 'Allowed extensions', 'accua-form-api'), 'desc_all_ext' => __( 'Accepted file extensions. One per line, without dots.', 'accua-form-api'), 'required' => __( 'Required', 'accua-form-api'), 'custom_HTML_content' => __( 'Custom HTML content', 'accua-form-api'), 'remove' => __( 'Remove', 'accua-form-api'), 'close' => __( 'Close', 'accua-form-api'), 'save' => __( 'Save', 'accua-form-api') ); if ($forceoverride_field) { $override_begin = ''; $override_type = 'hidden'; $override_end = ''; } else { $override_begin = "({$testi_eot['override']}: "; $override_type = 'checkbox'; $override_end = ')'; } $content = << {$override_begin}{$override_end}

EOT; $default_value = << {$override_begin}{$override_end}

EOT; $default_values = << {$override_begin}{$override_end}

EOT; $allowed_values = << {$override_begin}{$override_end}

{$testi_eot['desc_all']}

EOT; $allowed_ext = << {$override_begin}{$override_end}

{$testi_eot['desc_all_ext']}

EOT; $required_checked = empty($istance_data['required']) ? '' : 'checked="checked"'; $required = <<

EOT; switch ($field_data['type']) { case 'textarea': $content .= << {$override_begin}{$override_end}

$required EOT; break; case 'hidden': $content = $default_value; break; case 'checkbox': $content .= $default_value . $required; break; case 'select': case 'radio': case 'post-select': $content .= $default_value . $allowed_values . $required; break; case 'multiselect': case 'multicheckbox': case 'post-multicheckbox': $content .= $default_values . $allowed_values . $required; break; case 'file': $content .= $allowed_ext . $required; case 'submit': case 'fieldset-begin': //just the label break; case 'fieldset-end': //Nothing! $content = ''; break; case 'html': $content = << {$override_begin}{$override_end}

EOT; break; case 'email': case 'autoreply_email': case 'textfield': case 'colorpicker': case 'datepicker': case 'dateselect': default: $content .= $default_value . $required; break; } $adminurl = admin_url(); return <<

{$field_data['name']}

EOT; } function accua_forms_add_page($message='') { $forms_data = get_option('accua_forms_saved_forms', array()); $trash_data = get_option('accua_forms_trash_forms', array()); if (!empty($_GET['fid'])) { $fid = htmlspecialchars(stripslashes($_GET['fid']), ENT_QUOTES); } else { if ($message === '') { $fid = 1 + ((int) get_option('accua_forms_lastid', 0)); while (isset($forms_data[$fid]) || isset($trash_data[$fid])) { $fid++; } update_option('accua_forms_lastid', $fid); $message = _accua_forms_test_clonefrom($fid); if ($message === '') { return accua_forms_edit_page($fid); } } else { $fid = ''; } } if (!empty($_GET['clonefrom'])) { $clonefrom = stripslashes($_GET['clonefrom']); } else { $clonefrom = ''; } ?>

$message
"; } ?>

Form id:

'; } ?>

".__( 'Form already exists', 'accua-form-api')."

"; } else if (empty($forms_data[$clonefrom])) { $error .= "

".__( 'Source form doesn\'t exists.', 'accua-form-api')."

"; } else { $forms_data[$fid] = $forms_data[$clonefrom]; if (!isset($forms_data[$fid]['title'])) { $forms_data[$fid]['title'] = $clonefrom ." ".__( 'clone', 'accua-form-api'); } else { $forms_data[$fid]['title'] .= " ". __( 'clone', 'accua-form-api'); } update_option('accua_forms_saved_forms', $forms_data); } } return $error; } function _accua_forms_form_edit_action() { static $message = null; if ($message === null) { $message = ''; if (isset($_POST['accua-form-edit-action'])){ $post = stripslashes_deep($_POST); switch ($post['accua-form-edit-action']) { case 'delete': $fid = $post['form-id']; $forms_data = get_option('accua_forms_saved_forms', array()); unset($forms_data[$fid]); update_option('accua_forms_saved_forms', $forms_data); $fid = htmlspecialchars($fid); $message .= sprintf( __( 'Form \"%s\" deleted','accua-form-api' ), $fid ); break; } } } return $message; } function accua_forms_list_page() { $message = ''; if (isset($_POST['accua-form-edit-action'])){ $message = _accua_forms_form_edit_action(); } else if (isset($_GET['fid'])) { if (!isset($fid)) { $fid = stripslashes($_GET['fid']); } $error = ''; if (!preg_match('/^[a-z0-9_-]+$/i', $fid)) { $error .= "

".__( 'Only letters, numbers, hyphen and underscores allowed in form identificative name', 'accua-form-api')."

"; } if (substr($fid,0,2) == '__') { $error .= "

".__( 'The identificative name can\'t start with two underscores (__)', 'accua-form-api')."

"; } if (strlen($fid) > 70) { $error .= "

".__( 'You cannot use more than 70 characters for the identificative name', 'accua-form-api')."

"; } if ($error === '' && (isset($_GET['clonefrom'])&&$_GET['clonefrom']!=='')) { $error .= _accua_forms_test_clonefrom($fid); } if ($error === '') { return accua_forms_edit_page($fid); } else { return accua_forms_add_page($error); } } ?>
$message
"; } ?>

'C') ); ?>
array ( 'id' => "first_name", 'name' => "First Name", 'type' => "textfield", 'description' => 'This is the first name', ), 'last_name' => array ( 'id' => "last_name", 'name' => "Last Name", 'type' => "textfield", 'description' => 'This is the last name', ), 'email' => array ( 'id' => "email", 'name' => "Email", 'type' => "email", 'description' => 'This is the email', ), ); */ $avail_fields = get_option('accua_forms_avail_fields', array()); $default_form_data = get_option('accua_forms_default_form_data',array()); $form_data = _accua_forms_get_form_data($fid, true, !empty($_GET['restore'])); $form_overrided_data = $form_data['_overrided']; $fid_esc = htmlspecialchars($fid, ENT_QUOTES); $adminurl = admin_url(); global $wp_version; if (version_compare($wp_version, '4') >= 0) { ?>


'__fieldset-begin', 'name' => __('Fieldset begin', 'accua-form-api'), 'type' => 'fieldset-begin', 'description' => '', ); } else if ($field['ref'] == '__fieldset-end') { $ref = array( 'id' => '__fieldset-end', 'name' => __('Fieldset end', 'accua-form-api'), 'type' => 'fieldset-end', 'description' => '', ); } } } else { $ref = $avail_fields[$field['ref']]; } echo accua_forms_field_text_settings_form($fid, $ref, $field); } ?>



'__fieldset-begin', 'name' => __( 'Fieldset begin', 'accua-form-api'), 'type' => 'fieldset-begin', 'description' => __('You can use this field multiple times.', 'accua-form-api'), 'default_value' => '', 'allowed_values' => '', )); //Fieldset end echo accua_forms_field_text_settings_form($fid, array( 'id' => '__fieldset-end', 'name' => __( 'Fieldset end', 'accua-form-api'), 'type' => 'fieldset-end', 'description' => __('You can use this field multiple times.', 'accua-form-api'), 'default_value' => '', 'allowed_values' => '', )); ?>


 
accua_forms_form_fields_order_post: 

accua_forms_save_form_field_post: 

accua_forms_saved_form_data: 

true, 'editor_class' => 'accua_form_value', 'tinymce' => array( 'theme_advanced_buttons1' => 'bold,italic,underline,|,bullist,numlist,')); ?>

> /> />

> /> />


/>
/>
/>
> /> />

/>
/>
/>
> /> />

/>

/>
/>
/>
/>
/>
/>
/>
/>

/>
/>
/>
/>
/>
/>
/>

/>
/>
/>
/>
/>
/>
/>

Edit Form Fields

array ( 'id' => "first_name", 'name' => "First Name", 'type' => "textfield", 'description' => 'This is the first name', ), 'last_name' => array ( 'id' => "last_name", 'name' => "Last Name", 'type' => "textfield", 'description' => 'This is the last name', ), 'email' => array ( 'id' => "email", 'name' => "Email", 'type' => "email", 'description' => 'This is the email', ), ); */ $avail_fields = get_option('accua_forms_avail_fields', array()); $default_form_values = array( 'id' => '', 'name' => '', 'type' => 'textfield', 'description' => '', 'default_value' => '', 'allowed_values' => '', ); $editing = false; $adding = true; if (!empty($_POST['action'])) { $post = stripslashes_deep($_POST); switch($post['action']) { case 'edit-form-field': if (empty($avail_fields[$post['form-field-id']])) { $message .= 'Field "'.htmlspecialchars($post['form-field-id']).'" doesn\'t exists'; } else { if (empty($post['delete-field'])) { $avail_fields[$post['form-field-id']] = array( 'id' => $post['form-field-id'], 'name' => $post['form-field-name'], 'type' => $post['form-field-type'], 'description' => $post['form-field-description'], 'default_value' => $post['form-field-default-value'], 'allowed_values' => $post['form-field-allowed-values'], ); $message .= sprintf( __( 'Field "%s" updated', 'accua-form-api'), htmlspecialchars($post['form-field-id']) ); do_action('accua_forms_field_updated', $avail_fields[$post['form-field-id']]); } else { $deleting_field = $avail_fields[$post['form-field-id']]; unset ($avail_fields[$post['form-field-id']]); $message .= sprintf( __( 'Field "%s" deleted', 'accua-form-api'), htmlspecialchars($post['form-field-id']) ); do_action('accua_forms_field_deleted', $deleting_field); } update_option('accua_forms_avail_fields', $avail_fields); } break; case 'add-form-field': $fill_form_fields = true; $valid = true; if (empty($post['form-field-id']) || !preg_match('/^[a-z0-9_-]+$/i', $post['form-field-id'])) { $message .= "

".__( 'Only letters, numbers, hyphen and underscores allowed in field identificative slug', 'accua-form-api')."

"; $valid = false; } if(substr($post['form-field-id'], 0, 2) == '__') { $message .= "

".__( 'The field identificative slug can\'t start with two underscores (__)', 'accua-form-api')."

"; $valid = false; } if (!empty($avail_fields[$post['form-field-id']])) { $message .= sprintf( __( '

A field with identificative slug "%s" already exists

Field "%s" deleted', 'accua-form-api'), htmlspecialchars($post['form-field-id']) ); $valid = false; } if (strlen($post['form-field-id']) > 70) { $message .= "

".__( 'The identificative slug cannot be longer than 70 characters', 'accua-form-api')."

"; $valid = false; } if ($valid) { $fill_form_fields = false; $avail_fields[$post['form-field-id']] = array( 'id' => $post['form-field-id'], 'name' => $post['form-field-name'], 'type' => $post['form-field-type'], 'description' => $post['form-field-description'], 'default_value' => $post['form-field-default-value'], 'allowed_values' => $post['form-field-allowed-values'], ); update_option('accua_forms_avail_fields', $avail_fields); $message .= sprintf( __( 'Field "%s" created', 'accua-form-api'), htmlspecialchars($post['form-field-id']) ); do_action('accua_forms_field_added', $avail_fields[$post['form-field-id']]); } if ($fill_form_fields) { $editing = true; $default_form_values = array( 'id' => $post['form-field-id'], 'name' => $post['form-field-name'], 'type' => $post['form-field-type'], 'description' => $post['form-field-description'], 'default_value' => $post['form-field-default-value'], 'allowed_values' => $post['form-field-allowed-values'], ); } break; } } else if (!empty($_GET['edit-fid'])) { $fid = stripslashes($_GET['edit-fid']); if (empty($avail_fields[$fid])) { $message .= sprintf( __( 'Field "%s" doesn\'t exists', 'accua-form-api'), $fid ); } else { $adding = false; $editing = true; $default_form_values = $avail_fields[$fid]; } } ?>

' . __('Search results for “%s”') . '', esc_html( stripslashes($_REQUEST['s']) ) ); ?>

search_box( $tax->labels->search_items, 'tag' ); ?> */ ?>
display(); */ ?> $field) { foreach (array('id', 'name', 'type', 'description') as $i) { $field[$i] = htmlspecialchars($field[$i], ENT_QUOTES); } echo << END_OF_ROW; } ?>
{$field['name']}
{$field['description']} {$field['id']} {$field['type']}

Note:
Deleting a category does not delete the posts in that category. Instead, posts that were only assigned to the deleted category are set to the category %s.'), apply_filters('the_category', get_cat_name(get_option('default_category')))) ?>

category to tag converter.'), 'import.php') ?>

tag to category converter'), 'import.php') ;?>.

labels->popular_items ) ) { if ( current_user_can( $tax->cap->edit_terms ) ) $tag_cloud = wp_tag_cloud( array( 'taxonomy' => $taxonomy, 'echo' => false, 'link' => 'edit' ) ); else $tag_cloud = wp_tag_cloud( array( 'taxonomy' => $taxonomy, 'echo' => false ) ); if ( $tag_cloud ) : ?>

labels->popular_items; ?>

cap->edit_terms) ) { // Back compat hooks. Deprecated in preference to {$taxonomy}_pre_add_form if ( 'category' == $taxonomy ) do_action('add_category_form_pre', (object)array('parent' => 0) ); elseif ( 'link_category' == $taxonomy ) do_action('add_link_category_form_pre', (object)array('parent' => 0) ); else do_action('add_tag_form_pre', $taxonomy); do_action($taxonomy . '_pre_add_form', $taxonomy); */ $types = array( 'textfield' => __( 'Text Field', 'accua-form-api'), 'textarea' => __( 'Text Area', 'accua-form-api'), 'email' => __( 'Email', 'accua-form-api'), 'autoreply_email' => __( 'Autoreply Email', 'accua-form-api'), 'checkbox' => __( 'Checkbox','accua-form-api'), 'select' => __('Select', 'accua-form-api'), 'radio' => __( 'Radio buttons', 'accua-form-api'), 'multiselect' => __( 'Multiple selections area', 'accua-form-api'), 'multicheckbox' => __( 'Multiple checkboxes', 'accua-form-api'), 'post-select' => __( 'Post select', 'accua-form-api'), 'post-multicheckbox' => __( 'Multiple post checkboxes', 'accua-form-api'), 'colorpicker' => __( 'Color picker', 'accua-form-api'), 'hidden' => __('Hidden value', 'accua-form-api'), 'file' => __('File upload', 'accua-form-api'), 'submit' => __( 'Submit button', 'accua-form-api'), 'html' => __( 'Custom HTML', 'accua-form-api'), 'captcha' => __( 'Captcha', 'accua-form-api'), 'password' => 'Password', 'password-and-confirm' => __( 'Password and password confirmation','accua-form-api'), ); ?>

id); ?>" /> */ ?>

size="40" /> '; } ?>

0, 'hide_if_empty' => false, 'taxonomy' => $taxonomy, 'name' => 'parent', 'orderby' => 'name', 'hierarchical' => true, 'show_option_none' => __('None'))); ?>

0) ); elseif ( 'link_category' == $taxonomy ) do_action('edit_link_category_form', (object)array('parent' => 0) ); else do_action('add_tag_form', $taxonomy); do_action($taxonomy . '_add_form', $taxonomy); */ ?>
accua_forms_avail_fields:', htmlspecialchars(print_r($avail_fields, true)), ''; */ } function accua_forms_settings_page() { ?>

'', 'error_message' => '', 'emails_from_name' => '', 'emails_from' => '', 'admin_emails_to' => '', 'emails_bcc' => '', 'admin_emails_subject' => '', 'admin_emails_message' => '', 'confirmation_emails_subject' => '', 'confirmation_emails_message' => '', 'layout' => 'sidebyside', 'style_margin' => '', 'style_border_color' => '', 'style_border_width' => '', 'style_border_radius' => '', 'style_background_color' => '', 'style_padding' => '', 'style_color' => '', 'style_font_size' => '', 'style_field_spacing' => '', 'style_field_border_color' => '', 'style_field_border_width' => '', 'style_field_border_radius' => '', 'style_field_background_color' => '', 'style_field_padding' => '', 'style_field_color' => '', 'style_submit_border_color' => '', 'style_submit_border_width' => '', 'style_submit_border_radius' => '', 'style_submit_background_color' => '', 'style_submit_padding' => '', 'style_submit_color' => '', 'style_submit_font_size' => '', ); $empty_file_data = array( 'valid_extensions' => '', 'max_size' => '', 'dest_path' => '', ); $empty_captcha_data = array( 'recaptcha_force_v1' => '', 'recaptcha_public_key' => '', 'recaptcha_private_key' => '', ); if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST['accua_form_save_form_settings'])) { $post = stripslashes_deep($_POST); $post += $empty_form_data; $post += $empty_file_data; $post += $empty_captcha_data; $form_data = array(); $file_data = array(); $captcha_data = array(); foreach($empty_form_data as $key=>$val){ $form_data[$key] = $post[$key]; } foreach($empty_file_data as $key=>$val){ $file_data[$key] = $post[$key]; } foreach($empty_captcha_data as $key=>$val){ $captcha_data[$key] = $post[$key]; } update_option('accua_forms_default_form_data', $form_data); update_option('accua_forms_default_file_field_data', $file_data); update_option('accua_forms_default_captcha_field_data', $captcha_data); } else { $form_data = get_option('accua_forms_default_form_data',array()) + $empty_form_data; $file_data = get_option('accua_forms_default_file_field_data',array()) + $empty_file_data; $captcha_data = get_option('accua_forms_default_captcha_field_data',array()) + $empty_captcha_data; } ?>
:

:

:

:

:

:

:

:

:

:

*/ ?>
true, 'editor_class' => 'accua_form_value', 'tinymce' => array( 'theme_advanced_buttons1' => 'bold,italic,underline,|,bullist,numlist,')); ?>










0) { _e( 'This value is limited by server upload limits of ', 'accua-form-api'); echo AccuaForm_Element_File::format_size($server_max_size).". "; _e( 'If you need a greater limit you should ask to the server administrator.', 'accua-form-api'); } ?>
: .

'google.com/recaptcha'));?>

:
:
: />
.





0) { _e( 'This value is limited by server upload limits of ', 'accua-form-api'); echo AccuaForm_Element_File::format_size($server_max_size).". "; _e( 'If you need a greater limit you should ask to the server administrator.', 'accua-form-api'); } ?>

: .

*/ ?>

array(), 'title' => '', 'success_message' => '', 'error_message' => '', 'emails_from_name' => '', 'emails_from' => '', 'admin_emails_to' => '', 'emails_bcc' => '', 'admin_emails_subject' => '', 'admin_emails_message' => '', 'confirmation_emails_subject' => '', 'confirmation_emails_message' => '', 'use_ajax' => true, 'layout' => 'sidebyside', 'style_margin' => '', 'style_border_color' => '', 'style_border_width' => '', 'style_border_radius' => '', 'style_background_color' => '', 'style_padding' => '', 'style_color' => '', 'style_font_size' => '', 'style_field_spacing' => '', 'style_field_border_color' => '', 'style_field_border_width' => '', 'style_field_border_radius' => '', 'style_field_background_color' => '', 'style_field_padding' => '', 'style_field_color' => '', 'style_submit_border_color' => '', 'style_submit_border_width' => '', 'style_submit_border_radius' => '', 'style_submit_background_color' => '', 'style_submit_padding' => '', 'style_submit_color' => '', 'style_submit_font_size' => '', ); if ($fid === false) { return $empty_form_data; } $default_form_data = get_option('accua_forms_default_form_data',array()); if ($fid === null) { return $default_form_data + $empty_form_data; } $forms_data = get_option('accua_forms_saved_forms', array()); if ($restore_trash) { $trash_data = get_option('accua_forms_trash_forms', array()); if (isset($trash_data[$fid])) { $forms_data[$fid] = $trash_data[$fid]; update_option('accua_forms_saved_forms', $forms_data); unset($trash_data[$fid]); update_option('accua_forms_trash_forms', $trash_data); } } if (isset($forms_data[$fid])) { $form_data = array( '_overrided' => $forms_data[$fid] ) + $forms_data[$fid] + $default_form_data + $empty_form_data; /* if ($form_data['fields']) { foreach ($form_data['fields'] as $i => $istance_data) { // TODO: popuplate default fields data? } } */ return $form_data; } else if ($return_empty) { return array( '_overrided' => array() ) + $default_form_data + $empty_form_data; } else { return null; } } function _accua_forms_style_parameters($params) { $ret = ''; foreach ($params as $key => $value) { $value = trim($value); if ($value !== '') { if (is_numeric($value)) { $ret .= "{$key}:{$value}px;"; } else { $ret .= "{$key}:{$value};"; } if ($key == 'border-width') { $ret .= "border-style:solid;"; } } } return $ret; } add_action('accua_form_alter', 'accua_forms_form_generate', -999, 2); function accua_forms_form_generate($baseid, $form) { if (substr($baseid, 0, 14) == '__accua-form__') { $fid = substr($baseid,14); $form_data = _accua_forms_get_form_data($fid, false); /* echo '"; */ if ($form_data) { $form_style = _accua_forms_style_parameters(array( 'margin' => $form_data['style_margin'], 'border-color' => $form_data['style_border_color'], 'border-width' => $form_data['style_border_width'], 'border-radius' => $form_data['style_border_radius'], 'background' => $form_data['style_background_color'], 'padding' => $form_data['style_padding'], 'color' => $form_data['style_color'], 'font-size' => $form_data['style_font_size'], )); $field_style = _accua_forms_style_parameters(array( 'margin-bottom' => $form_data['style_field_spacing'], 'border-color' => $form_data['style_field_border_color'], 'border-width' => $form_data['style_field_border_width'], 'border-radius' => $form_data['style_field_border_radius'], 'background' => (trim($form_data['style_field_background_color']) === '')?'transparent':$form_data['style_field_background_color'], 'padding' => $form_data['style_field_padding'], 'color' => (trim($form_data['style_field_color']) === '')?$form_data['style_color']:$form_data['style_field_color'], 'font-size' => $form_data['style_font_size'], )); $field_properties = array(); if ($field_style !== '') { $field_properties['style'] = $field_style; } $submit_style = _accua_forms_style_parameters(array( 'border-color' => $form_data['style_submit_border_color'], 'border-width' => $form_data['style_submit_border_width'], 'border-radius' => $form_data['style_submit_border_radius'], 'background' => $form_data['style_submit_background_color'], 'padding' => $form_data['style_submit_padding'], 'color' => $form_data['style_submit_color'], 'font-size' => $form_data['style_submit_font_size'], )); $submit_properties = array(); if ($submit_style !== '') { $submit_properties['style'] = $submit_style; } if ($form_style !== '') { $form->configure(array('style' => $form_style)); } if (!empty($form_data['use_ajax'])){ $form->configure(array( "accua_ajax" => 1, )); } $add_submit = true; $fieldset_open = false; $avail_fields = get_option('accua_forms_avail_fields', array()); foreach ($form_data['fields'] as $istance_data) { if (empty($avail_fields[$istance_data['ref']])) { $field_data = array(); if (!empty($istance_data['ref'])) { if ($istance_data['ref'] == '__fieldset-begin') { $field_data = array( 'id' => '__fieldset-begin', 'name' => __('Fieldset begin', 'accua-form-api'), 'type' => 'fieldset-begin', 'description' => '', ); } else if ($istance_data['ref'] == '__fieldset-end') { $field_data = array( 'id' => '__fieldset-end', 'name' => __('Fieldset end', 'accua-form-api'), 'type' => 'fieldset-end', 'description' => '', ); } } } else { $field_data = $avail_fields[$istance_data['ref']]; } $field_data += array( 'id' => '__html', 'name' => __( 'Custom HTML content', 'accua-form-api'), 'type' => 'html', 'description' => __('Use this special field to inject raw HTML in the form. You can use this multiple times.', 'accua-form-api'), 'default_value' => '', 'allowed_values' => '', ); $istance_data += array( 'istance_id' => $field_data['id'], 'widget_number' => '', 'ref' => $field_data['id'], 'label' => $field_data['name'], 'default_value' => $field_data['default_value'], 'allowed_values' => $field_data['allowed_values'], ); $element = null; $allowed_val = trim($istance_data['allowed_values']); if ($field_data['type'] == 'post-multicheckbox' || $field_data['type'] == 'post-select') { $posts = accua_get_pages($allowed_val); $allowed_values = array(); foreach ($posts as $p) { //$allowed_values[$p->ID] = apply_filters( 'the_title', $p->post_title, $p->ID ); $allowed_values[$p->ID] = $p->post_title; } } else { if ($field_data['type'] == 'file') { $filedata = get_option('accua_forms_default_file_field_data',array()); $filedata += array( 'valid_extensions' => '', 'max_filesize' => '', 'dest_path' => '', ); if ($allowed_val == '') { $allowed_val = trim($filedata['valid_extensions']); } } $allowed_val = explode("\n",$allowed_val); $allowed_values = array(); foreach ($allowed_val as $val) { $val = explode('|',$val,2); $val[0] = trim($val[0]); /* if (empty($val[0])) { continue; } */ if ((!isset($val[1])) || (trim($val[1])==='')) { if ($val[0] === '') { continue; } else { $val[1] = $val[0]; } } $allowed_values[$val[0]] = $val[1]; } } switch ($field_data['type']) { case 'textarea': $element = new Element_Textarea($istance_data['label'], $istance_data['istance_id'], $field_properties+array('cols' => '50', 'value'=>$istance_data['default_value'])); break; case 'hidden': $element = new Element_Hidden($istance_data['istance_id'], $istance_data['default_value']); break; case 'checkbox': $lab = $istance_data['label']; if (!empty($istance_data['required'])) { $lab .= ' *'; } if ($allowed_values) { reset($allowed_values); $val = (string) key($allowed_values); $defval = trim($istance_data['default_value']); } else if ($istance_data['default_value'] == '1') { $defval = $val = '1'; } else { $val = empty($istance_data['default_value'])?'1':$istance_data['default_value']; $defval = ''; } $element = new AccuaForm_Element_Checkbox('', $istance_data['istance_id'], array($val => $lab), array('value' => $defval)); break; case 'select': case 'post-select': if (!isset($allowed_values[''])) { $allowed_values = array('' => '') + $allowed_values; } $defval = trim($istance_data['default_value']); $element = new AccuaForm_Element_Select($istance_data['label'], $istance_data['istance_id'], $allowed_values, $field_properties+array('value'=>$defval)); break; case 'radio': $defval = trim($istance_data['default_value']); $element = new AccuaForm_Element_Radio($istance_data['label'], $istance_data['istance_id'], $allowed_values, array('value'=>$defval)); break; case 'multiselect': $defval = explode('|', $istance_data['default_value']); foreach ($defval as $k => $v) { $defval[$k] = trim($v); } $element = new AccuaForm_Element_Select($istance_data['label'], $istance_data['istance_id'], $allowed_values, $field_properties+array('multiple' => true, 'value'=>$defval)); break; case 'multicheckbox': case 'post-multicheckbox': $defval = explode('|', $istance_data['default_value']); foreach ($defval as $k => $v) { $defval[$k] = trim($v); } $element = new AccuaForm_Element_Checkbox($istance_data['label'], $istance_data['istance_id'], $allowed_values, array('value'=>$defval)); break; case 'file': $fdata = array(); if ($allowed_values) { $fdata['validExtensions'] = array_keys($allowed_values); } if ($filedata['max_size'] !== ''){ $fdata['maxSize'] = $filedata['max_size']; } $fdata['destPath'] = _accua_forms_get_abs_dest_path($filedata['dest_path']); $element = new AccuaForm_Element_File($istance_data['label'], $istance_data['istance_id'], $field_properties+$fdata); break; case 'html': $element = new Element_HTML($istance_data['default_value']); break; case 'email': case 'autoreply_email': $element = new AccuaForm_Element_Email($istance_data['label'], $istance_data['istance_id'], $field_properties+array('value'=>$istance_data['default_value'])); $element->setValidation(new Validation_Email( str_replace('%element%', $istance_data['label'], __("Attention: '%element%' must contain an email address.", 'accua-form-api')) )); //"Errore: '{$istance_data['label']}' deve contenere un indirizzo email valido." break; case 'colorpicker': $element = new AccuaForm_Element_ColorPicker($istance_data['label'], $istance_data['istance_id'], $field_properties+array('value'=>$istance_data['default_value'])); break; case 'fieldset-begin': if ($fieldset_open) { $form->addElement(new AccuaForm_Element_FieldsetEnd()); } else { $fieldset_open = true; } $element = new AccuaForm_Element_FieldsetBegin($istance_data['label']); break; case 'fieldset-end': if ($fieldset_open) { $element = new AccuaForm_Element_FieldsetEnd(); $fieldset_open = false; } break; case 'submit': $add_submit = false; $element = new Element_Button($istance_data['label'], 'submit', $submit_properties+array('name' => $istance_data['istance_id'], 'value' => $istance_data['default_value'])); break; case 'captcha': $empty_captcha_data = array( 'recaptcha_force_v1' => '', 'recaptcha_public_key' => '', 'recaptcha_private_key' => '', ); $captcha_data = get_option('accua_forms_default_captcha_field_data',array()) + $empty_captcha_data; $captcha_properties = array("description" => ""); $captcha_use_v1 = true; if (($captcha_data['recaptcha_public_key'] !== '') && ($captcha_data['recaptcha_private_key'] !== '')) { $captcha_properties['privateKey'] = $captcha_data['recaptcha_private_key']; $captcha_properties['publicKey'] = $captcha_data['recaptcha_public_key']; $captcha_use_v1 = $captcha_data['recaptcha_force_v1']; } if ($captcha_use_v1) { $element = new AccuaForm_Element_Captcha ($istance_data['label'], $captcha_properties); } else { $element = new AccuaForm_Element_Captcha2 ($istance_data['label'], $captcha_properties); } break; case 'password': $element = new Element_Password($istance_data['label'], $istance_data['istance_id'], $field_properties+array('value'=>$istance_data['default_value'])); break; case 'password-and-confirm': $id_2 = "___{$istance_data['istance_id']}___confirmpass"; $element = new Element_Password(__("Password", 'accua-form-api'), $istance_data['istance_id'], $field_properties+array('value'=>$istance_data['default_value'])); $element_conf = new Element_Password(__("Confirm password", 'accua-form-api'), $id_2, $field_properties+array('value'=>$istance_data['default_value'])); $element_conf->setValidation(new AccuaForm_Validation_Password()); break; //case 'textfield': default: $element = new Element_Textbox($istance_data['label'], $istance_data['istance_id'], $field_properties+array('value'=>$istance_data['default_value'])); break; } if ($element) { if (!empty($istance_data['required'])) { $element->setClass('accuaforms-field-required'); if($field_data['type']!='password-and-confirm') { $element->setValidation(new Validation_Required( str_replace('%element%', $istance_data['label'], __("Attention: '%element%' is a required field.", 'accua-form-api')) )); } else { $element->setValidation(new Validation_Required( str_replace('%element%', $istance_data['label'], __("Attention: Passwords are required fields.", 'accua-form-api')) )); } } if ($elementName = $element->getName()) { $element->setClass('accuaform-fieldname-'.$elementName); } if ($field_data['type']) { $element->setClass('accuaform-fieldtype-'.$field_data['type']); } $form->addElement($element); if($element_conf!=NULL) { $form->addElement($element_conf); $element_conf=NULL; } } } if ($fieldset_open) { $form->addElement(new AccuaForm_Element_FieldsetEnd()); $fieldset_open = false; } if ($add_submit) { $form->addElement(new Element_Button(__('Submit', 'accua-form-api'), 'submit', $submit_properties)); } } } } function accua_forms_aggregate_submitted_data(&$replace_map, $params = array()) { if (empty($params['txt']) && empty($params['html']) && empty($params['json']) && empty($params['email'])) { $params += array( 'txt' => true, 'html' => true, 'json' => true, 'email' => true, ); } if (!empty($params['txt'])) { $replace_map['__submitted_txt'] = implode("\n",$replace_map['__submitted_txt_raw']); } if (!empty($params['html'])) { $replace_map['__submitted_html'] = implode('',$replace_map['__submitted_html_raw']); } if (!empty($params['json'])) { $replace_map['__submitted_json'] = json_encode($replace_map['__submitted_json_raw'], JSON_HEX_TAG|JSON_HEX_APOS|JSON_HEX_QUOT|JSON_HEX_AMP); } if (!empty($params['email'])) { $replace_map['__autoreply_email'] = implode('; ', $replace_map['__autoreply_email_raw']); } } add_filter('accua_form_validate', 'accua_forms_validation_handler', 10, 4); function accua_forms_validation_handler($valid, $submittedID, $submittedData, $form){ if (substr($submittedID, 0, 14) == '__accua-form__') { $fid = substr($submittedID,14); $form_data = _accua_forms_get_form_data($fid, false); if ($form_data) { return apply_filters('accua_forms_validation', $valid, $fid, $submittedData, $form); } } return $valid; } add_action('accua_form_submit', 'accua_forms_form_submission_handler', -10, 3); function accua_forms_form_submission_handler($submittedID, $submittedData, $form) { if ( empty( $GLOBALS['wp_rewrite'] ) ) $GLOBALS['wp_rewrite'] = new WP_Rewrite(); if (!class_exists('AccuaConditionalReplacer')){ require_once('AccuaConditionalReplacer.php'); } if (substr($submittedID, 0, 14) == '__accua-form__') { $fid = substr($submittedID,14); $form_data = _accua_forms_get_form_data($fid, false); if ($form_data) { global $wpdb; $time = time(); $wpdb->insert( $wpdb->prefix . 'accua_forms_submissions', array ( 'afs_form_id' => $fid, 'afs_post_id' => $form->stats['pid'], 'afs_ip' => $form->stats['ip'], 'afs_uri' => $form->stats['uri'], 'afs_referrer' => $form->stats['referrer'], 'afs_lang' => $form->stats['lang'], 'afs_created' => gmdate('Y-m-d H:i:s', $form->stats['created']), 'afs_submitted' => gmdate('Y-m-d H:i:s', $time), 'afs_stats' => json_encode(array( 'user_agent' => $form->stats['user_agent'], 'platform' => $form->stats['platform'], 'tentatives' => $form->stats['tentatives'], 'submit_method' => $form->stats['submit_method'], ), JSON_HEX_TAG|JSON_HEX_APOS|JSON_HEX_QUOT|JSON_HEX_AMP), ) ); $submission_id = $form->stats['submission_id'] = $wpdb->insert_id; $replace_map = array( '__fid' => $fid, '__subid' => $submission_id, '__pid' => $form->stats['pid'], '__ip' => $form->stats['ip'], '__uri' => $form->stats['uri'], '__url' => $form->stats['url'], '__referrer' => $form->stats['referrer'], '__lang' => $form->stats['lang'], '__locale' => $form->stats['locale'], '__created' => $form->stats['created'], '__created_day' => date('l j F Y', $form->stats['created']), '__created_day_month_year' => date('j F Y', $form->stats['created']), '__created_hour' => date('G:i', $form->stats['created']), '__submitted' => $time, '__submitted_day' => date('l j F Y', $time), '__submitted_day_month_year' => date('j F Y', $time), '__submitted_hour' => date('G:i', $time), '__confirmation_emails_message' => $form_data['confirmation_emails_message'], '__user_agent' => $form->stats['user_agent'], '__platform' => $form->stats['platform'], '__tentatives' => $form->stats['tentatives'], '__submit_method' => $form->stats['submit_method'], ); $avail_fields = get_option('accua_forms_avail_fields', array()); $replace_map['__autoreply_email_raw'] = array(); $replace_map['__submitted_txt_raw'] = array(); $replace_map['__submitted_html_raw'] = array(); $replace_map['__submitted_json_raw'] = array(); $_field_data = array(); $_istance_data = array(); foreach ($submittedData as $istance_id => $value) { if (empty($form_data['fields'][$istance_id])) { continue; } $istance_data = $form_data['fields'][$istance_id]; if (empty($avail_fields[$istance_data['ref']])) { $fieldset_data = array(); if (!empty($istance_data['ref'])) { if ($istance_data['ref'] == '__fieldset-begin') { $field_data = array( 'id' => '__fieldset-begin', 'name' => __('Fieldset begin', 'accua-form-api'), 'type' => 'fieldset-begin', 'description' => '', ); } else if ($istance_data['ref'] == '__fieldset-end') { $field_data = array( 'id' => '__fieldset-end', 'name' => __('Fieldset end', 'accua-form-api'), 'type' => 'fieldset-end', 'description' => '', ); } } } else { $field_data = $avail_fields[$istance_data['ref']]; } $field_data += array( 'id' => '__html', 'name' => __( 'Custom HTML content', 'accua-form-api'), 'type' => 'html', 'description' => __( 'Use this special field to inject raw HTML in the form. You can use this multiple times.', 'accua-form-api'), 'default_value' => '', 'allowed_values' => '', ); /* echo "\n"; */ $istance_data += array( 'istance_id' => $field_data['id'], 'widget_number' => '', 'ref' => $field_data['id'], 'label' => $field_data['name'], 'default_value' => $field_data['default_value'], 'allowed_values' => $field_data['allowed_values'], ); $type = $field_data['type']; switch ($field_data['type']) { case 'checkbox': case 'submit': if (empty($value)) { $replace_map[$istance_data['istance_id']] = $value = ''; } else { if (empty($istance_data['default_value'])) { $replace_map[$istance_data['istance_id']] = 'Checked'; $value = '1'; } else { $replace_map[$istance_data['istance_id']] = $value = $istance_data['default_value']; } } break; case 'multiselect': case 'multicheckbox': case 'select': case 'radio': $el = $form->getElementByName($istance_id); $opts = $el->getOptions(); if (!is_array($value)) { $value = array($value); } $label = array(); foreach ($value as $val) { if (isset($opts[$val])) { $label[] = $opts[$val]; } } $replace_map['__label_'.$istance_data['istance_id']] = implode(", ", $labels); $replace_map[$istance_data['istance_id']] = implode(', ',$value); $value = implode('|',$value); break; case 'post-multicheckbox': if (is_array($value) && $value) { $el = $form->getElementByName($istance_id); $opts = $el->getOptions(); $value2 = array(); $titles = array(); $ids = array(); $urls = array(); foreach ($value as $val) { if (isset($opts[$val])) { $titles[] = $opts[$value]; $ids[] = $value; $urls[] = get_permalink($value); $value2[] = $val . ': ' . trim(preg_replace('/[\s\n\r]+/', ' ', $opts[$val])); } } $replace_map['__label_'.$istance_data['istance_id']] = $replace_map['__post_title_'.$istance_data['istance_id']] = implode("\n", $titles); $replace_map['__post_id_'.$istance_data['istance_id']] = implode("\n", $ids); $replace_map['__post_url_'.$istance_data['istance_id']] = implode("\n", $urls); $replace_map[$istance_data['istance_id']] = $value = implode("\n", $value2); } else { $replace_map['__label_'.$istance_data['istance_id']] = $replace_map['__post_title_'.$istance_data['istance_id']] = ''; $replace_map['__post_id_'.$istance_data['istance_id']] = ''; $replace_map['__post_url_'.$istance_data['istance_id']] = ''; $replace_map[$istance_data['istance_id']] = $value = ''; } break; case 'post-select': if ($value !== '') { $el = $form->getElementByName($istance_id); $opts = $el->getOptions(); if (isset($opts[$value])) { $replace_map['__label_'.$istance_data['istance_id']] = $replace_map['__post_title_'.$istance_data['istance_id']] = $opts[$value]; $replace_map['__post_id_'.$istance_data['istance_id']] = $value; $replace_map['__post_url_'.$istance_data['istance_id']] = get_permalink($value); $value = $value . ': ' . trim(preg_replace('/[\s\n\r]+/', ' ', $opts[$value])); } else { $replace_map['__label_'.$istance_data['istance_id']] = $replace_map['__post_title_'.$istance_data['istance_id']] = ''; $replace_map['__post_id_'.$istance_data['istance_id']] = ''; $replace_map['__post_url_'.$istance_data['istance_id']] = ''; $value = ''; } } $replace_map[$istance_data['istance_id']] = $value; break; case 'autoreply_email': if ($value !== '') { $replace_map['__autoreply_email_raw'][] = $value; } $replace_map[$istance_data['istance_id']] = $value; break; case 'file': //TODO: move temp file to "{$submission_id}_{$field_data['id']}_{$file['name']}"; value is $file['name'] $buildid = $submittedData['_AccuaForm_buildID']; $file_download_url = ''; $file = $form->getFile($istance_id); if ($value !== null && $value !== '' && $file) { if ($form->renameFile($istance_id, "{$submission_id}_{$field_data['id']}_{$file['name']}")) { $urlfield = rawurlencode($istance_data['istance_id']); $urlfile = rawurlencode($value); $file_download_url = admin_url('admin-ajax.php') . "?action=accua_forms_download_submitted_file&subid={$submission_id}&field={$urlfield}&file={$urlfile}"; } } $replace_map[$istance_data['istance_id']] = $value; $replace_map['__download_'.$istance_data['istance_id']] = $file_download_url; break; case 'password': case 'password-and-confirm': $value = trim($value); $replace_map[$istance_data['istance_id']] = $value; $type = 'hashed-password'; if ($value !== '') { $value = wp_hash_password($value); } $replace_map['__hashed_'.$istance_data['istance_id']] = $value; break; default: $replace_map[$istance_data['istance_id']] = $value; } switch ($field_data['type']) { case 'file': $replace_map['__submitted_txt_raw'][$istance_data['istance_id']] = "{$istance_data['istance_id']}\t$value\t$file_download_url"; $replace_map['__submitted_json_raw'][$istance_data['istance_id']] = "$value\t$file_download_url"; $replace_map['__submitted_html_raw'][$istance_data['istance_id']] = "{$istance_data['istance_id']}".htmlspecialchars($value).""; break; case 'email': case 'autoreply_email': $replace_map['__submitted_txt_raw'][$istance_data['istance_id']] = "{$istance_data['istance_id']}\t$value"; $replace_map['__submitted_json_raw'][$istance_data['istance_id']] = $value; $replace_map['__submitted_html_raw'][$istance_data['istance_id']] = "{$istance_data['istance_id']}".htmlspecialchars($value).""; break; case 'submit': break; case 'colorpicker': $replace_map['__submitted_txt_raw'][$istance_data['istance_id']] = "{$istance_data['istance_id']}\t$value"; $replace_map['__submitted_json_raw'][$istance_data['istance_id']] = $value; if ($value === '') { $value_html = ''; } else { $value_esc = htmlspecialchars($value, ENT_QUOTES); $value_html = " $value_esc"; } $replace_map['__submitted_html_raw'][$istance_data['istance_id']] = "{$istance_data['istance_id']}$value_html"; break; case 'password': case 'password-and-confirm': break; default: $replace_map['__submitted_txt_raw'][$istance_data['istance_id']] = "{$istance_data['istance_id']}\t$value"; $replace_map['__submitted_json_raw'][$istance_data['istance_id']] = $value; $replace_map['__submitted_html_raw'][$istance_data['istance_id']] = "{$istance_data['istance_id']}".htmlspecialchars($value); } if ($submission_id) { $wpdb->insert( $wpdb->prefix . 'accua_forms_submissions_values', array ( 'afsv_sub_id' => $submission_id, 'afsv_field_id' => $istance_data['istance_id'], 'afsv_type' => $type, 'afsv_value' => $value, ), array('%d','%s','%s','%s') ); } $_field_data[$istance_data['istance_id']] = $field_data; $_istance_data[$istance_data['istance_id']] = $istance_data; } $replace_map['__autoreply'] = (bool) ($replace_map['__autoreply_email_raw'] && $form_data['confirmation_emails_subject'] && $form_data['confirmation_emails_message']); accua_forms_aggregate_submitted_data($replace_map); //Older undocumented filter, maintained for backward compatibility. In fact filter accua_forms_form_submission_handler is called before accua_forms_submission, but for the rest they are the same $replace_map = apply_filters('accua_forms_form_submission_handler', $replace_map, $fid, $submittedData, $form, $_field_data, $_istance_data); //Newer filter, with an easier name $replace_map = apply_filters('accua_forms_submission', $replace_map, $fid, $submittedData, $form, $_field_data, $_istance_data); $submitted_html = '
' . $replace_map['__submitted_html'] . '
'; $confirmation_emails_message = $replace_map['__confirmation_emails_message']; unset($replace_map['__submitted_html'], $replace_map['__confirmation_emails_message'], $replace_map['__submitted_txt_raw'], $replace_map['__submitted_html_raw'], $replace_map['__submitted_json_raw'], $replace_map['__autoreply_email_raw']); $replace_map_html = array(); foreach($replace_map as $key => $value) { $replace_map_html["!$key"] = $value; $replace_map_html[$key] = htmlspecialchars($value, ENT_QUOTES); } $replace_map['__submitted_html'] = $replace_map_html['__submitted_html'] = $replace_map_html['!__submitted_html'] = $submitted_html; $replacer_html = new AccuaConditionalReplacer($replace_map_html); $confirmation_emails_message = $replace_map['__confirmation_emails_message'] = $replacer_html->doReplace($confirmation_emails_message); $replacer_html->appendPattern(array('__confirmation_emails_message' => $confirmation_emails_message, '!__confirmation_emails_message' => $confirmation_emails_message)); $replacer = new AccuaConditionalReplacer($replace_map); $form_data_replaced = array(); $settings = array( 'emails_from_name', 'emails_from', 'admin_emails_to', 'emails_bcc', 'admin_emails_subject', 'confirmation_emails_subject', ); foreach($settings as $i) { $form_data_replaced[$i] = $replacer->doReplace($form_data[$i]); } $settings_html = array( 'success_message', 'admin_emails_message', ); foreach($settings_html as $i) { $form_data_replaced[$i] = $replacer_html->doReplace($form_data[$i]); } AccuaForm::appendSubmittedMessages(wpautop($form_data_replaced['success_message'])); $header = array("Content-Type: text/html; charset=".get_option('blog_charset')); $emails_from = trim($form_data_replaced['emails_from']); if (strpos($emails_from, '@') !== false) { if ((strpos($emails_from, '<') === false) && is_email($emails_from)) { $emails_from_name = trim($form_data_replaced['emails_from_name']); if ($emails_from_name !== '') { $emails_from = "=?" . get_bloginfo('charset') . "?B?" . base64_encode($emails_from_name) . "?= <$emails_from>"; } } $header[] = 'From: '.$emails_from; } if ($form_data_replaced['emails_bcc']) { $header[] = 'Bcc: '.$form_data_replaced['emails_bcc']; } if ($form_data_replaced['admin_emails_to'] && $form_data_replaced['admin_emails_subject']) { /* $admin_tos = explode(',', strtr($form_data_replaced['admin_emails_to'], "\n\t\r;", ',,,,')); foreach ($admin_tos as $admin_to) { $mail1 = wp_mail(trim($admin_to), $form_data_replaced['admin_emails_subject'], $form_data_replaced['admin_emails_message'], $header); } */ $mail1 = wp_mail($form_data_replaced['admin_emails_to'], $form_data_replaced['admin_emails_subject'],''.wpautop($form_data_replaced['admin_emails_message']).'', $header); } if ($replace_map['__autoreply'] && $replace_map['__autoreply_email'] && $form_data_replaced['confirmation_emails_subject'] && $confirmation_emails_message) { $mail2 = wp_mail($replace_map['__autoreply_email'], $form_data_replaced['confirmation_emails_subject'], ''.wpautop($confirmation_emails_message).'', $header); } /* echo ""; */ } } } function accua_forms_get_submission_data($subid, $options = array()){ //TODO: Completa e usa per sostituire i campi global $wpdb; $subid = (int) $subid; $options += array( 'extra' => true, 'file_format' => 'name', ); $ret = array(); if ($options['extra']) { $query1 = "SELECT * FROM `{$wpdb->prefix}accua_forms_submissions` WHERE afs_id = $subid"; $data = $wpdb->get_row($query1); if (!empty($data)) { $created = $data->afs_created; $created[10] = 'T'; $created.='.00+00:00'; $created = strtotime($created); $submitted = $data->afs_submitted; $submitted[10] = 'T'; $submitted.='.00+00:00'; $submitted = strtotime($submitted); if ($data->afs_stats) { $stats = json_decode($data->afs_stats, true); if (!$stats) { $stats = array(); } } else { $stats = array(); } $stats += array( 'user_agent' => '', 'platform' => '', 'tentatives' => '', 'submit_method' => '', ); $ret += array( '__fid' => $data->afs_form_id, '__subid' => $subid, '__pid' => $data->afs_post_id, '__ip' => $data->afs_id, '__uri' => $data->afs_uri, '__referrer' => $data->afs_referrer, '__lang' => $data->afs_lang, '__created' => $created, '__created_day' => date('l j F Y', $created), '__created_hour' => date('G:i', $created), '__submitted' => $submitted, '__submitted_day' => date('l j F Y', $submitted), '__submitted_hour' => date('G:i', $submitted), '__user_agent' => $stats['user_agent'], '__platform' => $stats['platform'], '__tentatives' => $stats['tentatives'], '__submit_method' => $stats['submit_method'], ); } } $query2 = "SELECT * FROM `{$wpdb->prefix}accua_forms_submissions_values` WHERE afsv_sub_id = $subid"; $data2 = $wpdb->get_results($query2, OBJECT); foreach ($data2 as $row) { switch ($row->afsv_type) { case 'file' : if ($options['file_format'] == 'url' || $options['file_format'] == 'link') { $fieldid = rawurlencode($row->afsv_field_id); $filename = rawurlencode($row->afsv_value); $url = admin_url('admin-ajax.php') . "?action=accua_forms_download_submitted_file&subid={$row->afsv_sub_id}&field={$fieldid}&file={$filename}"; if ($options['file_format'] == 'link'){ $url = htmlspecialchars($url,ENT_QUOTES); $filename = htmlspecialchars($row->afsv_value,ENT_QUOTES); $fielddata = "{$filename}"; } else { $fielddata = $url; } } else { // $options['file_format'] == 'name' $fielddata = $row->afsv_value; } break; default: $fielddata = $row->afsv_value; } $ret[$row->afsv_field_id] = $fielddata; } return $ret; } add_shortcode( 'accua-form', 'accua_forms_shortcode_handler' ); function accua_forms_shortcode_handler($atts, $content = '', $code = '') { if (empty($atts['fid'])) { return ''; } $fid = $atts['fid']; $form_data = _accua_forms_get_form_data($fid, false); if (! $form_data) { return ''; } $fid = '__accua-form__'.$fid; $out = ''; if (AccuaForm::getSubmittedID() == $fid) { /* return "
Form submitted.\n\nData: " . print_r(AccuaForm::getSubmittedData(), true) . '
'; */ $messages = AccuaForm::getSubmittedMessages(); if ($messages) { $out .= '
'.$messages.'
'; } if (AccuaForm::isValid()) { return $out; } $form = AccuaForm::getSubmittedForm(); } else { $form = AccuaForm::create($fid, array('layout'=>$form_data['layout'])); } return $out . $form->render(true); } function accua_forms_include($fid, $atts=array(), $content = '', $code = '') { $atts['fid'] = $fid; echo accua_forms_shortcode_handler($atts, $content, $code); } function accua_forms_submissions_list_page_head(){ require_once('accua-forms-submissions-page.php'); accua_forms_submissions_list_page(true); } add_action('wp_ajax_accua_forms_download_submitted_file', 'accua_forms_download_submitted_file'); add_action('wp_ajax_nopriv_accua_forms_download_submitted_file', 'accua_forms_download_submitted_file'); function accua_forms_download_submitted_file(){ $get = stripslashes_deep($_GET); if (isset($get['subid'],$get['field'],$get['file'])) { global $wpdb; $subid = (int) $get['subid']; $field = $get['field']; $file = $get['file']; $query = "SELECT * FROM `{$wpdb->prefix}accua_forms_submissions_values` WHERE afsv_sub_id = %d AND afsv_field_id = %s AND afsv_value = %s "; $query = $wpdb->prepare($query, $subid, $field, $file); $subval = $wpdb->get_results($query, OBJECT); if ($subval) { $file_data = get_option('accua_forms_default_file_field_data',array()) + array('dest_path' => ''); $dest_path = _accua_forms_get_abs_dest_path($file_data['dest_path']); $filename = "{$dest_path}/{$subid}_{$field}_{$file}"; if (is_file($filename) && is_readable($filename)){ if (function_exists('finfo_open')){ @ $finfo = finfo_open(FILEINFO_MIME); if ($finfo) { @ $filetype = finfo_file($finfo, $filename); @ finfo_close($finfo); } } if (empty($filetype) && function_exists('mime_content_type')){ @ $filetype = mime_content_type($filename); } if (empty($filetype)) { $filetype = "application/octet-stream"; } header("Content-type: $filetype"); header("Content-length: ".filesize($filename)); header("Content-disposition: attachment; filename=\"$file\""); readfile($filename); die(''); } } } header("HTTP/1.0 404 Not Found"); //header("Status: 404 Not Found"); die('File not found'); } function accua_forms_buildConditionalReplacer($map = array()) { if (!class_exists('AccuaConditionalReplacer')){ require_once('AccuaConditionalReplacer.php'); } return new AccuaConditionalReplacer($map); } add_action('wp_ajax_accua_forms_preview', 'accua_forms_preview'); function accua_forms_preview() { if (!current_user_can('manage_options')){ die (''); } echo ''; wp_print_styles(); wp_print_head_scripts(); echo ''; echo accua_forms_shortcode_handler(array('fid'=>$_REQUEST['fid'])); wp_print_footer_scripts(); echo ''; die(''); } //salvataggio file excel add_action('wp_ajax_accua_forms_submission_page_save_excel', 'accua_forms_submission_page_save_excel'); //add_action('wp_ajax_nopriv_accua_forms_submission_page_save_excel', 'accua_forms_submission_page_save_excel'); function accua_forms_submission_page_save_excel() { if (!current_user_can('manage_options')){ header("HTTP/1.0 401 Access Denied"); //header("Status: 401 Access Denied"); die('You are not authorized to access this page.'); } require_once('accua-forms-submissions-page.php'); $listTable = new Accua_Forms_Submissions_List_Table(); $listTable->prepare_items(true); $show_col = explode( ',', $_GET['accua_show_field']); header("Content-disposition: attachment; filename=downloads-report.xls"); header("Content-type: application/vnd.ms-excel"); accua_forms_submission_page_save_excel_general($listTable,$show_col); die(''); } function accua_forms_submission_page_save_excel_general(Accua_Forms_Submissions_List_Table $listTable,array $show_col,array $options=array()) { global $wpdb; //creo il file excel ?> get_columns(); foreach($cols as $col_key=>$col_value) { if(in_array($col_key, $show_col)) { ?> date; $ut_date[10] = 'T'; $ut_date.='.00+00:00'; $excel_date = (strtotime($ut_date) / 86400 + 25569); $parts_date = explode('-', substr($result->date, 0, 10)); $date = "{$parts_date[2]}/{$parts_date[1]}/{$parts_date[0]}"; echo "\n"; */ ?> items as $id_submission=>$single_submission) { echo ""; foreach($cols as $col_key=>$col_value) { if(in_array($col_key, $show_col)) { echo ""; } } echo ""; } ?>
$date
"; if(isset($single_submission[$col_key])) { if ( method_exists( $this, 'column_' . $column_name ) ) { echo call_user_func( array( &$listTable, 'column_' . $col_key ), $single_submission ); } else { echo $listTable->column_default( $single_submission, $col_key ); } } echo "
$value) { $tokens .= $value['name'] . ": {" . $key . "}\n"; switch ($value['type']) { case 'file': $tokens .= $value['name'] . " (download link): {__download_" . $key . "}\n"; break; case 'multiselect': case 'multicheckbox': $tokens .= $value['name'] . " (labels): {__label_" . $key . "}\n"; break; case 'select': case 'radio': $tokens .= $value['name'] . " (label): {__label_" . $key . "}\n"; break; case 'post-multicheckbox': $tokens .= $value['name'] . " (posts titles): {__label_" . $key . "}\n"; $tokens .= $value['name'] . " (posts ids): {__post_id_" . $key . "}\n"; $tokens .= $value['name'] . " (posts urls): {__post_url_" . $key . "}\n"; break; case 'post-select': $tokens .= $value['name'] . " (post title): {__label_" . $key . "}\n"; $tokens .= $value['name'] . " (post id): {__post_id_" . $key . "}\n"; $tokens .= $value['name'] . " (post url): {__post_url_" . $key . "}\n"; break; } } echo <<

Tokens

In HTML text, use {!token_name} to insert unfiltered token value

Fields

These tokens are available only if the field is added to the form
$tokens

Generic tokens

{__fid}
{__subid}
{__pid}
{__ip}
{__uri}
{__url}
{__referrer}
{__lang}
{__locale}
{__created}
{__created_day}
{__created_day_month_year}
{__created_hour}
{__submitted}
{__submitted_day}
{__submitted_day_month_year}
{__submitted_hour}
{__user_agent}
{__platform}
{__tentatives}
{__submit_method}
{__submitted_txt}
{__submitted_html}
{__submitted_json}
{__autoreply}
{__autoreply_email}
{__confirmation_emails_message}
EOT; do_action('accua_forms_print_tokens'); } function &accua_get_pages($args = '') { global $wpdb; $defaults = array( 'child_of' => 0, 'sort_order' => 'ASC', 'sort_column' => 'post_title', 'hierarchical' => 1, 'exclude' => array(), 'include' => array(), 'meta_key' => '', 'meta_value' => '', 'meta_value_lt' => '', 'meta_value_gt' => '', 'meta_value_le' => '', 'meta_value_ge' => '', 'meta_value_like' => '', 'meta_value_format' => 'string', 'authors' => '', 'parent' => -1, 'exclude_tree' => '', 'number' => '', 'offset' => 0, 'post_type' => 'page', 'post_status' => 'publish', ); $r = wp_parse_args( $args, $defaults ); extract( $r, EXTR_SKIP ); $number = (int) $number; $offset = (int) $offset; /* // Make sure the post type is hierarchical $hierarchical_post_types = get_post_types( array( 'hierarchical' => true ) ); if ( !in_array( $post_type, $hierarchical_post_types ) ) return false; */ // Make sure we have a valid post type if ( !is_array( $post_type ) ) $post_type = explode( ',', $post_type ); if ( array_diff( $post_type, get_post_types() ) ) return false; // Make sure we have a valid post status if ( !is_array( $post_status ) ) $post_status = explode( ',', $post_status ); if ( array_diff( $post_status, get_post_stati() ) ) return false; /* $cache = array(); $key = md5( serialize( compact(array_keys($defaults)) ) ); if ( $cache = wp_cache_get( 'get_pages', 'posts' ) ) { if ( is_array($cache) && isset( $cache[ $key ] ) ) { $pages = apply_filters('get_pages', $cache[ $key ], $r ); return $pages; } } if ( !is_array($cache) ) $cache = array(); */ $inclusions = ''; if ( !empty($include) ) { $child_of = 0; //ignore child_of, parent, exclude, meta_key, and meta_value params if using include $parent = -1; $exclude = ''; $meta_key = ''; $meta_value = ''; $meta_value_lt = ''; $meta_value_gt = ''; $meta_value_le = ''; $meta_value_ge = ''; $meta_value_like = ''; $hierarchical = false; $incpages = wp_parse_id_list( $include ); if ( ! empty( $incpages ) ) { foreach ( $incpages as $incpage ) { if (empty($inclusions)) $inclusions = $wpdb->prepare(' AND ( ID = %d ', $incpage); else $inclusions .= $wpdb->prepare(' OR ID = %d ', $incpage); } } } if (!empty($inclusions)) $inclusions .= ')'; $exclusions = ''; if ( !empty($exclude) ) { $expages = wp_parse_id_list( $exclude ); if ( ! empty( $expages ) ) { foreach ( $expages as $expage ) { if (empty($exclusions)) $exclusions = $wpdb->prepare(' AND ( ID <> %d ', $expage); else $exclusions .= $wpdb->prepare(' AND ID <> %d ', $expage); } } } if (!empty($exclusions)) $exclusions .= ')'; $author_query = ''; if (!empty($authors)) { $post_authors = preg_split('/[\s,]+/',$authors); if ( ! empty( $post_authors ) ) { foreach ( $post_authors as $post_author ) { //Do we have an author id or an author login? if ( 0 == intval($post_author) ) { $post_author = get_user_by('login', $post_author); if ( empty($post_author) ) continue; if ( empty($post_author->ID) ) continue; $post_author = $post_author->ID; } if ( '' == $author_query ) $author_query = $wpdb->prepare(' post_author = %d ', $post_author); else $author_query .= $wpdb->prepare(' OR post_author = %d ', $post_author); } if ( '' != $author_query ) $author_query = " AND ($author_query)"; } } $allowed_keys = array('author', 'post_author', 'date', 'post_date', 'title', 'post_title', 'name', 'post_name', 'modified', 'post_modified', 'modified_gmt', 'post_modified_gmt', 'menu_order', 'parent', 'post_parent', 'ID', 'rand', 'comment_count'); $join = ''; $where = "$exclusions $inclusions "; if ( ! ( empty( $meta_key ) && empty( $meta_value ) && empty( $meta_value_lt ) && empty( $meta_value_gt ) && empty( $meta_value_le ) && empty( $meta_value_ge ) && empty( $meta_value_like ) ) ) { $join = " LEFT JOIN $wpdb->postmeta ON ( $wpdb->posts.ID = $wpdb->postmeta.post_id )"; $allowed_keys[] = 'meta_key'; $allowed_keys[] = 'meta_value'; // meta_key and meta_value might be slashed $meta_key = stripslashes($meta_key); $meta_value = stripslashes($meta_value); $meta_value_lt = stripslashes($meta_value_lt); $meta_value_gt = stripslashes($meta_value_gt); $meta_value_le = stripslashes($meta_value_le); $meta_value_ge = stripslashes($meta_value_ge); $meta_value_like = stripslashes($meta_value_like); if ( ! empty( $meta_key ) ) { $where .= $wpdb->prepare(" AND $wpdb->postmeta.meta_key = %s", $meta_key); } $meta_value_field = "$wpdb->postmeta.meta_value"; $meta_value_timestamp = false; switch($meta_value_format) { case 'timestamp': $meta_value_field = "TIMESTAMP( $meta_value_field )"; $meta_value_param = "FROM_UNIXTIME( %s )"; $meta_value_timestamp = true; break; case 'int': $meta_value_param = "%d"; break; case 'float': $meta_value_param = "%f"; break; //case 'string': default: $meta_value_param = "%s"; } if ( ! empty( $meta_value ) ) { if ($meta_value_timestamp) { $meta_value = strtotime($meta_value); } $where .= $wpdb->prepare(" AND $meta_value_field = $meta_value_param", $meta_value); } if ( ! empty( $meta_value_lt ) ) { if ($meta_value_timestamp) { $meta_value_lt = strtotime($meta_value_lt); } $where .= $wpdb->prepare(" AND $meta_value_field < $meta_value_param", $meta_value_lt); } if ( ! empty( $meta_value_gt ) ) { if ($meta_value_timestamp) { $meta_value_gt = strtotime($meta_value_gt); } $where .= $wpdb->prepare(" AND $meta_value_field > $meta_value_param", $meta_value_gt); } if ( ! empty( $meta_value_le ) ) { if ($meta_value_timestamp) { $meta_value_le = strtotime($meta_value_le); } $where .= $wpdb->prepare(" AND $meta_value_field <= $meta_value_param", $meta_value_le); } if ( ! empty( $meta_value_ge ) ) { if ($meta_value_timestamp) { $meta_value_ge = strtotime($meta_value_ge); } $where .= $wpdb->prepare(" AND $meta_value_field >= $meta_value_param", $meta_value_ge); } if ( ! empty( $meta_value_like ) ) { if ($meta_value_timestamp) { $meta_value_like = strtotime($meta_value_like); } $where .= $wpdb->prepare(" AND $meta_value_field like $meta_value_param", $meta_value_like); } } if ( $parent >= 0 ) $where .= $wpdb->prepare(' AND post_parent = %d ', $parent); if ( 1 == count ( $post_type ) ) { $where_post_type = $wpdb->prepare( "post_type = %s", array_shift( $post_type ) ); } else { $post_type = implode( "', '", $post_type ); $where_post_type = "post_type IN ('$post_type')"; } if ( 1 == count( $post_status ) ) { $where_post_type .= $wpdb->prepare( " AND post_status = %s", array_shift( $post_status ) ); } else { $post_status = implode( "', '", $post_status ); $where_post_type .= " AND post_status IN ('$post_status')"; } $orderby_array = array(); foreach ( explode( ',', $sort_column ) as $orderby ) { $orderby = trim( $orderby ); if ( !in_array( $orderby, $allowed_keys ) ) continue; switch ( $orderby ) { case 'menu_order': break; case 'ID': $orderby = "$wpdb->posts.ID"; break; case 'rand': $orderby = 'RAND()'; break; case 'comment_count': $orderby = "$wpdb->posts.comment_count"; break; case 'meta_key': case 'meta_value': $orderby = "$wpdb->postmeta.$orderby"; break; default: if ( 0 === strpos( $orderby, 'post_' ) ) $orderby = "$wpdb->posts." . $orderby; else $orderby = "$wpdb->posts.post_" . $orderby; } $orderby_array[] = $orderby; } $sort_column = ! empty( $orderby_array ) ? implode( ',', $orderby_array ) : "$wpdb->posts.post_title"; $sort_order = strtoupper( $sort_order ); if ( '' !== $sort_order && !in_array( $sort_order, array( 'ASC', 'DESC' ) ) ) $sort_order = 'ASC'; $query = "SELECT * FROM $wpdb->posts $join WHERE ($where_post_type) $where "; $query .= $author_query; $query .= " ORDER BY " . $sort_column . " " . $sort_order ; if ( !empty($number) ) $query .= ' LIMIT ' . $offset . ',' . $number; //echo ""; $pages = $wpdb->get_results($query); if ( empty($pages) ) { $pages = apply_filters('get_pages', array(), $r); return $pages; } // Sanitize before caching so it'll only get done once $num_pages = count($pages); for ($i = 0; $i < $num_pages; $i++) { $pages[$i] = sanitize_post($pages[$i], 'raw'); } /* // Update cache. update_post_cache( $pages ); */ if ( $child_of || $hierarchical ) $pages = & get_page_children($child_of, $pages); if ( !empty($exclude_tree) ) { $exclude = (int) $exclude_tree; $children = get_page_children($exclude, $pages); $excludes = array(); foreach ( $children as $child ) $excludes[] = $child->ID; $excludes[] = $exclude; $num_pages = count($pages); for ( $i = 0; $i < $num_pages; $i++ ) { if ( in_array($pages[$i]->ID, $excludes) ) unset($pages[$i]); } } /* $cache[ $key ] = $pages; wp_cache_set( 'get_pages', $cache, 'posts' ); */ $pages = apply_filters('get_pages', $pages, $r); return $pages; }