Edit File by line
/home/zeestwma/richards.../wp-conte.../plugins/litespee.../src
File: gui.cls.php
}
[1000] Fix | Delete
[1001] Fix | Delete
if ( $this->has_cache_folder( 'lqip' ) ) {
[1002] Fix | Delete
$wp_admin_bar->add_menu(
[1003] Fix | Delete
[
[1004] Fix | Delete
'parent' => 'litespeed-menu',
[1005] Fix | Delete
'id' => 'litespeed-purge-placeholder',
[1006] Fix | Delete
'title' => esc_html__( 'Purge All', 'litespeed-cache' ) . ' - ' . esc_html__( 'LQIP Cache', 'litespeed-cache' ),
[1007] Fix | Delete
'href' => Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_LQIP ),
[1008] Fix | Delete
'meta' => [ 'tabindex' => '0' ],
[1009] Fix | Delete
]
[1010] Fix | Delete
);
[1011] Fix | Delete
}
[1012] Fix | Delete
[1013] Fix | Delete
if ( $this->has_cache_folder( 'vpi' ) ) {
[1014] Fix | Delete
$wp_admin_bar->add_menu(
[1015] Fix | Delete
[
[1016] Fix | Delete
'parent' => 'litespeed-menu',
[1017] Fix | Delete
'id' => 'litespeed-purge-vpi',
[1018] Fix | Delete
'title' => __( 'Purge All', 'litespeed-cache' ) . ' - VPI',
[1019] Fix | Delete
'href' => Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_VPI ),
[1020] Fix | Delete
'meta' => [ 'tabindex' => '0' ],
[1021] Fix | Delete
]
[1022] Fix | Delete
);
[1023] Fix | Delete
}
[1024] Fix | Delete
[1025] Fix | Delete
if ( $this->has_cache_folder( 'avatar' ) ) {
[1026] Fix | Delete
$wp_admin_bar->add_menu(
[1027] Fix | Delete
[
[1028] Fix | Delete
'parent' => 'litespeed-menu',
[1029] Fix | Delete
'id' => 'litespeed-purge-avatar',
[1030] Fix | Delete
'title' => esc_html__( 'Purge All', 'litespeed-cache' ) . ' - ' . esc_html__( 'Gravatar Cache', 'litespeed-cache' ),
[1031] Fix | Delete
'href' => Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_AVATAR ),
[1032] Fix | Delete
'meta' => [ 'tabindex' => '0' ],
[1033] Fix | Delete
]
[1034] Fix | Delete
);
[1035] Fix | Delete
}
[1036] Fix | Delete
[1037] Fix | Delete
do_action( 'litespeed_backend_shortcut' );
[1038] Fix | Delete
}
[1039] Fix | Delete
[1040] Fix | Delete
/**
[1041] Fix | Delete
* Clear unfinished data link/button.
[1042] Fix | Delete
*
[1043] Fix | Delete
* @since 2.4.2
[1044] Fix | Delete
* @access public
[1045] Fix | Delete
*
[1046] Fix | Delete
* @param int $unfinished_num Number of unfinished images.
[1047] Fix | Delete
* @return string HTML for action button.
[1048] Fix | Delete
*/
[1049] Fix | Delete
public static function img_optm_clean_up( $unfinished_num ) {
[1050] Fix | Delete
return sprintf(
[1051] Fix | Delete
'<a href="%1$s" class="button litespeed-btn-warning" data-balloon-pos="up" aria-label="%2$s"><span class="dashicons dashicons-editor-removeformatting"></span>&nbsp;%3$s</a>',
[1052] Fix | Delete
esc_url( Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_CLEAN ) ),
[1053] Fix | Delete
esc_attr__( 'Remove all previous unfinished image optimization requests.', 'litespeed-cache' ),
[1054] Fix | Delete
esc_html__( 'Clean Up Unfinished Data', 'litespeed-cache' ) . ( $unfinished_num ? ': ' . Admin_Display::print_plural( $unfinished_num, 'image' ) : '' )
[1055] Fix | Delete
);
[1056] Fix | Delete
}
[1057] Fix | Delete
[1058] Fix | Delete
/**
[1059] Fix | Delete
* Generate install link.
[1060] Fix | Delete
*
[1061] Fix | Delete
* @since 2.4.2
[1062] Fix | Delete
* @access public
[1063] Fix | Delete
*
[1064] Fix | Delete
* @param string $title Plugin title.
[1065] Fix | Delete
* @param string $name Slug.
[1066] Fix | Delete
* @param string $v Version (unused, kept for BC).
[1067] Fix | Delete
* @return string HTML link.
[1068] Fix | Delete
*/
[1069] Fix | Delete
public static function plugin_install_link( $title, $name, $v ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
[1070] Fix | Delete
$url = wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=' . $name ), 'install-plugin_' . $name );
[1071] Fix | Delete
[1072] Fix | Delete
$action = sprintf(
[1073] Fix | Delete
'<a href="%1$s" class="install-now" data-slug="%2$s" data-name="%3$s" aria-label="%4$s">%5$s</a>',
[1074] Fix | Delete
esc_url( $url ),
[1075] Fix | Delete
esc_attr( $name ),
[1076] Fix | Delete
esc_attr( $title ),
[1077] Fix | Delete
esc_attr( sprintf( __( 'Install %s', 'litespeed-cache' ), $title ) ),
[1078] Fix | Delete
esc_html__( 'Install Now', 'litespeed-cache' )
[1079] Fix | Delete
);
[1080] Fix | Delete
[1081] Fix | Delete
return $action;
[1082] Fix | Delete
}
[1083] Fix | Delete
[1084] Fix | Delete
/**
[1085] Fix | Delete
* Generate upgrade link.
[1086] Fix | Delete
*
[1087] Fix | Delete
* @since 2.4.2
[1088] Fix | Delete
* @access public
[1089] Fix | Delete
*
[1090] Fix | Delete
* @param string $title Plugin title.
[1091] Fix | Delete
* @param string $name Slug.
[1092] Fix | Delete
* @param string $v Version string.
[1093] Fix | Delete
* @return string HTML message with links.
[1094] Fix | Delete
*/
[1095] Fix | Delete
public static function plugin_upgrade_link( $title, $name, $v ) {
[1096] Fix | Delete
$details_url = self_admin_url( 'plugin-install.php?tab=plugin-information&plugin=' . $name . '&section=changelog&TB_iframe=true&width=600&height=800' );
[1097] Fix | Delete
$file = $name . '/' . $name . '.php';
[1098] Fix | Delete
[1099] Fix | Delete
$msg = sprintf(
[1100] Fix | Delete
/* translators: 1: details URL, 2: class/aria, 3: version, 4: update URL, 5: class/aria */
[1101] Fix | Delete
__('<a href="%1$s" %2$s>View version %3$s details</a> or <a href="%4$s" %5$s target="_blank">update now</a>.', 'litespeed-cache'),
[1102] Fix | Delete
esc_url( $details_url ),
[1103] Fix | Delete
sprintf(
[1104] Fix | Delete
'class="thickbox open-plugin-details-modal" aria-label="%s"',
[1105] Fix | Delete
esc_attr(
[1106] Fix | Delete
sprintf(
[1107] Fix | Delete
/* translators: 1: plugin title, 2: version */
[1108] Fix | Delete
__( 'View %1$s version %2$s details', 'litespeed-cache' ),
[1109] Fix | Delete
$title,
[1110] Fix | Delete
$v
[1111] Fix | Delete
)
[1112] Fix | Delete
)
[1113] Fix | Delete
),
[1114] Fix | Delete
esc_html( $v ),
[1115] Fix | Delete
esc_url( wp_nonce_url( self_admin_url( 'update.php?action=upgrade-plugin&plugin=' ) . $file, 'upgrade-plugin_' . $file ) ),
[1116] Fix | Delete
sprintf(
[1117] Fix | Delete
'class="update-link" aria-label="%s"',
[1118] Fix | Delete
esc_attr(
[1119] Fix | Delete
sprintf(
[1120] Fix | Delete
/* translators: %s: plugin title */
[1121] Fix | Delete
__( 'Update %s now', 'litespeed-cache' ),
[1122] Fix | Delete
$title
[1123] Fix | Delete
)
[1124] Fix | Delete
)
[1125] Fix | Delete
)
[1126] Fix | Delete
);
[1127] Fix | Delete
[1128] Fix | Delete
return $msg;
[1129] Fix | Delete
}
[1130] Fix | Delete
[1131] Fix | Delete
/**
[1132] Fix | Delete
* Finalize buffer by GUI class.
[1133] Fix | Delete
*
[1134] Fix | Delete
* @since 1.6
[1135] Fix | Delete
* @access public
[1136] Fix | Delete
*
[1137] Fix | Delete
* @param string $buffer HTML buffer.
[1138] Fix | Delete
* @return string Filtered buffer.
[1139] Fix | Delete
*/
[1140] Fix | Delete
public function finalize( $buffer ) {
[1141] Fix | Delete
$buffer = $this->_clean_wrapper( $buffer );
[1142] Fix | Delete
[1143] Fix | Delete
// Maybe restore doc.ref.
[1144] Fix | Delete
if ( $this->conf( Base::O_GUEST ) && false !== strpos( $buffer, '<head>' ) && defined( 'LITESPEED_IS_HTML' ) ) {
[1145] Fix | Delete
$buffer = $this->_enqueue_guest_docref_js( $buffer );
[1146] Fix | Delete
}
[1147] Fix | Delete
[1148] Fix | Delete
if ( defined( 'LITESPEED_GUEST' ) && LITESPEED_GUEST && false !== strpos( $buffer, '</body>' ) && defined( 'LITESPEED_IS_HTML' ) ) {
[1149] Fix | Delete
$buffer = $this->_enqueue_guest_js( $buffer );
[1150] Fix | Delete
}
[1151] Fix | Delete
[1152] Fix | Delete
return $buffer;
[1153] Fix | Delete
}
[1154] Fix | Delete
[1155] Fix | Delete
/**
[1156] Fix | Delete
* Append guest restore doc.ref JS for organic traffic count.
[1157] Fix | Delete
*
[1158] Fix | Delete
* @since 4.4.6
[1159] Fix | Delete
*
[1160] Fix | Delete
* @param string $buffer HTML buffer.
[1161] Fix | Delete
* @return string Buffer with inline script injected.
[1162] Fix | Delete
*/
[1163] Fix | Delete
private function _enqueue_guest_docref_js( $buffer ) {
[1164] Fix | Delete
$js_con = File::read( LSCWP_DIR . self::LIB_GUEST_DOCREF_JS );
[1165] Fix | Delete
$buffer = preg_replace( '/<head>/', '<head><script data-no-optimize="1">' . $js_con . '</script>', $buffer, 1 );
[1166] Fix | Delete
return $buffer;
[1167] Fix | Delete
}
[1168] Fix | Delete
[1169] Fix | Delete
/**
[1170] Fix | Delete
* Append guest JS to update vary.
[1171] Fix | Delete
*
[1172] Fix | Delete
* @since 4.0
[1173] Fix | Delete
*
[1174] Fix | Delete
* @param string $buffer HTML buffer.
[1175] Fix | Delete
* @return string Buffer with inline script injected.
[1176] Fix | Delete
*/
[1177] Fix | Delete
private function _enqueue_guest_js( $buffer ) {
[1178] Fix | Delete
$js_con = File::read( LSCWP_DIR . self::LIB_GUEST_JS );
[1179] Fix | Delete
// Build path for guest endpoint using wp_parse_url for compatibility.
[1180] Fix | Delete
$guest_update_path = wp_parse_url( LSWCP_PLUGIN_URL . self::PHP_GUEST, PHP_URL_PATH );
[1181] Fix | Delete
$js_con = str_replace( 'litespeed_url', esc_url( $guest_update_path ), $js_con );
[1182] Fix | Delete
$buffer = preg_replace( '/<\/body>/', '<script data-no-optimize="1">' . $js_con . '</script></body>', $buffer, 1 );
[1183] Fix | Delete
return $buffer;
[1184] Fix | Delete
}
[1185] Fix | Delete
[1186] Fix | Delete
/**
[1187] Fix | Delete
* Clean wrapper from buffer.
[1188] Fix | Delete
*
[1189] Fix | Delete
* @since 1.4
[1190] Fix | Delete
* @since 1.6 Converted to private with adding prefix _.
[1191] Fix | Delete
* @access private
[1192] Fix | Delete
*
[1193] Fix | Delete
* @param string $buffer HTML buffer.
[1194] Fix | Delete
* @return string Cleaned buffer.
[1195] Fix | Delete
*/
[1196] Fix | Delete
private function _clean_wrapper( $buffer ) {
[1197] Fix | Delete
if ( self::$_clean_counter < 1 ) {
[1198] Fix | Delete
self::debug2( 'bypassed by no counter' );
[1199] Fix | Delete
return $buffer;
[1200] Fix | Delete
}
[1201] Fix | Delete
[1202] Fix | Delete
self::debug2( 'start cleaning counter ' . self::$_clean_counter );
[1203] Fix | Delete
[1204] Fix | Delete
for ( $i = 1; $i <= self::$_clean_counter; $i++ ) {
[1205] Fix | Delete
// If miss beginning.
[1206] Fix | Delete
$start = strpos( $buffer, self::clean_wrapper_begin( $i ) );
[1207] Fix | Delete
if ( false === $start ) {
[1208] Fix | Delete
$buffer = str_replace( self::clean_wrapper_end( $i ), '', $buffer );
[1209] Fix | Delete
self::debug2( "lost beginning wrapper $i" );
[1210] Fix | Delete
continue;
[1211] Fix | Delete
}
[1212] Fix | Delete
[1213] Fix | Delete
// If miss end.
[1214] Fix | Delete
$end_wrapper = self::clean_wrapper_end( $i );
[1215] Fix | Delete
$end = strpos( $buffer, $end_wrapper );
[1216] Fix | Delete
if ( false === $end ) {
[1217] Fix | Delete
$buffer = str_replace( self::clean_wrapper_begin( $i ), '', $buffer );
[1218] Fix | Delete
self::debug2( "lost ending wrapper $i" );
[1219] Fix | Delete
continue;
[1220] Fix | Delete
}
[1221] Fix | Delete
[1222] Fix | Delete
// Now replace wrapped content.
[1223] Fix | Delete
$buffer = substr_replace( $buffer, '', $start, $end - $start + strlen( $end_wrapper ) );
[1224] Fix | Delete
self::debug2( "cleaned wrapper $i" );
[1225] Fix | Delete
}
[1226] Fix | Delete
[1227] Fix | Delete
return $buffer;
[1228] Fix | Delete
}
[1229] Fix | Delete
[1230] Fix | Delete
/**
[1231] Fix | Delete
* Display a to-be-removed HTML wrapper (begin tag).
[1232] Fix | Delete
*
[1233] Fix | Delete
* @since 1.4
[1234] Fix | Delete
* @access public
[1235] Fix | Delete
*
[1236] Fix | Delete
* @param int|false $counter Optional explicit wrapper id; auto-increment if false.
[1237] Fix | Delete
* @return string Wrapper begin HTML comment.
[1238] Fix | Delete
*/
[1239] Fix | Delete
public static function clean_wrapper_begin( $counter = false ) {
[1240] Fix | Delete
if ( false === $counter ) {
[1241] Fix | Delete
++self::$_clean_counter;
[1242] Fix | Delete
$counter = self::$_clean_counter;
[1243] Fix | Delete
self::debug( 'clean wrapper ' . $counter . ' begin' );
[1244] Fix | Delete
}
[1245] Fix | Delete
return '<!-- LiteSpeed To Be Removed begin ' . $counter . ' -->';
[1246] Fix | Delete
}
[1247] Fix | Delete
[1248] Fix | Delete
/**
[1249] Fix | Delete
* Display a to-be-removed HTML wrapper (end tag).
[1250] Fix | Delete
*
[1251] Fix | Delete
* @since 1.4
[1252] Fix | Delete
* @access public
[1253] Fix | Delete
*
[1254] Fix | Delete
* @param int|false $counter Optional explicit wrapper id; use latest if false.
[1255] Fix | Delete
* @return string Wrapper end HTML comment.
[1256] Fix | Delete
*/
[1257] Fix | Delete
public static function clean_wrapper_end( $counter = false ) {
[1258] Fix | Delete
if ( false === $counter ) {
[1259] Fix | Delete
$counter = self::$_clean_counter;
[1260] Fix | Delete
self::debug( 'clean wrapper ' . $counter . ' end' );
[1261] Fix | Delete
}
[1262] Fix | Delete
return '<!-- LiteSpeed To Be Removed end ' . $counter . ' -->';
[1263] Fix | Delete
}
[1264] Fix | Delete
}
[1265] Fix | Delete
[1266] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function