-
Notifications
You must be signed in to change notification settings - Fork 0
/
preview.php
156 lines (131 loc) · 4.92 KB
/
preview.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
<?php
//For backwards compatibility, load wordpress if it hasn't been loaded yet
//Will be used if this file is being called directly
if ( ! class_exists( 'RGForms' ) ) {
for ( $i = 0; $i < $depth = 10; $i ++ ) {
$wp_root_path = str_repeat( '../', $i );
if ( file_exists( "{$wp_root_path}wp-load.php" ) ) {
require_once( "{$wp_root_path}wp-load.php" );
require_once( "{$wp_root_path}wp-admin/includes/admin.php" );
break;
}
}
//redirect to the login page if user is not authenticated
auth_redirect();
}
// If user doesn't have appropriate permissions, die.
if ( ! GFCommon::current_user_can_any( array( 'gravityforms_edit_forms', 'gravityforms_create_form', 'gravityforms_preview_forms' ) ) ) {
die( esc_html__( "You don't have adequate permission to preview forms.", 'gravityforms' ) );
}
// Get form ID.
$form_id = absint( rgget( 'id' ) );
/**
* Fires when a Form Preview is loaded.
*
* The hook fires when a Form Preview is initialized and before it is rendered.
*
* @since 2.5
* @since 2.9 Added the $form_id parameter.
*/
do_action( 'gform_preview_init', $form_id );
// Load form display class.
require_once( GFCommon::get_base_path() . '/form_display.php' );
// Get form object.
$form = RGFormsModel::get_form_meta( $_GET['id'] );
$form_title = rgar( $form, 'title', __( 'Untitled Form', 'gravityforms' ) );
/* translators: Form preview page title. 1: form title, 2: site title. */
$admin_title = sprintf( __( '%1$s ‹ Form Preview - Gravity Forms ‹ %2$s — WordPress', 'gravityforms' ), esc_html( $form_title ), esc_html( get_bloginfo( 'name' ) ) );
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta http-equiv="Imagetoolbar" content="No" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title><?php echo esc_html( $admin_title ); ?></title>
<?php
// If form exists, enqueue its scripts.
if ( ! empty( $form ) ) {
GFFormDisplay::enqueue_form_scripts( $form );
}
wp_enqueue_script( 'gform_preview' );
wp_print_head_scripts();
$styles = array();
/**
* Filters Form Preview Styles.
*
* This filter modifies the enqueued styles for the Form Preview. Any handles returned in the array
* will be loaded in the Preview header (if they've been registered with wp_register_style).
*
* @since 2.4
*
* @param array $styles An empty array representing the currently-active styles.
* @param array $form An array representing the current Form.
*
* @return array An array of handles to enqueue in the header.
*/
$styles = apply_filters( 'gform_preview_styles', $styles, $form );
if ( ! empty( $styles ) ) {
wp_print_styles( $styles );
}
/**
* Fire before the closing <head> tag of the preview page.
*
* @since 2.4.19
*
* @param int $form_id The ID of the form currently being previewed.
*/
do_action( 'gform_preview_header', $form_id );
?>
</head>
<body <?php body_class(); ?>>
<?php
/**
* Fire after the opening <body> tag of the preview page.
*
* @since 2.4.19
*
* @param int $form_id The ID of the form currently being previewed.
*/
do_action( 'gform_preview_body_open', $form_id );
?>
<div id="preview_top">
<div id="preview_hdr">
<div>
<span class="toggle_helpers">
<input type="checkbox" name="showgrid" id="showgrid" value="Y" class="show-grid-input" /><label for="showgrid" class="show-grid-label"><?php esc_html_e( 'display grid', 'gravityforms' ) ?></label>
<input type="checkbox" name="showme" id="showme" value="Y" class="show-helpers-input" /><label for="showme" class="show-helpers-label"><?php esc_html_e( 'show structure', 'gravityforms' ) ?></label>
</span>
<h2><?php esc_html_e( 'Form Preview', 'gravityforms' ) ?> : ID <?php echo $form_id; ?></h2>
</div>
</div>
<div id="preview_note" class="preview_notice">
<?php esc_html_e( 'Note: This is a simple form preview. This form may display differently when added to your page based on normal inheritance from parent theme styles.', 'gravityforms' ) ?> <i class="hidenotice" title="<?php esc_html_e( 'dismiss', 'gravityforms' ) ?>"></i>
</div>
</div>
<div id="helper_legend_container">
<ul id="helper_legend">
<li class="showid">Element ID</li>
<li class="showclass">Class Name</li>
</ul>
</div>
<div id="preview_form_container">
<span class="rule25"></span>
<span class="rule33"></span>
<span class="rule50"></span>
<span class="rule66"></span>
<span class="rule75"></span>
<?php echo RGForms::get_form( $form_id, true, true, true ); ?>
</div>
<div id="browser_size_info"></div>
<?php
wp_print_footer_scripts();
/**
* Fires in the footer of a Form Preview page
*
* @param int $_GET['id'] The ID of the form currently being previewed
*/
do_action( 'gform_preview_footer', $form_id );
?>
</body>
</html>