Edit File by line
/home/zeestwma/richards.../wp-conte.../plugins/wpforms-.../includes/admin
File: class-editor.php
<?php
[0] Fix | Delete
[1] Fix | Delete
if ( ! defined( 'ABSPATH' ) ) {
[2] Fix | Delete
exit;
[3] Fix | Delete
}
[4] Fix | Delete
[5] Fix | Delete
/**
[6] Fix | Delete
* Functionality related to the admin TinyMCE editor.
[7] Fix | Delete
*
[8] Fix | Delete
* @since 1.0.0
[9] Fix | Delete
*/
[10] Fix | Delete
class WPForms_Admin_Editor {
[11] Fix | Delete
[12] Fix | Delete
/**
[13] Fix | Delete
* Primary class constructor.
[14] Fix | Delete
*
[15] Fix | Delete
* @since 1.0.0
[16] Fix | Delete
*/
[17] Fix | Delete
public function __construct() {
[18] Fix | Delete
[19] Fix | Delete
add_action( 'media_buttons', [ $this, 'media_button' ], 15 );
[20] Fix | Delete
}
[21] Fix | Delete
[22] Fix | Delete
/**
[23] Fix | Delete
* Allow easy shortcode insertion via a custom media button.
[24] Fix | Delete
*
[25] Fix | Delete
* @since 1.0.0
[26] Fix | Delete
*
[27] Fix | Delete
* @param string $editor_id Editor Id.
[28] Fix | Delete
*/
[29] Fix | Delete
public function media_button( $editor_id ) {
[30] Fix | Delete
[31] Fix | Delete
if ( ! \wpforms_current_user_can( 'view_forms' ) ) {
[32] Fix | Delete
return;
[33] Fix | Delete
}
[34] Fix | Delete
[35] Fix | Delete
// Provide the ability to conditionally disable the button, so it can be
[36] Fix | Delete
// disabled for custom fields or front-end use such as bbPress. We default
[37] Fix | Delete
// to only showing within the post editor page.
[38] Fix | Delete
if ( ! apply_filters( 'wpforms_display_media_button', $this->is_post_editor_page(), $editor_id ) ) {
[39] Fix | Delete
return;
[40] Fix | Delete
}
[41] Fix | Delete
[42] Fix | Delete
// Setup the icon - currently using a dashicon.
[43] Fix | Delete
$icon = '<span class="wp-media-buttons-icon wpforms-menu-icon" style="font-size:16px;margin-top:-2px;"><svg width="18" height="18" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M643 911v128h-252v-128h252zm0-255v127h-252v-127h252zm758 511v128h-341v-128h341zm0-256v128h-672v-128h672zm0-255v127h-672v-127h672zm135 860v-1240q0-8-6-14t-14-6h-32l-378 256-210-171-210 171-378-256h-32q-8 0-14 6t-6 14v1240q0 8 6 14t14 6h1240q8 0 14-6t6-14zm-855-1110l185-150h-406zm430 0l221-150h-406zm553-130v1240q0 62-43 105t-105 43h-1240q-62 0-105-43t-43-105v-1240q0-62 43-105t105-43h1240q62 0 105 43t43 105z" fill="#82878c"/></svg></span>';
[44] Fix | Delete
[45] Fix | Delete
printf(
[46] Fix | Delete
'<button type="button" class="button wpforms-insert-form-button" data-editor="%s">%s %s</button>',
[47] Fix | Delete
esc_attr( $editor_id ),
[48] Fix | Delete
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
[49] Fix | Delete
$icon,
[50] Fix | Delete
esc_html__( 'Add Form', 'wpforms-lite' )
[51] Fix | Delete
);
[52] Fix | Delete
[53] Fix | Delete
$min = wpforms_get_min_suffix();
[54] Fix | Delete
[55] Fix | Delete
// If we have made it this far then load the JS.
[56] Fix | Delete
wp_enqueue_script(
[57] Fix | Delete
'wpforms-editor',
[58] Fix | Delete
WPFORMS_PLUGIN_URL . "assets/js/admin/admin-editor{$min}.js",
[59] Fix | Delete
[ 'jquery' ],
[60] Fix | Delete
WPFORMS_VERSION,
[61] Fix | Delete
true
[62] Fix | Delete
);
[63] Fix | Delete
[64] Fix | Delete
add_action( 'admin_footer', [ $this, 'shortcode_modal' ] );
[65] Fix | Delete
}
[66] Fix | Delete
[67] Fix | Delete
/**
[68] Fix | Delete
* Check if we are on the post editor admin page.
[69] Fix | Delete
*
[70] Fix | Delete
* @since 1.6.2
[71] Fix | Delete
*
[72] Fix | Delete
* @returns boolean True if it is post editor admin page.
[73] Fix | Delete
*/
[74] Fix | Delete
public function is_post_editor_page() {
[75] Fix | Delete
[76] Fix | Delete
if ( ! is_admin() ) {
[77] Fix | Delete
return false;
[78] Fix | Delete
}
[79] Fix | Delete
[80] Fix | Delete
// get_current_screen() is loaded after 'admin_init' hook and may not exist yet.
[81] Fix | Delete
if ( ! function_exists( 'get_current_screen' ) ) {
[82] Fix | Delete
return false;
[83] Fix | Delete
}
[84] Fix | Delete
[85] Fix | Delete
$screen = get_current_screen();
[86] Fix | Delete
[87] Fix | Delete
return $screen !== null && $screen->parent_base === 'edit';
[88] Fix | Delete
}
[89] Fix | Delete
[90] Fix | Delete
/**
[91] Fix | Delete
* Modal window for inserting the form shortcode into TinyMCE.
[92] Fix | Delete
*
[93] Fix | Delete
* Thickbox is old and busted so we don't use that. Creating a custom view in
[94] Fix | Delete
* Backbone would make me pull my hair out. So instead we offer a small clean
[95] Fix | Delete
* modal that is based off of the WordPress insert link modal.
[96] Fix | Delete
*
[97] Fix | Delete
* @since 1.0.0
[98] Fix | Delete
*/
[99] Fix | Delete
public function shortcode_modal() {
[100] Fix | Delete
?>
[101] Fix | Delete
<div id="wpforms-modal-backdrop" style="display: none"></div>
[102] Fix | Delete
<div id="wpforms-modal-wrap" style="display: none">
[103] Fix | Delete
<form id="wpforms-modal" tabindex="-1">
[104] Fix | Delete
<div id="wpforms-modal-title">
[105] Fix | Delete
<?php esc_html_e( 'Insert Form', 'wpforms-lite' ); ?>
[106] Fix | Delete
<button type="button" id="wpforms-modal-close"><span class="screen-reader-text"><?php esc_html_e( 'Close', 'wpforms-lite' ); ?></span></button>
[107] Fix | Delete
</div>
[108] Fix | Delete
<div id="wpforms-modal-inner">
[109] Fix | Delete
[110] Fix | Delete
<div id="wpforms-modal-options">
[111] Fix | Delete
<?php
[112] Fix | Delete
echo '<p id="wpforms-modal-notice">';
[113] Fix | Delete
printf(
[114] Fix | Delete
wp_kses( /* translators: %s - WPForms documentation URL. */
[115] Fix | Delete
__( 'Heads up! Don\'t forget to test your form. <a href="%s" target="_blank" rel="noopener noreferrer">Check out our complete guide</a>!', 'wpforms-lite' ),
[116] Fix | Delete
[
[117] Fix | Delete
'a' => [
[118] Fix | Delete
'href' => [],
[119] Fix | Delete
'rel' => [],
[120] Fix | Delete
'target' => [],
[121] Fix | Delete
],
[122] Fix | Delete
]
[123] Fix | Delete
),
[124] Fix | Delete
'https://wpforms.com/docs/how-to-properly-test-your-wordpress-forms-before-launching-checklist/'
[125] Fix | Delete
);
[126] Fix | Delete
echo '</p>';
[127] Fix | Delete
$args = apply_filters( 'wpforms_modal_select', [] );
[128] Fix | Delete
$forms = wpforms()->obj( 'form' )->get( '', $args );
[129] Fix | Delete
[130] Fix | Delete
if ( ! empty( $forms ) ) {
[131] Fix | Delete
printf( '<p><label for="wpforms-modal-select-form">%s</label></p>', esc_html__( 'Select a form below to insert', 'wpforms-lite' ) );
[132] Fix | Delete
echo '<select id="wpforms-modal-select-form">';
[133] Fix | Delete
foreach ( $forms as $form ) {
[134] Fix | Delete
printf( '<option value="%d">%s</option>', esc_html( $form->ID ), esc_html( $form->post_title ) );
[135] Fix | Delete
}
[136] Fix | Delete
echo '</select><br>';
[137] Fix | Delete
printf( '<p class="wpforms-modal-inline"><input type="checkbox" id="wpforms-modal-checkbox-title"><label for="wpforms-modal-checkbox-title">%s</label></p>', esc_html__( 'Show form name', 'wpforms-lite' ) );
[138] Fix | Delete
printf( '<p class="wpforms-modal-inline"><input type="checkbox" id="wpforms-modal-checkbox-description"><label for="wpforms-modal-checkbox-description">%s</label></p>', esc_html__( 'Show form description', 'wpforms-lite' ) );
[139] Fix | Delete
} else {
[140] Fix | Delete
echo '<p>';
[141] Fix | Delete
printf(
[142] Fix | Delete
wp_kses(
[143] Fix | Delete
/* translators: %s - WPForms Builder page. */
[144] Fix | Delete
__( 'Whoops, you haven\'t created a form yet. Want to <a href="%s">give it a go</a>?', 'wpforms-lite' ),
[145] Fix | Delete
[
[146] Fix | Delete
'a' => [
[147] Fix | Delete
'href' => [],
[148] Fix | Delete
],
[149] Fix | Delete
]
[150] Fix | Delete
),
[151] Fix | Delete
esc_url( admin_url( 'admin.php?page=wpforms-builder' ) )
[152] Fix | Delete
);
[153] Fix | Delete
echo '</p>';
[154] Fix | Delete
}
[155] Fix | Delete
?>
[156] Fix | Delete
</div>
[157] Fix | Delete
</div>
[158] Fix | Delete
<div class="submitbox">
[159] Fix | Delete
<div id="wpforms-modal-cancel">
[160] Fix | Delete
<a class="submitdelete deletion" href="#"><?php esc_html_e( 'Cancel', 'wpforms-lite' ); ?></a>
[161] Fix | Delete
</div>
[162] Fix | Delete
<?php if ( ! empty( $forms ) ) : ?>
[163] Fix | Delete
<div id="wpforms-modal-update">
[164] Fix | Delete
<button class="button button-primary" id="wpforms-modal-submit"><?php esc_html_e( 'Add Form', 'wpforms-lite' ); ?></button>
[165] Fix | Delete
</div>
[166] Fix | Delete
<?php endif; ?>
[167] Fix | Delete
</div>
[168] Fix | Delete
</form>
[169] Fix | Delete
</div>
[170] Fix | Delete
<style type="text/css">
[171] Fix | Delete
.wpforms-insert-form-button svg path {
[172] Fix | Delete
fill: #0071a1;
[173] Fix | Delete
}
[174] Fix | Delete
[175] Fix | Delete
.wpforms-insert-form-button:hover svg path {
[176] Fix | Delete
fill: #016087;
[177] Fix | Delete
}
[178] Fix | Delete
[179] Fix | Delete
#wpforms-modal-wrap {
[180] Fix | Delete
display: none;
[181] Fix | Delete
background-color: #fff;
[182] Fix | Delete
-webkit-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.3);
[183] Fix | Delete
box-shadow: 0 3px 6px rgba(0, 0, 0, 0.3);
[184] Fix | Delete
width: 500px;
[185] Fix | Delete
height: 285px;
[186] Fix | Delete
overflow: hidden;
[187] Fix | Delete
margin-left: -250px;
[188] Fix | Delete
margin-top: -125px;
[189] Fix | Delete
position: fixed;
[190] Fix | Delete
top: 50%;
[191] Fix | Delete
left: 50%;
[192] Fix | Delete
z-index: 100205;
[193] Fix | Delete
-webkit-transition: height 0.2s, margin-top 0.2s;
[194] Fix | Delete
transition: height 0.2s, margin-top 0.2s;
[195] Fix | Delete
}
[196] Fix | Delete
[197] Fix | Delete
#wpforms-modal-backdrop {
[198] Fix | Delete
display: none;
[199] Fix | Delete
position: fixed;
[200] Fix | Delete
top: 0;
[201] Fix | Delete
left: 0;
[202] Fix | Delete
right: 0;
[203] Fix | Delete
bottom: 0;
[204] Fix | Delete
min-height: 360px;
[205] Fix | Delete
background: #000;
[206] Fix | Delete
opacity: 0.7;
[207] Fix | Delete
filter: alpha(opacity=70);
[208] Fix | Delete
z-index: 100200;
[209] Fix | Delete
}
[210] Fix | Delete
[211] Fix | Delete
#wpforms-modal {
[212] Fix | Delete
position: relative;
[213] Fix | Delete
height: 100%;
[214] Fix | Delete
}
[215] Fix | Delete
[216] Fix | Delete
#wpforms-modal-title {
[217] Fix | Delete
background: #fcfcfc;
[218] Fix | Delete
border-bottom: 1px solid #dfdfdf;
[219] Fix | Delete
height: 36px;
[220] Fix | Delete
font-size: 18px;
[221] Fix | Delete
font-weight: 600;
[222] Fix | Delete
line-height: 36px;
[223] Fix | Delete
padding: 0 36px 0 16px;
[224] Fix | Delete
top: 0;
[225] Fix | Delete
right: 0;
[226] Fix | Delete
left: 0;
[227] Fix | Delete
}
[228] Fix | Delete
[229] Fix | Delete
#wpforms-modal-close {
[230] Fix | Delete
color: #666;
[231] Fix | Delete
padding: 0;
[232] Fix | Delete
position: absolute;
[233] Fix | Delete
top: 0;
[234] Fix | Delete
right: 0;
[235] Fix | Delete
width: 36px;
[236] Fix | Delete
height: 36px;
[237] Fix | Delete
text-align: center;
[238] Fix | Delete
background: none;
[239] Fix | Delete
border: none;
[240] Fix | Delete
cursor: pointer;
[241] Fix | Delete
}
[242] Fix | Delete
[243] Fix | Delete
#wpforms-modal-close:before {
[244] Fix | Delete
font: normal 20px/36px 'dashicons';
[245] Fix | Delete
vertical-align: top;
[246] Fix | Delete
speak: none;
[247] Fix | Delete
-webkit-font-smoothing: antialiased;
[248] Fix | Delete
-moz-osx-font-smoothing: grayscale;
[249] Fix | Delete
width: 36px;
[250] Fix | Delete
height: 36px;
[251] Fix | Delete
content: '\f158';
[252] Fix | Delete
}
[253] Fix | Delete
[254] Fix | Delete
#wpforms-modal-close:hover,
[255] Fix | Delete
#wpforms-modal-close:focus {
[256] Fix | Delete
color: #2ea2cc;
[257] Fix | Delete
}
[258] Fix | Delete
[259] Fix | Delete
#wpforms-modal-close:focus {
[260] Fix | Delete
outline: none;
[261] Fix | Delete
-webkit-box-shadow: 0 0 0 1px #5b9dd9,
[262] Fix | Delete
0 0 2px 1px rgba(30, 140, 190, .8);
[263] Fix | Delete
box-shadow: 0 0 0 1px #5b9dd9,
[264] Fix | Delete
0 0 2px 1px rgba(30, 140, 190, .8);
[265] Fix | Delete
}
[266] Fix | Delete
[267] Fix | Delete
#wpforms-modal-inner {
[268] Fix | Delete
padding: 0 16px 50px;
[269] Fix | Delete
}
[270] Fix | Delete
[271] Fix | Delete
#wpforms-modal-search-toggle:after {
[272] Fix | Delete
display: inline-block;
[273] Fix | Delete
font: normal 20px/1 'dashicons';
[274] Fix | Delete
vertical-align: top;
[275] Fix | Delete
speak: none;
[276] Fix | Delete
-webkit-font-smoothing: antialiased;
[277] Fix | Delete
-moz-osx-font-smoothing: grayscale;
[278] Fix | Delete
content: '\f140';
[279] Fix | Delete
}
[280] Fix | Delete
[281] Fix | Delete
#wpforms-modal-notice {
[282] Fix | Delete
background-color: #d9edf7;
[283] Fix | Delete
border: 1px solid #bce8f1;
[284] Fix | Delete
color: #31708f;
[285] Fix | Delete
padding: 10px;
[286] Fix | Delete
}
[287] Fix | Delete
[288] Fix | Delete
#wpforms-modal #wpforms-modal-options {
[289] Fix | Delete
padding: 8px 0 12px;
[290] Fix | Delete
}
[291] Fix | Delete
[292] Fix | Delete
#wpforms-modal #wpforms-modal-options .wpforms-modal-inline {
[293] Fix | Delete
display: inline-block;
[294] Fix | Delete
margin: 0;
[295] Fix | Delete
padding: 0 20px 0 0;
[296] Fix | Delete
}
[297] Fix | Delete
[298] Fix | Delete
#wpforms-modal-select-form {
[299] Fix | Delete
margin-bottom: 1em;
[300] Fix | Delete
max-width: 100%;
[301] Fix | Delete
}
[302] Fix | Delete
[303] Fix | Delete
#wpforms-modal .submitbox {
[304] Fix | Delete
padding: 8px 16px;
[305] Fix | Delete
background: #fcfcfc;
[306] Fix | Delete
border-top: 1px solid #dfdfdf;
[307] Fix | Delete
position: absolute;
[308] Fix | Delete
bottom: 0;
[309] Fix | Delete
left: 0;
[310] Fix | Delete
right: 0;
[311] Fix | Delete
}
[312] Fix | Delete
[313] Fix | Delete
#wpforms-modal-cancel {
[314] Fix | Delete
line-height: 25px;
[315] Fix | Delete
float: left;
[316] Fix | Delete
}
[317] Fix | Delete
[318] Fix | Delete
#wpforms-modal-update {
[319] Fix | Delete
line-height: 23px;
[320] Fix | Delete
float: right;
[321] Fix | Delete
}
[322] Fix | Delete
[323] Fix | Delete
#wpforms-modal-submit {
[324] Fix | Delete
float: right;
[325] Fix | Delete
margin-bottom: 0;
[326] Fix | Delete
}
[327] Fix | Delete
[328] Fix | Delete
@media screen and ( max-width: 782px ) {
[329] Fix | Delete
#wpforms-modal-wrap {
[330] Fix | Delete
height: 280px;
[331] Fix | Delete
margin-top: -140px;
[332] Fix | Delete
}
[333] Fix | Delete
[334] Fix | Delete
#wpforms-modal-inner {
[335] Fix | Delete
padding: 0 16px 60px;
[336] Fix | Delete
}
[337] Fix | Delete
[338] Fix | Delete
#wpforms-modal-cancel {
[339] Fix | Delete
line-height: 32px;
[340] Fix | Delete
}
[341] Fix | Delete
}
[342] Fix | Delete
[343] Fix | Delete
@media screen and ( max-width: 520px ) {
[344] Fix | Delete
#wpforms-modal-wrap {
[345] Fix | Delete
width: auto;
[346] Fix | Delete
margin-left: 0;
[347] Fix | Delete
left: 10px;
[348] Fix | Delete
right: 10px;
[349] Fix | Delete
max-width: 500px;
[350] Fix | Delete
}
[351] Fix | Delete
}
[352] Fix | Delete
[353] Fix | Delete
@media screen and ( max-height: 520px ) {
[354] Fix | Delete
#wpforms-modal-wrap {
[355] Fix | Delete
-webkit-transition: none;
[356] Fix | Delete
transition: none;
[357] Fix | Delete
}
[358] Fix | Delete
}
[359] Fix | Delete
[360] Fix | Delete
@media screen and ( max-height: 290px ) {
[361] Fix | Delete
#wpforms-modal-wrap {
[362] Fix | Delete
height: auto;
[363] Fix | Delete
margin-top: 0;
[364] Fix | Delete
top: 10px;
[365] Fix | Delete
bottom: 10px;
[366] Fix | Delete
}
[367] Fix | Delete
[368] Fix | Delete
#wpforms-modal-inner {
[369] Fix | Delete
overflow: auto;
[370] Fix | Delete
height: -webkit-calc(100% - 92px);
[371] Fix | Delete
height: calc(100% - 92px);
[372] Fix | Delete
padding-bottom: 2px;
[373] Fix | Delete
}
[374] Fix | Delete
}
[375] Fix | Delete
</style>
[376] Fix | Delete
<?php
[377] Fix | Delete
}
[378] Fix | Delete
[379] Fix | Delete
}
[380] Fix | Delete
[381] Fix | Delete
new WPForms_Admin_Editor();
[382] Fix | Delete
[383] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function