Plugin Directory

Changeset 3076030


Ignore:
Timestamp:
04/23/2024 06:50:27 PM (20 months ago)
Author:
LiteSpeedTech
Message:

Release v6.2

Location:
litespeed-cache
Files:
336 added
1 deleted
41 edited

Legend:

Unmodified
Added
Removed
  • litespeed-cache/trunk/assets/css/litespeed.css

    r3031822 r3076030  
    219219    .litespeed-width-3-10 {
    220220        width: 100%;
     221        padding: 0;
    221222    }
    222223}
     
    465466}
    466467
    467 .litespeed-wrap .nav-tab-wrapper {
    468     display: flex;
    469     flex-wrap: wrap-reverse;
     468@media screen and (max-width: 600px) {
     469    .litespeed-wrap h2 .nav-tab {
     470        border-bottom: 1px solid #c3c4c7;
     471        margin: 10px 10px 0 0;
     472    }
     473
     474    .litespeed-wrap .nav-tab-wrapper {
     475        margin-bottom: 15px;
     476    }
     477
     478    .litespeed-desc a,
     479    .litespeed-body p > a:not(.button) {
     480        word-break: break-word;
     481    }
    470482}
    471483
     
    495507}
    496508
    497 .litespeed-header + .litespeed-body {
    498     border-top: none;
     509@media screen and (min-width: 681px) {
     510    .litespeed-header + .litespeed-body {
     511        border-top: none;
     512    }
    499513}
    500514
     
    543557}
    544558
    545 .litespeed-div {
    546     display: inline-block;
    547     min-width: 100px;
    548 }
    549 
    550559.litespeed-div .submit {
    551     margin: 5px;
    552     padding: 5px;
     560    margin-top: 0;
     561}
     562
     563@media screen and (min-width: 681px) {
     564    .litespeed-div {
     565        display: inline-block;
     566        min-width: 100px;
     567    }
     568
     569    .litespeed-div .submit {
     570        margin: 5px;
     571        padding: 5px;
     572    }
     573}
     574
     575@media screen and (max-width: 680px) {
     576    .litespeed-desc + .litespeed-desc.litespeed-left20 {
     577        margin-left: 0 !important;
     578    }
     579
     580    .litespeed-desc .litespeed-callout.notice-warning.inline {
     581        word-break: break-word;
     582    }
    553583}
    554584
     
    767797.litespeed-block .litespeed-callout:last-child {
    768798    margin-bottom: 0;
     799}
     800
     801@media screen and (max-width: 600px) {
     802    .litespeed-block {
     803        flex-direction: column;
     804    }
     805
     806    .litespeed-block .litespeed-col {
     807        padding-right: 0;
     808    }
    769809}
    770810
     
    17571797}
    17581798
     1799@media screen and (max-width: 782px) {
     1800    .litespeed-radio-row {
     1801        padding-left: 2rem;
     1802    }
     1803}
     1804
    17591805/* =======================================
    17601806           FORM - layout
     
    18021848.litespeed-input-short {
    18031849    width: 45px;
     1850}
     1851
     1852@media screen and (max-width: 680px) {
     1853    .litespeed-input-short2 {
     1854        width: 160px;
     1855    }
     1856
     1857    .litespeed-input-short {
     1858        width: 50px;
     1859    }
    18041860}
    18051861
     
    18901946    }
    18911947
     1948    .litespeed-body .litespeed-table td {
     1949        display: block;
     1950        max-width: 100%;
     1951    }
     1952
     1953    .litespeed-body .litespeed-table textarea,
     1954    .litespeed-body .litespeed-table input.litespeed-regular-text {
     1955        width: 100% !important;
     1956    }
     1957
    18921958    .litespeed-wrap .litespeed-float-submit {
    18931959        display: none;
     
    18981964    }
    18991965
    1900     .litespeed-body .regular-text {
     1966    .litespeed-body .regular-text:not(.litespeed-input-short) {
    19011967        width: 100%;
    19021968    }
     
    19091975        margin-bottom: 1.7em;
    19101976        margin-top: 0;
     1977        margin-right: 0;
     1978    }
     1979
     1980    .litespeed-switch {
     1981        max-width: 100%;
     1982        flex-wrap: wrap;
     1983    }
     1984
     1985    .litespeed-switch + .litespeed-warning {
     1986        display: block;
     1987        margin-top: 10px;
     1988    }
     1989
     1990    input.litespeed-input[type='file'] {
     1991        max-width: calc(100% - 24px);
     1992        min-width: 0;
     1993    }
     1994
     1995    .litespeed-body .litespeed-table .litespeed-row-flex {
     1996        flex-direction: column;
    19111997    }
    19121998}
     
    23312417}
    23322418
     2419@media screen and (max-width: 600px) {
     2420    .litespeed-cdn-mapping-col1 {
     2421        max-width: 100%;
     2422    }
     2423}
     2424
    23332425/* =======================================
    23342426        VIEW - crawler
     
    23432435#cookie_crawler > p:first-child {
    23442436    margin-top: 5px;
     2437}
     2438
     2439.litespeed-crawler-sitemap-nav {
     2440    display: flex;
     2441    justify-content: space-between;
     2442}
     2443
     2444.litespeed-crawler-sitemap-nav > div {
     2445    margin-top: 10px;
     2446}
     2447
     2448@media screen and (max-width: 680px) {
     2449    .litespeed-crawler-sitemap-nav {
     2450        display: block;
     2451    }
     2452
     2453    .litespeed-table-responsive {
     2454        clear: both;
     2455        overflow-x: auto;
     2456        -webkit-overflow-scrolling: touch;
     2457    }
     2458
     2459    .litespeed-table-responsive table {
     2460        width: 100%;
     2461    }
     2462
     2463    .litespeed-table-responsive th {
     2464        text-wrap: nowrap;
     2465    }
     2466
     2467    .litespeed-table-responsive [data-crawler-list].wp-list-table td:nth-child(2) {
     2468        min-width: 115px;
     2469    }
     2470
     2471    .litespeed-wrap input[name='kw'] {
     2472        width: 100% !important;
     2473    }
    23452474}
    23462475
     
    25312660    display: flex;
    25322661    align-items: flex-end;
     2662    flex-wrap: wrap;
    25332663}
    25342664
     
    25522682        padding-right: 0;
    25532683        margin-bottom: 1rem;
     2684    }
     2685}
     2686
     2687@media screen and (max-width: 680px) {
     2688    .litespeed-img-optim-actions .button + .button.button-secondary {
     2689        margin-left: 0;
     2690        margin-top: 10px;
    25542691    }
    25552692}
     
    30153152    }
    30163153
     3154    .litespeed-postbox-double-content .litespeed-postbox-double-col:nth-child(2) {
     3155        padding-left: 0;
     3156        margin-top: 7px;
     3157    }
     3158
    30173159    .litespeed-postbox-double-content {
    30183160        flex-wrap: wrap;
     
    32673409.litespeed-body tbody > tr > th.litespeed-padding-left {
    32683410    padding-left: 3em;
     3411}
     3412@media screen and (max-width: 680px) {
     3413    .litespeed-body tbody > tr > th.litespeed-padding-left {
     3414        padding-left: 10px;
     3415    }
     3416
     3417    .litespeed-body tbody > tr > th.litespeed-padding-left:before {
     3418        content: '\2014\2014';
     3419        color: #ccc;
     3420        margin-right: 5px;
     3421    }
    32693422}
    32703423
     
    38774030    width: 100%;
    38784031}
     4032
     4033/* =======================================
     4034        Misc Mobile TWEAKS
     4035======================================= */
     4036
     4037@media screen and (max-width: 680px) {
     4038    .litespeed-wrap .litespeed-body .field-col {
     4039        margin-left: 0;
     4040    }
     4041
     4042    .litespeed-width-auto.litespeed-table-compact td {
     4043        font-size: 12px;
     4044        word-break: break-word;
     4045    }
     4046
     4047    input#input_api_key + .button {
     4048        margin-top: 10px;
     4049        margin-left: 0;
     4050    }
     4051
     4052    input#input_api_key + .button + .litespeed-desc {
     4053        display: block;
     4054    }
     4055
     4056    input#input_api_key + .button + .litespeed-desc + .button {
     4057        margin-left: 0;
     4058    }
     4059
     4060    .litespeed-body .litespeed-table td .litespeed-right {
     4061        float: none !important;
     4062    }
     4063
     4064    .litespeed-title a.litespeed-learn-more,
     4065    .litespeed-title-short a.litespeed-learn-more {
     4066        display: block;
     4067        margin-left: 0;
     4068        margin-top: 5px;
     4069    }
     4070}
     4071
     4072.litespeed-wrap .litespeed-redetect[aria-label][data-balloon-pos][data-balloon-pos='up']:after {
     4073    left: auto;
     4074    right: 0;
     4075    transform: translate(0%, var(--balloon-move));
     4076}
     4077
     4078.litespeed-wrap .litespeed-redetect[aria-label][data-balloon-pos][data-balloon-pos='up']:hover:after,
     4079.litespeed-wrap .litespeed-redetect[aria-label][data-balloon-pos][data-balloon-pos='up'][data-balloon-visible]:after {
     4080    transform: translate(0, 0);
     4081}
  • litespeed-cache/trunk/cli/image.cls.php

    r3009052 r3076030  
    11<?php
     2
    23namespace LiteSpeed\CLI;
    34
     
    2223
    2324        $this->__img_optm = Img_Optm::cls();
     25    }
     26
     27    /**
     28     * Batch toggle optimized images w/ original images
     29     *
     30     * ## OPTIONS
     31     *
     32     * ## EXAMPLES
     33     *
     34     *     # Switch to original images
     35     *     $ wp litespeed-image batch_switch orig
     36     *
     37     *     # Switch to optimized images
     38     *     $ wp litespeed-image batch_switch optm
     39     *
     40     */
     41    public function batch_switch($param)
     42    {
     43        $type = $param[0];
     44        $this->__img_optm->batch_switch($type);
    2445    }
    2546
  • litespeed-cache/trunk/data/const.default.ini

    r3009052 r3076030  
    118118cache-page_login = true
    119119
    120 cache-favicon = true
    121 
    122120cache-resources = true
    123121
     
    477475;; --------------        Media      ----------------- ;;
    478476;; -------------------------------------------------- ;;
    479 
    480 ; O_MEDIA_PRELOAD_FEATURED
    481 media-preload_featured = false
    482477
    483478; O_MEDIA_LAZY
  • litespeed-cache/trunk/data/const.network_default.ini

    r2808204 r3076030  
    2222;; --------------       Cache       ----------------- ;;
    2323;; -------------------------------------------------- ;;
    24 
    25 cache-favicon = true
    2624
    2725cache-resources = true
  • litespeed-cache/trunk/data/esi.nonces.txt

    r3031822 r3076030  
    7070# Woo nonce
    7171woocommerce-login
     72
     73# Premium Addons for Elementor
     74pa-blog-widget-nonce
  • litespeed-cache/trunk/data/js_defer_excludes.txt

    r2869601 r3076030  
    55
    66# JS file URL excludes
     7adsbygoogle
    78
    89stats.wp.com/e-
  • litespeed-cache/trunk/data/preset/advanced.data

    r2808204 r3076030  
    1414
    1515["cache-page_login",true]
    16 
    17 ["cache-favicon",true]
    1816
    1917["cache-resources",true]
  • litespeed-cache/trunk/data/preset/aggressive.data

    r2808204 r3076030  
    1414
    1515["cache-page_login",true]
    16 
    17 ["cache-favicon",true]
    1816
    1917["cache-resources",true]
  • litespeed-cache/trunk/data/preset/basic.data

    r2808204 r3076030  
    1414
    1515["cache-page_login",true]
    16 
    17 ["cache-favicon",true]
    1816
    1917["cache-resources",true]
  • litespeed-cache/trunk/data/preset/essentials.data

    r2808204 r3076030  
    1414
    1515["cache-page_login",true]
    16 
    17 ["cache-favicon",true]
    1816
    1917["cache-resources",true]
  • litespeed-cache/trunk/data/preset/extreme.data

    r2808204 r3076030  
    1414
    1515["cache-page_login",true]
    16 
    17 ["cache-favicon",true]
    1816
    1917["cache-resources",true]
  • litespeed-cache/trunk/lang/litespeed-cache.pot

    r3031822 r3076030  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: LiteSpeed Cache 6.1\n"
     5"Project-Id-Version: LiteSpeed Cache 6.2\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/litespeed-cache\n"
    7 "POT-Creation-Date: 2024-02-05 14:52:07+00:00\n"
     7"POT-Creation-Date: 2024-04-23 18:38:49+00:00\n"
    88"MIME-Version: 1.0\n"
    99"Content-Type: text/plain; charset=UTF-8\n"
     
    4545msgstr ""
    4646
    47 #: src/activation.cls.php:506 src/activation.cls.php:511
     47#: src/activation.cls.php:508 src/activation.cls.php:513
    4848msgid "Failed to upgrade."
    4949msgstr ""
    5050
    51 #: src/activation.cls.php:515
     51#: src/activation.cls.php:517
    5252msgid "Upgraded successfully."
    5353msgstr ""
     
    7474msgstr ""
    7575
    76 #: src/admin-display.cls.php:132 src/gui.cls.php:625
     76#: src/admin-display.cls.php:132 src/gui.cls.php:628
    7777#: tpl/dash/dashboard.tpl.php:52 tpl/dash/network_dash.tpl.php:27
    7878#: tpl/presets/standard.tpl.php:24
     
    8888msgstr ""
    8989
    90 #: src/admin-display.cls.php:138 src/lang.cls.php:253
     90#: src/admin-display.cls.php:138 src/lang.cls.php:251
    9191msgid "Crawler"
    9292msgstr ""
     
    124124msgstr ""
    125125
    126 #: src/admin-display.cls.php:244 src/admin-display.cls.php:948
    127 #: src/admin-display.cls.php:976 src/admin-display.cls.php:1027
    128 #: src/doc.cls.php:41 tpl/cache/settings-cache.tpl.php:19
     126#: src/admin-display.cls.php:244 src/admin-display.cls.php:949
     127#: src/admin-display.cls.php:977 src/admin-display.cls.php:1028
     128#: src/doc.cls.php:41 tpl/cache/settings-cache.tpl.php:22
    129129#: tpl/cache/settings_inc.cache_mobile.tpl.php:71 tpl/cdn/settings.tpl.php:49
    130130#: tpl/page_optm/settings_css.tpl.php:189
    131 #: tpl/page_optm/settings_media.tpl.php:179
     131#: tpl/page_optm/settings_media.tpl.php:165
    132132#: tpl/toolbox/settings-debug.tpl.php:46
    133133msgid "ON"
    134134msgstr ""
    135135
    136 #: src/admin-display.cls.php:245 src/admin-display.cls.php:949
    137 #: src/admin-display.cls.php:976 src/admin-display.cls.php:1027
    138 #: tpl/cache/settings-cache.tpl.php:19
     136#: src/admin-display.cls.php:245 src/admin-display.cls.php:950
     137#: src/admin-display.cls.php:977 src/admin-display.cls.php:1028
     138#: tpl/cache/settings-cache.tpl.php:22
    139139#: tpl/cache/settings_inc.object.tpl.php:213 tpl/cdn/settings.tpl.php:54
    140140#: tpl/page_optm/settings_css.tpl.php:82 tpl/page_optm/settings_js.tpl.php:69
    141 #: tpl/page_optm/settings_media.tpl.php:182
     141#: tpl/page_optm/settings_media.tpl.php:168
    142142#: tpl/toolbox/settings-debug.tpl.php:46
    143143msgid "OFF"
    144144msgstr ""
    145145
    146 #: src/admin-display.cls.php:295 src/gui.cls.php:616
     146#: src/admin-display.cls.php:295 src/gui.cls.php:619
    147147msgid "Settings"
    148148msgstr ""
    149149
    150 #: src/admin-display.cls.php:527
     150#: src/admin-display.cls.php:528
    151151msgid "Dismiss"
    152152msgstr ""
    153153
    154 #: src/admin-display.cls.php:813 src/admin-display.cls.php:817
     154#: src/admin-display.cls.php:814 src/admin-display.cls.php:818
    155155msgid "Save Changes"
    156156msgstr ""
    157157
    158 #: src/admin-display.cls.php:1038
     158#: src/admin-display.cls.php:1039
    159159msgid "This setting is overwritten by the PHP constant %s"
    160160msgstr ""
    161161
    162 #: src/admin-display.cls.php:1041
     162#: src/admin-display.cls.php:1042
    163163msgid "This setting is overwritten by the primary site setting"
    164164msgstr ""
    165165
    166 #: src/admin-display.cls.php:1043
     166#: src/admin-display.cls.php:1044
    167167msgid "This setting is overwritten by the Network setting"
    168168msgstr ""
    169169
    170 #: src/admin-display.cls.php:1047
     170#: src/admin-display.cls.php:1048
    171171msgid "currently set to %s"
    172172msgstr ""
    173173
    174 #: src/admin-display.cls.php:1058 tpl/cache/settings_inc.object.tpl.php:106
     174#: src/admin-display.cls.php:1059 tpl/cache/settings_inc.object.tpl.php:106
    175175#: tpl/crawler/settings-general.tpl.php:64
    176176#: tpl/crawler/settings-general.tpl.php:78
     
    179179msgstr ""
    180180
    181 #: src/admin-display.cls.php:1090 src/admin-display.cls.php:1094
     181#: src/admin-display.cls.php:1091 src/admin-display.cls.php:1095
    182182#: tpl/cdn/settings.tpl.php:99
    183183msgid "Default value"
    184184msgstr ""
    185185
    186 #: src/admin-display.cls.php:1119
     186#: src/admin-display.cls.php:1120
    187187msgid "Invalid rewrite rule"
    188188msgstr ""
    189189
    190 #: src/admin-display.cls.php:1137
     190#: src/admin-display.cls.php:1138
    191191msgid "Path must end with %s"
    192192msgstr ""
    193193
    194 #: src/admin-display.cls.php:1156
     194#: src/admin-display.cls.php:1157
    195195msgid "Minimum value"
    196196msgstr ""
    197197
    198 #: src/admin-display.cls.php:1159
     198#: src/admin-display.cls.php:1160
    199199msgid "Maximum value"
    200200msgstr ""
    201201
    202 #: src/admin-display.cls.php:1171
     202#: src/admin-display.cls.php:1172
    203203msgid "Zero, or"
    204204msgstr ""
    205205
    206 #: src/admin-display.cls.php:1177
     206#: src/admin-display.cls.php:1178
    207207msgid "Larger than"
    208208msgstr ""
    209209
    210 #: src/admin-display.cls.php:1179
     210#: src/admin-display.cls.php:1180
    211211msgid "Smaller than"
    212212msgstr ""
    213213
    214 #: src/admin-display.cls.php:1182
     214#: src/admin-display.cls.php:1183
    215215msgid "Value range"
    216216msgstr ""
    217217
    218 #: src/admin-display.cls.php:1208
     218#: src/admin-display.cls.php:1209
    219219msgid "Invalid IP"
    220220msgstr ""
    221221
    222 #: src/admin-display.cls.php:1229 tpl/cache/settings-esi.tpl.php:95
     222#: src/admin-display.cls.php:1230 tpl/cache/settings-esi.tpl.php:95
    223223#: tpl/page_optm/settings_css.tpl.php:192
    224224#: tpl/page_optm/settings_html.tpl.php:106
    225 #: tpl/page_optm/settings_media.tpl.php:259
     225#: tpl/page_optm/settings_media.tpl.php:245
    226226#: tpl/page_optm/settings_media_exc.tpl.php:26
    227227#: tpl/page_optm/settings_tuning.tpl.php:39
     
    236236msgstr ""
    237237
    238 #: src/admin-display.cls.php:1231
     238#: src/admin-display.cls.php:1232
    239239msgid "Server variable(s) %s available to override this setting."
    240240msgstr ""
    241241
    242 #: src/admin-display.cls.php:1244
     242#: src/admin-display.cls.php:1245
    243243msgid "The URLs will be compared to the REQUEST_URI server variable."
    244244msgstr ""
    245245
    246 #: src/admin-display.cls.php:1245
     246#: src/admin-display.cls.php:1246
    247247msgid "For example, for %s, %s can be used here."
    248248msgstr ""
    249249
    250 #: src/admin-display.cls.php:1247
     250#: src/admin-display.cls.php:1248
    251251msgid "To match the beginning, add %s to the beginning of the item."
    252252msgstr ""
    253253
    254 #: src/admin-display.cls.php:1248
     254#: src/admin-display.cls.php:1249
    255255msgid "To do an exact match, add %s to the end of the URL."
    256256msgstr ""
    257257
    258 #: src/admin-display.cls.php:1249 src/doc.cls.php:114
     258#: src/admin-display.cls.php:1250 src/doc.cls.php:114
    259259msgid "One per line."
    260260msgstr ""
    261261
    262 #: src/admin-display.cls.php:1264
     262#: src/admin-display.cls.php:1265
    263263msgid "%s groups"
    264264msgstr ""
    265265
    266 #: src/admin-display.cls.php:1267
     266#: src/admin-display.cls.php:1268
    267267msgid "%s images"
    268268msgstr ""
    269269
    270 #: src/admin-display.cls.php:1276
     270#: src/admin-display.cls.php:1277
    271271msgid "%s group"
    272272msgstr ""
    273273
    274 #: src/admin-display.cls.php:1279
     274#: src/admin-display.cls.php:1280
    275275msgid "%s image"
    276276msgstr ""
     
    343343msgstr ""
    344344
    345 #: src/cdn-setup.cls.php:348 src/cloud.cls.php:828 src/cloud.cls.php:836
    346 #: src/cloud.cls.php:1250
     345#: src/cdn-setup.cls.php:348 src/cloud.cls.php:829 src/cloud.cls.php:837
     346#: src/cloud.cls.php:1252
    347347msgid "Message from QUIC.cloud server"
    348348msgstr ""
    349349
    350 #: src/cloud.cls.php:387 src/cloud.cls.php:400 src/cloud.cls.php:444
    351 #: src/cloud.cls.php:469 src/cloud.cls.php:622 src/cloud.cls.php:1219
     350#: src/cloud.cls.php:388 src/cloud.cls.php:401 src/cloud.cls.php:445
     351#: src/cloud.cls.php:470 src/cloud.cls.php:623 src/cloud.cls.php:1221
    352352msgid "Cloud Error"
    353353msgstr ""
    354354
    355 #: src/cloud.cls.php:444
     355#: src/cloud.cls.php:445
    356356msgid "No available Cloud Node."
    357357msgstr ""
    358358
    359 #: src/cloud.cls.php:469
     359#: src/cloud.cls.php:470
    360360msgid "No available Cloud Node after checked server load."
    361361msgstr ""
    362362
    363 #: src/cloud.cls.php:579
     363#: src/cloud.cls.php:580
    364364msgid "In order to use QC services, need a real domain name, cannot use an IP."
    365365msgstr ""
    366366
    367 #: src/cloud.cls.php:624
     367#: src/cloud.cls.php:625
    368368msgid "Please try after %1$s for service %2$s."
    369369msgstr ""
    370370
    371 #: src/cloud.cls.php:714 src/cloud.cls.php:737
     371#: src/cloud.cls.php:715 src/cloud.cls.php:738
    372372msgid "Failed to request via WordPress"
    373373msgstr ""
    374374
    375 #: src/cloud.cls.php:758
     375#: src/cloud.cls.php:759
    376376msgid ""
    377377"Cloud server refused the current request due to unpulled images. Please pull "
     
    379379msgstr ""
    380380
    381 #: src/cloud.cls.php:763
     381#: src/cloud.cls.php:764
    382382msgid ""
    383383"Your domain_key has been temporarily blocklisted to prevent abuse. You may "
     
    385385msgstr ""
    386386
    387 #: src/cloud.cls.php:770
     387#: src/cloud.cls.php:771
    388388msgid ""
    389389"Cloud server refused the current request due to rate limiting. Please try "
     
    391391msgstr ""
    392392
    393 #: src/cloud.cls.php:778
     393#: src/cloud.cls.php:779
    394394msgid "Redetected node"
    395395msgstr ""
    396396
    397 #: src/cloud.cls.php:786
     397#: src/cloud.cls.php:787
    398398msgid ""
    399399"We are working hard to improve your online service experience. The service "
     
    401401msgstr ""
    402402
    403 #: src/cloud.cls.php:844
     403#: src/cloud.cls.php:845
    404404msgid "Good news from QUIC.cloud server"
    405405msgstr ""
    406406
    407 #: src/cloud.cls.php:854
     407#: src/cloud.cls.php:855
    408408msgid "%1$s plugin version %2$s required for this action."
    409409msgstr ""
    410410
    411 #: src/cloud.cls.php:912 src/cloud.cls.php:1239
     411#: src/cloud.cls.php:913 src/cloud.cls.php:1241
    412412msgid "Failed to communicate with QUIC.cloud server"
    413413msgstr ""
    414414
    415 #: src/cloud.cls.php:955
     415#: src/cloud.cls.php:956
    416416msgid ""
    417417"Site not recognized. Domain Key has been automatically removed. Please "
     
    419419msgstr ""
    420420
    421 #: src/cloud.cls.php:956 src/error.cls.php:60
     421#: src/cloud.cls.php:957 src/error.cls.php:60
    422422msgid "Click here to set."
    423423msgstr ""
    424424
    425 #: src/cloud.cls.php:1030
     425#: src/cloud.cls.php:1031
    426426msgid "Cannot request REST API, no token saved."
    427427msgstr ""
    428428
    429 #: src/cloud.cls.php:1055
     429#: src/cloud.cls.php:1056
    430430msgid "Cloud REST Error"
    431431msgstr ""
    432432
    433 #: src/cloud.cls.php:1075
     433#: src/cloud.cls.php:1076
    434434msgid "Unknown error."
    435435msgstr ""
    436436
    437 #: src/cloud.cls.php:1079
     437#: src/cloud.cls.php:1080
    438438msgid "Contact QUIC.cloud support"
    439439msgstr ""
    440440
    441 #: src/cloud.cls.php:1081
     441#: src/cloud.cls.php:1082
    442442msgid "Cloud REST API returned error: "
    443443msgstr ""
    444444
    445 #: src/cloud.cls.php:1258
     445#: src/cloud.cls.php:1260
    446446msgid ""
    447447"Applied for Domain Key successfully. Please wait for result. Domain Key will "
     
    449449msgstr ""
    450450
    451 #: src/cloud.cls.php:1314
     451#: src/cloud.cls.php:1316
    452452msgid ""
    453453"Congratulations, your Domain Key has been approved! The setting has been "
     
    455455msgstr ""
    456456
    457 #: src/cloud.cls.php:1413
     457#: src/cloud.cls.php:1415
    458458msgid "QUIC.cloud account has been created and successfully linked."
    459459msgstr ""
    460460
    461 #: src/cloud.cls.php:1415
     461#: src/cloud.cls.php:1417
    462462msgid "QUIC.cloud account has been successfully linked."
    463463msgstr ""
    464464
    465 #: src/cloud.cls.php:1423
     465#: src/cloud.cls.php:1425
    466466msgid "Domain Key hash mismatch"
    467467msgstr ""
    468468
    469 #: src/cloud.cls.php:1549
     469#: src/cloud.cls.php:1567
    470470msgid "Sync credit allowance with Cloud Server successfully."
    471471msgstr ""
     
    491491msgstr ""
    492492
    493 #: src/crawler-map.cls.php:339
     493#: src/crawler-map.cls.php:373
    494494msgid "No valid sitemap parsed for crawler."
    495495msgstr ""
    496496
    497 #: src/crawler-map.cls.php:344
     497#: src/crawler-map.cls.php:378
    498498msgid "Sitemap created successfully: %d items"
    499499msgstr ""
     
    533533msgstr ""
    534534
    535 #: src/data.upgrade.func.php:135 src/lang.cls.php:152
     535#: src/data.upgrade.func.php:135 src/lang.cls.php:151
    536536msgid "JS Combine"
    537537msgstr ""
     
    820820msgstr ""
    821821
    822 #: src/gui.cls.php:81
     822#: src/gui.cls.php:84
    823823msgid "%1$s %2$s files left in queue"
    824824msgstr ""
    825825
    826 #: src/gui.cls.php:82
     826#: src/gui.cls.php:85
    827827msgid "Cancel"
    828828msgstr ""
    829829
    830 #: src/gui.cls.php:400 src/gui.cls.php:415
     830#: src/gui.cls.php:403 src/gui.cls.php:418
    831831msgid "Purge this page"
    832832msgstr ""
    833833
    834 #: src/gui.cls.php:424
     834#: src/gui.cls.php:427
    835835msgid "Mark this page as "
    836836msgstr ""
    837837
    838 #: src/gui.cls.php:436
     838#: src/gui.cls.php:439
    839839msgid "Forced cacheable"
    840840msgstr ""
    841841
    842 #: src/gui.cls.php:447
     842#: src/gui.cls.php:450
    843843msgid "Non cacheable"
    844844msgstr ""
    845845
    846 #: src/gui.cls.php:458
     846#: src/gui.cls.php:461
    847847msgid "Private cache"
    848848msgstr ""
    849849
    850 #: src/gui.cls.php:469
     850#: src/gui.cls.php:472
    851851msgid "No optimization"
    852852msgstr ""
    853853
    854 #: src/gui.cls.php:477
     854#: src/gui.cls.php:480
    855855msgid "More settings"
    856856msgstr ""
    857857
    858 #: src/gui.cls.php:484 src/gui.cls.php:492 src/gui.cls.php:500
    859 #: src/gui.cls.php:509 src/gui.cls.php:519 src/gui.cls.php:529
    860 #: src/gui.cls.php:539 src/gui.cls.php:548 src/gui.cls.php:558
    861 #: src/gui.cls.php:568 src/gui.cls.php:634 src/gui.cls.php:642
    862 #: src/gui.cls.php:650 src/gui.cls.php:659 src/gui.cls.php:669
    863 #: src/gui.cls.php:679 src/gui.cls.php:689 src/gui.cls.php:699
    864 #: src/gui.cls.php:708 src/gui.cls.php:718 src/gui.cls.php:728
    865 #: tpl/page_optm/settings_media.tpl.php:145 tpl/toolbox/purge.tpl.php:37
     858#: src/gui.cls.php:487 src/gui.cls.php:495 src/gui.cls.php:503
     859#: src/gui.cls.php:512 src/gui.cls.php:522 src/gui.cls.php:532
     860#: src/gui.cls.php:542 src/gui.cls.php:551 src/gui.cls.php:561
     861#: src/gui.cls.php:571 src/gui.cls.php:637 src/gui.cls.php:645
     862#: src/gui.cls.php:653 src/gui.cls.php:662 src/gui.cls.php:672
     863#: src/gui.cls.php:682 src/gui.cls.php:692 src/gui.cls.php:702
     864#: src/gui.cls.php:711 src/gui.cls.php:721 src/gui.cls.php:731
     865#: tpl/page_optm/settings_media.tpl.php:131 tpl/toolbox/purge.tpl.php:37
    866866#: tpl/toolbox/purge.tpl.php:43 tpl/toolbox/purge.tpl.php:52
    867867#: tpl/toolbox/purge.tpl.php:61 tpl/toolbox/purge.tpl.php:70
     
    872872msgstr ""
    873873
    874 #: src/gui.cls.php:492 src/gui.cls.php:592 src/gui.cls.php:642
     874#: src/gui.cls.php:495 src/gui.cls.php:595 src/gui.cls.php:645
    875875msgid "LSCache"
    876876msgstr ""
    877877
    878 #: src/gui.cls.php:500 src/gui.cls.php:650 tpl/toolbox/purge.tpl.php:43
     878#: src/gui.cls.php:503 src/gui.cls.php:653 tpl/toolbox/purge.tpl.php:43
    879879msgid "CSS/JS Cache"
    880880msgstr ""
    881881
    882 #: src/gui.cls.php:509 src/gui.cls.php:669 src/lang.cls.php:118
     882#: src/gui.cls.php:512 src/gui.cls.php:672 src/lang.cls.php:117
    883883#: tpl/dash/dashboard.tpl.php:420 tpl/toolbox/purge.tpl.php:52
    884884msgid "Object Cache"
    885885msgstr ""
    886886
    887 #: src/gui.cls.php:519 src/gui.cls.php:679 tpl/toolbox/purge.tpl.php:61
     887#: src/gui.cls.php:522 src/gui.cls.php:682 tpl/toolbox/purge.tpl.php:61
    888888msgid "Opcode Cache"
    889889msgstr ""
    890890
    891 #: src/gui.cls.php:548 src/gui.cls.php:708 tpl/toolbox/purge.tpl.php:88
     891#: src/gui.cls.php:551 src/gui.cls.php:711 tpl/toolbox/purge.tpl.php:88
    892892msgid "Localized Resources"
    893893msgstr ""
    894894
    895 #: src/gui.cls.php:558 src/gui.cls.php:718
    896 #: tpl/page_optm/settings_media.tpl.php:145 tpl/toolbox/purge.tpl.php:97
     895#: src/gui.cls.php:561 src/gui.cls.php:721
     896#: tpl/page_optm/settings_media.tpl.php:131 tpl/toolbox/purge.tpl.php:97
    897897msgid "LQIP Cache"
    898898msgstr ""
    899899
    900 #: src/gui.cls.php:568 src/gui.cls.php:728 src/lang.cls.php:183
     900#: src/gui.cls.php:571 src/gui.cls.php:731 src/lang.cls.php:182
    901901#: tpl/presets/standard.tpl.php:42 tpl/toolbox/purge.tpl.php:106
    902902msgid "Gravatar Cache"
    903903msgstr ""
    904904
    905 #: src/gui.cls.php:592
     905#: src/gui.cls.php:595
    906906msgid "LiteSpeed Cache Purge All"
    907907msgstr ""
    908908
    909 #: src/gui.cls.php:608 tpl/cdn/entry.tpl.php:8 tpl/cdn/settings.tpl.php:194
     909#: src/gui.cls.php:611 tpl/cdn/entry.tpl.php:8 tpl/cdn/settings.tpl.php:194
    910910#: tpl/db_optm/entry.tpl.php:6
    911911msgid "Manage"
    912912msgstr ""
    913913
    914 #: src/gui.cls.php:659 tpl/cdn/manage.tpl.php:19
     914#: src/gui.cls.php:662 tpl/cdn/manage.tpl.php:19
    915915msgid "Cloudflare"
    916916msgstr ""
    917917
    918 #: src/gui.cls.php:748 tpl/img_optm/summary.tpl.php:141
     918#: src/gui.cls.php:751 tpl/img_optm/summary.tpl.php:141
    919919msgid "Remove all previous unfinished image optimization requests."
    920920msgstr ""
    921921
    922 #: src/gui.cls.php:749 tpl/img_optm/summary.tpl.php:143
     922#: src/gui.cls.php:752 tpl/img_optm/summary.tpl.php:143
    923923msgid "Clean Up Unfinished Data"
    924924msgstr ""
    925925
    926 #: src/gui.cls.php:768
     926#: src/gui.cls.php:771
    927927msgid "Install %s"
    928928msgstr ""
    929929
    930 #: src/gui.cls.php:769
     930#: src/gui.cls.php:772
    931931msgid "Install Now"
    932932msgstr ""
    933933
    934 #: src/gui.cls.php:789
     934#: src/gui.cls.php:792
    935935msgid ""
    936936"<a href=\"%1$s\" %2$s>View version %3$s details</a> or <a href=\"%4$s\" %5$s "
     
    938938msgstr ""
    939939
    940 #: src/gui.cls.php:791
     940#: src/gui.cls.php:794
    941941msgid "View %1$s version %2$s details"
    942942msgstr ""
    943943
    944 #: src/gui.cls.php:794
     944#: src/gui.cls.php:797
    945945msgid "Update %s now"
    946946msgstr ""
    947947
    948 #: src/htaccess.cls.php:341
     948#: src/htaccess.cls.php:340
    949949msgid "Mobile Agent Rules"
    950950msgstr ""
    951951
    952 #: src/htaccess.cls.php:819
     952#: src/htaccess.cls.php:808
    953953msgid ""
    954954"<p>Please add/replace the following codes into the beginning of %1$s:</p> "
     
    10161016msgstr ""
    10171017
    1018 #: src/img-optm.cls.php:1864
     1018#: src/img-optm.cls.php:1834
    10191019msgid "Switched images successfully."
    10201020msgstr ""
    10211021
    1022 #: src/img-optm.cls.php:1909 src/img-optm.cls.php:1955
     1022#: src/img-optm.cls.php:1934 src/img-optm.cls.php:1980
    10231023msgid "Switched to optimized file successfully."
    10241024msgstr ""
    10251025
    1026 #: src/img-optm.cls.php:1928
     1026#: src/img-optm.cls.php:1953
    10271027msgid "Disabled WebP file successfully."
    10281028msgstr ""
    10291029
    1030 #: src/img-optm.cls.php:1933
     1030#: src/img-optm.cls.php:1958
    10311031msgid "Enabled WebP file successfully."
    10321032msgstr ""
    10331033
    1034 #: src/img-optm.cls.php:1949
     1034#: src/img-optm.cls.php:1974
    10351035msgid "Restored original file successfully."
    10361036msgstr ""
    10371037
    1038 #: src/img-optm.cls.php:2006
     1038#: src/img-optm.cls.php:2031
    10391039msgid "Reset the optimized data successfully."
    10401040msgstr ""
     
    11731173
    11741174#: src/lang.cls.php:111
    1175 msgid "Cache favicon.ico"
    1176 msgstr ""
    1177 
    1178 #: src/lang.cls.php:112
    11791175msgid "Cache PHP Resources"
    11801176msgstr ""
    11811177
     1178#: src/lang.cls.php:112 tpl/cache/settings_inc.cache_mobile.tpl.php:71
     1179msgid "Cache Mobile"
     1180msgstr ""
     1181
    11821182#: src/lang.cls.php:113 tpl/cache/settings_inc.cache_mobile.tpl.php:71
    1183 msgid "Cache Mobile"
    1184 msgstr ""
    1185 
    1186 #: src/lang.cls.php:114 tpl/cache/settings_inc.cache_mobile.tpl.php:71
    11871183msgid "List of Mobile User Agents"
    11881184msgstr ""
    11891185
     1186#: src/lang.cls.php:114
     1187msgid "Private Cached URIs"
     1188msgstr ""
     1189
    11901190#: src/lang.cls.php:115
    1191 msgid "Private Cached URIs"
    1192 msgstr ""
    1193 
    1194 #: src/lang.cls.php:116
    11951191msgid "Drop Query String"
    11961192msgstr ""
    11971193
     1194#: src/lang.cls.php:118
     1195msgid "Method"
     1196msgstr ""
     1197
    11981198#: src/lang.cls.php:119
    1199 msgid "Method"
     1199msgid "Host"
    12001200msgstr ""
    12011201
    12021202#: src/lang.cls.php:120
    1203 msgid "Host"
     1203msgid "Port"
    12041204msgstr ""
    12051205
    12061206#: src/lang.cls.php:121
    1207 msgid "Port"
     1207msgid "Default Object Lifetime"
    12081208msgstr ""
    12091209
    12101210#: src/lang.cls.php:122
    1211 msgid "Default Object Lifetime"
     1211msgid "Username"
    12121212msgstr ""
    12131213
    12141214#: src/lang.cls.php:123
    1215 msgid "Username"
     1215msgid "Password"
    12161216msgstr ""
    12171217
    12181218#: src/lang.cls.php:124
    1219 msgid "Password"
     1219msgid "Redis Database ID"
    12201220msgstr ""
    12211221
    12221222#: src/lang.cls.php:125
    1223 msgid "Redis Database ID"
     1223msgid "Global Groups"
    12241224msgstr ""
    12251225
    12261226#: src/lang.cls.php:126
    1227 msgid "Global Groups"
     1227msgid "Do Not Cache Groups"
    12281228msgstr ""
    12291229
    12301230#: src/lang.cls.php:127
    1231 msgid "Do Not Cache Groups"
     1231msgid "Persistent Connection"
    12321232msgstr ""
    12331233
    12341234#: src/lang.cls.php:128
    1235 msgid "Persistent Connection"
     1235msgid "Cache WP-Admin"
    12361236msgstr ""
    12371237
    12381238#: src/lang.cls.php:129
    1239 msgid "Cache WP-Admin"
    1240 msgstr ""
    1241 
    1242 #: src/lang.cls.php:130
    12431239msgid "Store Transients"
    12441240msgstr ""
    12451241
     1242#: src/lang.cls.php:131
     1243msgid "Purge All On Upgrade"
     1244msgstr ""
     1245
    12461246#: src/lang.cls.php:132
    1247 msgid "Purge All On Upgrade"
    1248 msgstr ""
    1249 
    1250 #: src/lang.cls.php:133
    12511247msgid "Serve Stale"
    12521248msgstr ""
    12531249
    1254 #: src/lang.cls.php:134 tpl/cache/settings-purge.tpl.php:130
     1250#: src/lang.cls.php:133 tpl/cache/settings-purge.tpl.php:130
    12551251msgid "Scheduled Purge URLs"
    12561252msgstr ""
    12571253
    1258 #: src/lang.cls.php:135 tpl/cache/settings-purge.tpl.php:105
     1254#: src/lang.cls.php:134 tpl/cache/settings-purge.tpl.php:105
    12591255msgid "Scheduled Purge Time"
    12601256msgstr ""
    12611257
     1258#: src/lang.cls.php:135
     1259msgid "Force Cache URIs"
     1260msgstr ""
     1261
    12621262#: src/lang.cls.php:136
    1263 msgid "Force Cache URIs"
     1263msgid "Force Public Cache URIs"
    12641264msgstr ""
    12651265
    12661266#: src/lang.cls.php:137
    1267 msgid "Force Public Cache URIs"
     1267msgid "Do Not Cache URIs"
    12681268msgstr ""
    12691269
    12701270#: src/lang.cls.php:138
    1271 msgid "Do Not Cache URIs"
     1271msgid "Do Not Cache Query Strings"
    12721272msgstr ""
    12731273
    12741274#: src/lang.cls.php:139
    1275 msgid "Do Not Cache Query Strings"
     1275msgid "Do Not Cache Categories"
    12761276msgstr ""
    12771277
    12781278#: src/lang.cls.php:140
    1279 msgid "Do Not Cache Categories"
     1279msgid "Do Not Cache Tags"
    12801280msgstr ""
    12811281
    12821282#: src/lang.cls.php:141
    1283 msgid "Do Not Cache Tags"
     1283msgid "Do Not Cache Roles"
    12841284msgstr ""
    12851285
    12861286#: src/lang.cls.php:142
    1287 msgid "Do Not Cache Roles"
     1287msgid "CSS Minify"
    12881288msgstr ""
    12891289
    12901290#: src/lang.cls.php:143
    1291 msgid "CSS Minify"
     1291msgid "CSS Combine"
    12921292msgstr ""
    12931293
    12941294#: src/lang.cls.php:144
    1295 msgid "CSS Combine"
     1295msgid "CSS Combine External and Inline"
    12961296msgstr ""
    12971297
    12981298#: src/lang.cls.php:145
    1299 msgid "CSS Combine External and Inline"
     1299msgid "Generate UCSS"
    13001300msgstr ""
    13011301
    13021302#: src/lang.cls.php:146
    1303 msgid "Generate UCSS"
     1303msgid "UCSS Inline"
    13041304msgstr ""
    13051305
    13061306#: src/lang.cls.php:147
    1307 msgid "UCSS Inline"
     1307msgid "UCSS Selector Allowlist"
    13081308msgstr ""
    13091309
    13101310#: src/lang.cls.php:148
    1311 msgid "UCSS Selector Allowlist"
     1311msgid "UCSS File Excludes and Inline"
    13121312msgstr ""
    13131313
    13141314#: src/lang.cls.php:149
    1315 msgid "UCSS File Excludes and Inline"
     1315msgid "UCSS URI Excludes"
    13161316msgstr ""
    13171317
    13181318#: src/lang.cls.php:150
    1319 msgid "UCSS URI Excludes"
    1320 msgstr ""
    1321 
    1322 #: src/lang.cls.php:151
    13231319msgid "JS Minify"
    13241320msgstr ""
    13251321
     1322#: src/lang.cls.php:152
     1323msgid "JS Combine External and Inline"
     1324msgstr ""
     1325
    13261326#: src/lang.cls.php:153
    1327 msgid "JS Combine External and Inline"
     1327msgid "HTML Minify"
    13281328msgstr ""
    13291329
    13301330#: src/lang.cls.php:154
    1331 msgid "HTML Minify"
    1332 msgstr ""
    1333 
    1334 #: src/lang.cls.php:155
    13351331msgid "HTML Lazy Load Selectors"
    13361332msgstr ""
    13371333
    1338 #: src/lang.cls.php:156 tpl/page_optm/settings_tuning_css.tpl.php:131
     1334#: src/lang.cls.php:155 tpl/page_optm/settings_tuning_css.tpl.php:131
    13391335msgid "Load CSS Asynchronously"
    13401336msgstr ""
    13411337
     1338#: src/lang.cls.php:156
     1339msgid "CCSS Per URL"
     1340msgstr ""
     1341
    13421342#: src/lang.cls.php:157
    1343 msgid "CCSS Per URL"
    1344 msgstr ""
    1345 
    1346 #: src/lang.cls.php:158
    13471343msgid "Inline CSS Async Lib"
    13481344msgstr ""
    13491345
    1350 #: src/lang.cls.php:159 tpl/presets/standard.tpl.php:39
     1346#: src/lang.cls.php:158 tpl/presets/standard.tpl.php:39
    13511347msgid "Font Display Optimization"
    13521348msgstr ""
    13531349
     1350#: src/lang.cls.php:159
     1351msgid "Load JS Deferred"
     1352msgstr ""
     1353
    13541354#: src/lang.cls.php:160
    1355 msgid "Load JS Deferred"
     1355msgid "Localize Resources"
    13561356msgstr ""
    13571357
    13581358#: src/lang.cls.php:161
    1359 msgid "Localize Resources"
     1359msgid "Localization Files"
    13601360msgstr ""
    13611361
    13621362#: src/lang.cls.php:162
    1363 msgid "Localization Files"
     1363msgid "DNS Prefetch"
    13641364msgstr ""
    13651365
    13661366#: src/lang.cls.php:163
    1367 msgid "DNS Prefetch"
     1367msgid "DNS Prefetch Control"
    13681368msgstr ""
    13691369
    13701370#: src/lang.cls.php:164
    1371 msgid "DNS Prefetch Control"
     1371msgid "DNS Preconnect"
    13721372msgstr ""
    13731373
    13741374#: src/lang.cls.php:165
    1375 msgid "DNS Preconnect"
     1375msgid "CSS Excludes"
    13761376msgstr ""
    13771377
    13781378#: src/lang.cls.php:166
    1379 msgid "CSS Excludes"
     1379msgid "JS Delayed Includes"
    13801380msgstr ""
    13811381
    13821382#: src/lang.cls.php:167
    1383 msgid "JS Delayed Includes"
     1383msgid "JS Excludes"
    13841384msgstr ""
    13851385
    13861386#: src/lang.cls.php:168
    1387 msgid "JS Excludes"
     1387msgid "Remove Query Strings"
    13881388msgstr ""
    13891389
    13901390#: src/lang.cls.php:169
    1391 msgid "Remove Query Strings"
     1391msgid "Load Google Fonts Asynchronously"
    13921392msgstr ""
    13931393
    13941394#: src/lang.cls.php:170
    1395 msgid "Load Google Fonts Asynchronously"
     1395msgid "Remove Google Fonts"
    13961396msgstr ""
    13971397
    13981398#: src/lang.cls.php:171
    1399 msgid "Remove Google Fonts"
     1399msgid "Critical CSS Rules"
    14001400msgstr ""
    14011401
    14021402#: src/lang.cls.php:172
    1403 msgid "Critical CSS Rules"
     1403msgid "Separate CCSS Cache Post Types"
    14041404msgstr ""
    14051405
    14061406#: src/lang.cls.php:173
    1407 msgid "Separate CCSS Cache Post Types"
     1407msgid "Separate CCSS Cache URIs"
    14081408msgstr ""
    14091409
    14101410#: src/lang.cls.php:174
    1411 msgid "Separate CCSS Cache URIs"
     1411msgid "JS Deferred / Delayed Excludes"
    14121412msgstr ""
    14131413
    14141414#: src/lang.cls.php:175
    1415 msgid "JS Deferred / Delayed Excludes"
    1416 msgstr ""
    1417 
    1418 #: src/lang.cls.php:176
    14191415msgid "Guest Mode JS Excludes"
    14201416msgstr ""
    14211417
    1422 #: src/lang.cls.php:177 tpl/presets/standard.tpl.php:44
     1418#: src/lang.cls.php:176 tpl/presets/standard.tpl.php:44
    14231419msgid "Remove WordPress Emoji"
    14241420msgstr ""
    14251421
    1426 #: src/lang.cls.php:178 tpl/presets/standard.tpl.php:45
     1422#: src/lang.cls.php:177 tpl/presets/standard.tpl.php:45
    14271423msgid "Remove Noscript Tags"
    14281424msgstr ""
    14291425
     1426#: src/lang.cls.php:178
     1427msgid "URI Excludes"
     1428msgstr ""
     1429
    14301430#: src/lang.cls.php:179
    1431 msgid "URI Excludes"
     1431msgid "Optimize for Guests Only"
    14321432msgstr ""
    14331433
    14341434#: src/lang.cls.php:180
    1435 msgid "Optimize for Guests Only"
    1436 msgstr ""
    1437 
    1438 #: src/lang.cls.php:181
    14391435msgid "Role Excludes"
    14401436msgstr ""
    14411437
     1438#: src/lang.cls.php:183
     1439msgid "Gravatar Cache Cron"
     1440msgstr ""
     1441
    14421442#: src/lang.cls.php:184
    1443 msgid "Gravatar Cache Cron"
    1444 msgstr ""
    1445 
    1446 #: src/lang.cls.php:185
    14471443msgid "Gravatar Cache TTL"
    14481444msgstr ""
    14491445
     1446#: src/lang.cls.php:186
     1447msgid "Lazy Load Images"
     1448msgstr ""
     1449
    14501450#: src/lang.cls.php:187
    1451 msgid "Preload Featured Image"
     1451msgid "Lazy Load Image Excludes"
    14521452msgstr ""
    14531453
    14541454#: src/lang.cls.php:188
    1455 msgid "Lazy Load Images"
     1455msgid "Lazy Load Image Class Name Excludes"
    14561456msgstr ""
    14571457
    14581458#: src/lang.cls.php:189
    1459 msgid "Lazy Load Image Excludes"
     1459msgid "Lazy Load Image Parent Class Name Excludes"
    14601460msgstr ""
    14611461
    14621462#: src/lang.cls.php:190
    1463 msgid "Lazy Load Image Class Name Excludes"
     1463msgid "Lazy Load Iframe Class Name Excludes"
    14641464msgstr ""
    14651465
    14661466#: src/lang.cls.php:191
    1467 msgid "Lazy Load Image Parent Class Name Excludes"
     1467msgid "Lazy Load Iframe Parent Class Name Excludes"
    14681468msgstr ""
    14691469
    14701470#: src/lang.cls.php:192
    1471 msgid "Lazy Load Iframe Class Name Excludes"
     1471msgid "Lazy Load URI Excludes"
    14721472msgstr ""
    14731473
    14741474#: src/lang.cls.php:193
    1475 msgid "Lazy Load Iframe Parent Class Name Excludes"
     1475msgid "LQIP Excludes"
    14761476msgstr ""
    14771477
    14781478#: src/lang.cls.php:194
    1479 msgid "Lazy Load URI Excludes"
     1479msgid "Basic Image Placeholder"
    14801480msgstr ""
    14811481
    14821482#: src/lang.cls.php:195
    1483 msgid "LQIP Excludes"
     1483msgid "Responsive Placeholder"
    14841484msgstr ""
    14851485
    14861486#: src/lang.cls.php:196
    1487 msgid "Basic Image Placeholder"
     1487msgid "Responsive Placeholder Color"
    14881488msgstr ""
    14891489
    14901490#: src/lang.cls.php:197
    1491 msgid "Responsive Placeholder"
     1491msgid "Responsive Placeholder SVG"
    14921492msgstr ""
    14931493
    14941494#: src/lang.cls.php:198
    1495 msgid "Responsive Placeholder Color"
     1495msgid "LQIP Cloud Generator"
    14961496msgstr ""
    14971497
    14981498#: src/lang.cls.php:199
    1499 msgid "Responsive Placeholder SVG"
     1499msgid "LQIP Quality"
    15001500msgstr ""
    15011501
    15021502#: src/lang.cls.php:200
    1503 msgid "LQIP Cloud Generator"
    1504 msgstr ""
    1505 
    1506 #: src/lang.cls.php:201
    1507 msgid "LQIP Quality"
     1503msgid "LQIP Minimum Dimensions"
    15081504msgstr ""
    15091505
    15101506#: src/lang.cls.php:202
    1511 msgid "LQIP Minimum Dimensions"
     1507msgid "Generate LQIP In Background"
     1508msgstr ""
     1509
     1510#: src/lang.cls.php:203
     1511msgid "Lazy Load Iframes"
    15121512msgstr ""
    15131513
    15141514#: src/lang.cls.php:204
    1515 msgid "Generate LQIP In Background"
    1516 msgstr ""
    1517 
    1518 #: src/lang.cls.php:205
    1519 msgid "Lazy Load Iframes"
    1520 msgstr ""
    1521 
    1522 #: src/lang.cls.php:206
    15231515msgid "Add Missing Sizes"
    15241516msgstr ""
    15251517
    1526 #: src/lang.cls.php:207 src/metabox.cls.php:33 src/metabox.cls.php:34
     1518#: src/lang.cls.php:205 src/metabox.cls.php:33 src/metabox.cls.php:34
    15271519#: tpl/page_optm/settings_vpi.tpl.php:12
    15281520msgid "Viewport Images"
    15291521msgstr ""
    15301522
     1523#: src/lang.cls.php:206
     1524msgid "Viewport Images Cron"
     1525msgstr ""
     1526
    15311527#: src/lang.cls.php:208
    1532 msgid "Viewport Images Cron"
     1528msgid "Auto Request Cron"
     1529msgstr ""
     1530
     1531#: src/lang.cls.php:209
     1532msgid "Auto Pull Cron"
    15331533msgstr ""
    15341534
    15351535#: src/lang.cls.php:210
    1536 msgid "Auto Request Cron"
     1536msgid "Optimize Original Images"
    15371537msgstr ""
    15381538
    15391539#: src/lang.cls.php:211
    1540 msgid "Auto Pull Cron"
     1540msgid "Remove Original Backups"
    15411541msgstr ""
    15421542
    15431543#: src/lang.cls.php:212
    1544 msgid "Optimize Original Images"
     1544msgid "Image WebP Replacement"
    15451545msgstr ""
    15461546
    15471547#: src/lang.cls.php:213
    1548 msgid "Remove Original Backups"
     1548msgid "Optimize Losslessly"
    15491549msgstr ""
    15501550
    15511551#: src/lang.cls.php:214
    1552 msgid "Image WebP Replacement"
     1552msgid "Preserve EXIF/XMP data"
    15531553msgstr ""
    15541554
    15551555#: src/lang.cls.php:215
    1556 msgid "Optimize Losslessly"
     1556msgid "WebP Attribute To Replace"
    15571557msgstr ""
    15581558
    15591559#: src/lang.cls.php:216
    1560 msgid "Preserve EXIF/XMP data"
     1560msgid "WebP For Extra srcset"
    15611561msgstr ""
    15621562
    15631563#: src/lang.cls.php:217
    1564 msgid "WebP Attribute To Replace"
    1565 msgstr ""
    1566 
    1567 #: src/lang.cls.php:218
    1568 msgid "WebP For Extra srcset"
     1564msgid "WordPress Image Quality Control"
     1565msgstr ""
     1566
     1567#: src/lang.cls.php:218 tpl/esi_widget_edit.php:36
     1568msgid "Enable ESI"
    15691569msgstr ""
    15701570
    15711571#: src/lang.cls.php:219
    1572 msgid "WordPress Image Quality Control"
    1573 msgstr ""
    1574 
    1575 #: src/lang.cls.php:220 tpl/esi_widget_edit.php:36
    1576 msgid "Enable ESI"
     1572msgid "Cache Admin Bar"
     1573msgstr ""
     1574
     1575#: src/lang.cls.php:220
     1576msgid "Cache Comment Form"
    15771577msgstr ""
    15781578
    15791579#: src/lang.cls.php:221
    1580 msgid "Cache Admin Bar"
    1581 msgstr ""
    1582 
    1583 #: src/lang.cls.php:222
    1584 msgid "Cache Comment Form"
    1585 msgstr ""
    1586 
    1587 #: src/lang.cls.php:223
    15881580msgid "ESI Nonces"
    15891581msgstr ""
    15901582
    1591 #: src/lang.cls.php:224 tpl/page_optm/settings_css.tpl.php:121
     1583#: src/lang.cls.php:222 tpl/page_optm/settings_css.tpl.php:121
    15921584#: tpl/page_optm/settings_css.tpl.php:238 tpl/page_optm/settings_vpi.tpl.php:67
    15931585msgid "Vary Group"
    15941586msgstr ""
    15951587
     1588#: src/lang.cls.php:223
     1589msgid "Purge All Hooks"
     1590msgstr ""
     1591
     1592#: src/lang.cls.php:224
     1593msgid "Improve HTTP/HTTPS Compatibility"
     1594msgstr ""
     1595
    15961596#: src/lang.cls.php:225
    1597 msgid "Purge All Hooks"
     1597msgid "Instant Click"
    15981598msgstr ""
    15991599
    16001600#: src/lang.cls.php:226
    1601 msgid "Improve HTTP/HTTPS Compatibility"
     1601msgid "Do Not Cache Cookies"
    16021602msgstr ""
    16031603
    16041604#: src/lang.cls.php:227
    1605 msgid "Instant Click"
     1605msgid "Do Not Cache User Agents"
    16061606msgstr ""
    16071607
    16081608#: src/lang.cls.php:228
    1609 msgid "Do Not Cache Cookies"
     1609msgid "Login Cookie"
    16101610msgstr ""
    16111611
    16121612#: src/lang.cls.php:229
    1613 msgid "Do Not Cache User Agents"
    1614 msgstr ""
    1615 
    1616 #: src/lang.cls.php:230
    1617 msgid "Login Cookie"
     1613msgid "Vary Cookies"
    16181614msgstr ""
    16191615
    16201616#: src/lang.cls.php:231
    1621 msgid "Vary Cookies"
     1617msgid "Frontend Heartbeat Control"
     1618msgstr ""
     1619
     1620#: src/lang.cls.php:232
     1621msgid "Frontend Heartbeat TTL"
    16221622msgstr ""
    16231623
    16241624#: src/lang.cls.php:233
    1625 msgid "Frontend Heartbeat Control"
     1625msgid "Backend Heartbeat Control"
    16261626msgstr ""
    16271627
    16281628#: src/lang.cls.php:234
    1629 msgid "Frontend Heartbeat TTL"
     1629msgid "Backend Heartbeat TTL"
    16301630msgstr ""
    16311631
    16321632#: src/lang.cls.php:235
    1633 msgid "Backend Heartbeat Control"
     1633msgid "Editor Heartbeat"
    16341634msgstr ""
    16351635
    16361636#: src/lang.cls.php:236
    1637 msgid "Backend Heartbeat TTL"
    1638 msgstr ""
    1639 
    1640 #: src/lang.cls.php:237
    1641 msgid "Editor Heartbeat"
     1637msgid "Editor Heartbeat TTL"
    16421638msgstr ""
    16431639
    16441640#: src/lang.cls.php:238
    1645 msgid "Editor Heartbeat TTL"
     1641msgid "QUIC.cloud CDN"
     1642msgstr ""
     1643
     1644#: src/lang.cls.php:239
     1645msgid "Use CDN Mapping"
    16461646msgstr ""
    16471647
    16481648#: src/lang.cls.php:240
    1649 msgid "QUIC.cloud CDN"
     1649msgid "CDN URL"
    16501650msgstr ""
    16511651
    16521652#: src/lang.cls.php:241
    1653 msgid "Use CDN Mapping"
     1653msgid "Include Images"
    16541654msgstr ""
    16551655
    16561656#: src/lang.cls.php:242
    1657 msgid "CDN URL"
     1657msgid "Include CSS"
    16581658msgstr ""
    16591659
    16601660#: src/lang.cls.php:243
    1661 msgid "Include Images"
    1662 msgstr ""
    1663 
    1664 #: src/lang.cls.php:244
    1665 msgid "Include CSS"
     1661msgid "Include JS"
     1662msgstr ""
     1663
     1664#: src/lang.cls.php:244 tpl/cdn/settings.tpl.php:102
     1665msgid "Include File Types"
    16661666msgstr ""
    16671667
    16681668#: src/lang.cls.php:245
    1669 msgid "Include JS"
    1670 msgstr ""
    1671 
    1672 #: src/lang.cls.php:246 tpl/cdn/settings.tpl.php:102
    1673 msgid "Include File Types"
     1669msgid "HTML Attribute To Replace"
     1670msgstr ""
     1671
     1672#: src/lang.cls.php:246
     1673msgid "Original URLs"
    16741674msgstr ""
    16751675
    16761676#: src/lang.cls.php:247
    1677 msgid "HTML Attribute To Replace"
     1677msgid "Included Directories"
    16781678msgstr ""
    16791679
    16801680#: src/lang.cls.php:248
    1681 msgid "Original URLs"
     1681msgid "Exclude Path"
    16821682msgstr ""
    16831683
    16841684#: src/lang.cls.php:249
    1685 msgid "Included Directories"
    1686 msgstr ""
    1687 
    1688 #: src/lang.cls.php:250
    1689 msgid "Exclude Path"
    1690 msgstr ""
    1691 
    1692 #: src/lang.cls.php:251
    16931685msgid "Cloudflare API"
    16941686msgstr ""
    16951687
     1688#: src/lang.cls.php:252
     1689msgid "Delay"
     1690msgstr ""
     1691
     1692#: src/lang.cls.php:253
     1693msgid "Run Duration"
     1694msgstr ""
     1695
    16961696#: src/lang.cls.php:254
    1697 msgid "Delay"
     1697msgid "Interval Between Runs"
    16981698msgstr ""
    16991699
    17001700#: src/lang.cls.php:255
    1701 msgid "Run Duration"
     1701msgid "Crawl Interval"
    17021702msgstr ""
    17031703
    17041704#: src/lang.cls.php:256
    1705 msgid "Interval Between Runs"
     1705msgid "Threads"
    17061706msgstr ""
    17071707
    17081708#: src/lang.cls.php:257
    1709 msgid "Crawl Interval"
     1709msgid "Timeout"
    17101710msgstr ""
    17111711
    17121712#: src/lang.cls.php:258
    1713 msgid "Threads"
     1713msgid "Server Load Limit"
    17141714msgstr ""
    17151715
    17161716#: src/lang.cls.php:259
    1717 msgid "Timeout"
     1717msgid "Role Simulation"
    17181718msgstr ""
    17191719
    17201720#: src/lang.cls.php:260
    1721 msgid "Server Load Limit"
     1721msgid "Cookie Simulation"
    17221722msgstr ""
    17231723
    17241724#: src/lang.cls.php:261
    1725 msgid "Role Simulation"
     1725msgid "Custom Sitemap"
    17261726msgstr ""
    17271727
    17281728#: src/lang.cls.php:262
    1729 msgid "Cookie Simulation"
     1729msgid "Drop Domain from Sitemap"
    17301730msgstr ""
    17311731
    17321732#: src/lang.cls.php:263
    1733 msgid "Custom Sitemap"
    1734 msgstr ""
    1735 
    1736 #: src/lang.cls.php:264
    1737 msgid "Drop Domain from Sitemap"
    1738 msgstr ""
    1739 
    1740 #: src/lang.cls.php:265
    17411733msgid "Sitemap Timeout"
    17421734msgstr ""
    17431735
    1744 #: src/lang.cls.php:267 tpl/inc/disabled_all.php:5
     1736#: src/lang.cls.php:265 tpl/inc/disabled_all.php:5
    17451737msgid "Disable All Features"
    17461738msgstr ""
    17471739
    1748 #: src/lang.cls.php:268 tpl/toolbox/log_viewer.tpl.php:11
     1740#: src/lang.cls.php:266 tpl/toolbox/log_viewer.tpl.php:11
    17491741msgid "Debug Log"
    17501742msgstr ""
    17511743
     1744#: src/lang.cls.php:267
     1745msgid "Admin IPs"
     1746msgstr ""
     1747
     1748#: src/lang.cls.php:268
     1749msgid "Debug Level"
     1750msgstr ""
     1751
    17521752#: src/lang.cls.php:269
    1753 msgid "Admin IPs"
     1753msgid "Log File Size Limit"
    17541754msgstr ""
    17551755
    17561756#: src/lang.cls.php:270
    1757 msgid "Debug Level"
     1757msgid "Log Cookies"
    17581758msgstr ""
    17591759
    17601760#: src/lang.cls.php:271
    1761 msgid "Log File Size Limit"
     1761msgid "Collapse Query Strings"
    17621762msgstr ""
    17631763
    17641764#: src/lang.cls.php:272
    1765 msgid "Log Cookies"
     1765msgid "Debug URI Includes"
    17661766msgstr ""
    17671767
    17681768#: src/lang.cls.php:273
    1769 msgid "Collapse Query Strings"
     1769msgid "Debug URI Excludes"
    17701770msgstr ""
    17711771
    17721772#: src/lang.cls.php:274
    1773 msgid "Debug URI Includes"
    1774 msgstr ""
    1775 
    1776 #: src/lang.cls.php:275
    1777 msgid "Debug URI Excludes"
     1773msgid "Debug String Excludes"
    17781774msgstr ""
    17791775
    17801776#: src/lang.cls.php:276
    1781 msgid "Debug String Excludes"
    1782 msgstr ""
    1783 
    1784 #: src/lang.cls.php:278
    17851777msgid "Revisions Max Number"
    17861778msgstr ""
    17871779
    1788 #: src/lang.cls.php:279
     1780#: src/lang.cls.php:277
    17891781msgid "Revisions Max Age"
    17901782msgstr ""
    17911783
    1792 #: src/media.cls.php:241
     1784#: src/media.cls.php:246
    17931785msgid "LiteSpeed Optimization"
    17941786msgstr ""
    17951787
    1796 #: src/media.cls.php:292 src/media.cls.php:321 src/media.cls.php:343
    1797 #: src/media.cls.php:377
     1788#: src/media.cls.php:297 src/media.cls.php:326 src/media.cls.php:348
     1789#: src/media.cls.php:382
    17981790msgid "(optm)"
    17991791msgstr ""
    18001792
    1801 #: src/media.cls.php:293
     1793#: src/media.cls.php:298
    18021794msgid "Currently using optimized version of file."
    18031795msgstr ""
    18041796
    1805 #: src/media.cls.php:293 src/media.cls.php:347
     1797#: src/media.cls.php:298 src/media.cls.php:352
    18061798msgid "Click to switch to original (unoptimized) version."
    18071799msgstr ""
    18081800
    1809 #: src/media.cls.php:296 src/media.cls.php:350
     1801#: src/media.cls.php:301 src/media.cls.php:355
    18101802msgid "(non-optm)"
    18111803msgstr ""
    18121804
    1813 #: src/media.cls.php:297
     1805#: src/media.cls.php:302
    18141806msgid "Currently using original (unoptimized) version of file."
    18151807msgstr ""
    18161808
    1817 #: src/media.cls.php:297 src/media.cls.php:354
     1809#: src/media.cls.php:302 src/media.cls.php:359
    18181810msgid "Click to switch to optimized version."
    18191811msgstr ""
    18201812
    1821 #: src/media.cls.php:303
     1813#: src/media.cls.php:308
    18221814msgid "Original file reduced by %1$s (%2$s)"
    18231815msgstr ""
    18241816
    1825 #: src/media.cls.php:307
     1817#: src/media.cls.php:312
    18261818msgid "Orig saved %s"
    18271819msgstr ""
    18281820
    1829 #: src/media.cls.php:320 src/media.cls.php:376
     1821#: src/media.cls.php:325 src/media.cls.php:381
    18301822msgid "Using optimized version of file. "
    18311823msgstr ""
    18321824
    1833 #: src/media.cls.php:320
     1825#: src/media.cls.php:325
    18341826msgid "No backup of original file exists."
    18351827msgstr ""
    18361828
    1837 #: src/media.cls.php:325
     1829#: src/media.cls.php:330
    18381830msgid "Congratulation! Your file was already optimized"
    18391831msgstr ""
    18401832
    1841 #: src/media.cls.php:326
     1833#: src/media.cls.php:331
    18421834msgid "Orig %s"
    18431835msgstr ""
    18441836
    1845 #: src/media.cls.php:326
     1837#: src/media.cls.php:331
    18461838msgid "(no savings)"
    18471839msgstr ""
    18481840
    1849 #: src/media.cls.php:328
     1841#: src/media.cls.php:333
    18501842msgid "Orig"
    18511843msgstr ""
    18521844
    1853 #: src/media.cls.php:345
     1845#: src/media.cls.php:350
    18541846msgid "Currently using optimized version of WebP file."
    18551847msgstr ""
    18561848
    1857 #: src/media.cls.php:352
     1849#: src/media.cls.php:357
    18581850msgid "Currently using original (unoptimized) version of WebP file."
    18591851msgstr ""
    18601852
    1861 #: src/media.cls.php:360
     1853#: src/media.cls.php:365
    18621854msgid "WebP file reduced by %1$s (%2$s)"
    18631855msgstr ""
    18641856
    1865 #: src/media.cls.php:363
     1857#: src/media.cls.php:368
    18661858msgid "WebP saved %s"
    18671859msgstr ""
    18681860
    1869 #: src/media.cls.php:376
     1861#: src/media.cls.php:381
    18701862msgid "No backup of unoptimized WebP file exists."
    18711863msgstr ""
    18721864
    1873 #: src/media.cls.php:381
     1865#: src/media.cls.php:386
    18741866msgid "WebP"
    18751867msgstr ""
    18761868
    1877 #: src/media.cls.php:391
     1869#: src/media.cls.php:396
    18781870msgid "Restore from backup"
    18791871msgstr ""
     
    18991891msgstr ""
    19001892
    1901 #: src/object-cache.cls.php:473
     1893#: src/object-cache.cls.php:477
    19021894msgid "Redis encountered a fatal error: %s (code: %d)"
    19031895msgstr ""
     
    21282120msgstr ""
    21292121
    2130 #. #-#-#-#-#  litespeed-cache.pot (LiteSpeed Cache 6.1)  #-#-#-#-#
     2122#. #-#-#-#-#  litespeed-cache.pot (LiteSpeed Cache 6.2)  #-#-#-#-#
    21312123#. Plugin Name of the plugin/theme
    2132 #: tpl/banner/new_version.php:57 tpl/banner/new_version_dev.tpl.php:12
     2124#: tpl/banner/new_version.php:59 tpl/banner/new_version_dev.tpl.php:12
    21332125#: tpl/cache/more_settings_tip.tpl.php:15 tpl/inc/admin_footer.php:10
    21342126msgid "LiteSpeed Cache"
    21352127msgstr ""
    21362128
    2137 #: tpl/banner/new_version.php:57
     2129#: tpl/banner/new_version.php:59
    21382130msgid "New Version Available!"
    21392131msgstr ""
    21402132
    2141 #: tpl/banner/new_version.php:61
     2133#: tpl/banner/new_version.php:63
    21422134msgid "New release %s is available now."
    21432135msgstr ""
    21442136
    2145 #: tpl/banner/new_version.php:69 tpl/banner/new_version_dev.tpl.php:24
     2137#: tpl/banner/new_version.php:71 tpl/banner/new_version_dev.tpl.php:24
    21462138#: tpl/toolbox/beta_test.tpl.php:64
    21472139msgid "Upgrade"
    21482140msgstr ""
    21492141
    2150 #: tpl/banner/new_version.php:79
     2142#: tpl/banner/new_version.php:81
    21512143msgid "Turn On Auto Upgrade"
    21522144msgstr ""
    21532145
    2154 #: tpl/banner/new_version.php:85
     2146#: tpl/banner/new_version.php:87
    21552147msgid "Maybe Later"
    21562148msgstr ""
     
    22842276msgstr ""
    22852277
    2286 #: tpl/cache/network_settings-cache.tpl.php:7
    2287 #: tpl/cache/settings-cache.tpl.php:7
     2278#: tpl/cache/network_settings-cache.tpl.php:9
     2279#: tpl/cache/settings-cache.tpl.php:9
    22882280msgid "Cache Control Settings"
    22892281msgstr ""
    22902282
    2291 #: tpl/cache/network_settings-cache.tpl.php:13
     2283#: tpl/cache/network_settings-cache.tpl.php:16
    22922284msgid "Network Enable Cache"
    22932285msgstr ""
    22942286
    2295 #: tpl/cache/network_settings-cache.tpl.php:17
     2287#: tpl/cache/network_settings-cache.tpl.php:20
    22962288msgid ""
    22972289"Enabling LiteSpeed Cache for WordPress here enables the cache for the "
     
    22992291msgstr ""
    23002292
    2301 #: tpl/cache/network_settings-cache.tpl.php:18
     2293#: tpl/cache/network_settings-cache.tpl.php:21
    23022294msgid ""
    23032295"It is <b>STRONGLY</b> recommend that the compatibility with other plugins on "
     
    23052297msgstr ""
    23062298
    2307 #: tpl/cache/network_settings-cache.tpl.php:19
     2299#: tpl/cache/network_settings-cache.tpl.php:22
    23082300msgid ""
    23092301"This is to ensure compatibility prior to enabling the cache for all sites."
     
    23422334msgstr ""
    23432335
    2344 #: tpl/cache/settings-cache.tpl.php:19
     2336#: tpl/cache/settings-cache.tpl.php:22
    23452337msgid "Use Network Admin Setting"
    23462338msgstr ""
    23472339
    2348 #: tpl/cache/settings-cache.tpl.php:24
     2340#: tpl/cache/settings-cache.tpl.php:28
    23492341msgid "Please visit the <a %s>Information</a> page on how to test the cache."
    23502342msgstr ""
    23512343
    2352 #: tpl/cache/settings-cache.tpl.php:27 tpl/page_optm/entry.tpl.php:32
     2344#: tpl/cache/settings-cache.tpl.php:32 tpl/page_optm/entry.tpl.php:32
    23532345msgid "NOTICE"
    23542346msgstr ""
    23552347
    2356 #: tpl/cache/settings-cache.tpl.php:27
     2348#: tpl/cache/settings-cache.tpl.php:32
    23572349msgid ""
    23582350"When disabling the cache, all cached entries for this site will be purged."
    23592351msgstr ""
    23602352
    2361 #: tpl/cache/settings-cache.tpl.php:30
     2353#: tpl/cache/settings-cache.tpl.php:35
    23622354msgid "The network admin setting can be overridden here."
    23632355msgstr ""
    23642356
    2365 #: tpl/cache/settings-cache.tpl.php:34
     2357#: tpl/cache/settings-cache.tpl.php:40
    23662358msgid ""
    23672359"With QUIC.cloud CDN enabled, you may still be seeing cache headers from your "
     
    23692361msgstr ""
    23702362
    2371 #: tpl/cache/settings-cache.tpl.php:48
     2363#: tpl/cache/settings-cache.tpl.php:54
    23722364msgid "Privately cache frontend pages for logged-in users. (LSWS %s required)"
    23732365msgstr ""
    23742366
    2375 #: tpl/cache/settings-cache.tpl.php:61
     2367#: tpl/cache/settings-cache.tpl.php:67
    23762368msgid ""
    23772369"Privately cache commenters that have pending comments. Disabling this option "
     
    23792371msgstr ""
    23802372
    2381 #: tpl/cache/settings-cache.tpl.php:74
     2373#: tpl/cache/settings-cache.tpl.php:80
    23822374msgid "Cache requests made by WordPress REST API calls."
    23832375msgstr ""
    23842376
    2385 #: tpl/cache/settings-cache.tpl.php:87
     2377#: tpl/cache/settings-cache.tpl.php:93
    23862378msgid "Disabling this option may negatively affect performance."
    23872379msgstr ""
    23882380
    2389 #: tpl/cache/settings-cache.tpl.php:108
     2381#: tpl/cache/settings-cache.tpl.php:113
    23902382msgid "URI Paths containing these strings will NOT be cached as public."
    23912383msgstr ""
    23922384
    2393 #: tpl/cache/settings-cache.tpl.php:122
     2385#: tpl/cache/settings-cache.tpl.php:127
    23942386msgid ""
    23952387"Paths containing these strings will be cached regardless of no-cacheable "
     
    23972389msgstr ""
    23982390
    2399 #: tpl/cache/settings-cache.tpl.php:124 tpl/cache/settings-cache.tpl.php:141
     2391#: tpl/cache/settings-cache.tpl.php:129 tpl/cache/settings-cache.tpl.php:146
    24002392msgid ""
    24012393"To define a custom TTL for a URI, add a space followed by the TTL value to "
     
    24032395msgstr ""
    24042396
    2405 #: tpl/cache/settings-cache.tpl.php:125 tpl/cache/settings-cache.tpl.php:142
     2397#: tpl/cache/settings-cache.tpl.php:130 tpl/cache/settings-cache.tpl.php:147
    24062398msgid "For example, %1$s defines a TTL of %2$s seconds for %3$s."
    24072399msgstr ""
    24082400
    2409 #: tpl/cache/settings-cache.tpl.php:139
     2401#: tpl/cache/settings-cache.tpl.php:144
    24102402msgid ""
    24112403"Paths containing these strings will be forced to public cached regardless of "
     
    27622754msgstr ""
    27632755
    2764 #: tpl/cache/settings_inc.cache_favicon.tpl.php:14
    2765 msgid "favicon.ico is requested on most pages."
    2766 msgstr ""
    2767 
    2768 #: tpl/cache/settings_inc.cache_favicon.tpl.php:15
    2769 msgid ""
    2770 "Caching this resource may improve server performance by avoiding unnecessary "
    2771 "PHP calls."
    2772 msgstr ""
    2773 
    27742756#: tpl/cache/settings_inc.cache_mobile.tpl.php:18
    27752757msgid "Serve a separate cache copy for mobile visitors."
     
    29092891msgstr ""
    29102892
    2911 #: tpl/cache/settings_inc.object.tpl.php:48 tpl/crawler/blacklist.tpl.php:32
     2893#: tpl/cache/settings_inc.object.tpl.php:48 tpl/crawler/blacklist.tpl.php:34
    29122894#: tpl/crawler/summary.tpl.php:130
    29132895msgid "Status"
     
    29832965msgstr ""
    29842966
    2985 #: tpl/cdn/auto_setup.tpl.php:44
     2967#: tpl/cdn/auto_setup.tpl.php:43
    29862968msgid "Done"
    29872969msgstr ""
     
    35013483msgstr ""
    35023484
    3503 #: tpl/crawler/blacklist.tpl.php:31 tpl/crawler/map.tpl.php:57
     3485#: tpl/crawler/blacklist.tpl.php:33 tpl/crawler/map.tpl.php:67
    35043486#: tpl/toolbox/purge.tpl.php:224
    35053487msgid "URL"
    35063488msgstr ""
    35073489
    3508 #: tpl/crawler/blacklist.tpl.php:33 tpl/crawler/map.tpl.php:59
     3490#: tpl/crawler/blacklist.tpl.php:35 tpl/crawler/map.tpl.php:69
    35093491msgid "Operation"
    35103492msgstr ""
    35113493
    3512 #: tpl/crawler/blacklist.tpl.php:46
     3494#: tpl/crawler/blacklist.tpl.php:48
    35133495msgid "Remove from Blocklist"
    35143496msgstr ""
    35153497
    3516 #: tpl/crawler/blacklist.tpl.php:54
     3498#: tpl/crawler/blacklist.tpl.php:58
    35173499msgid "PHP Constant %s available to disable blocklist."
    35183500msgstr ""
    35193501
    3520 #: tpl/crawler/blacklist.tpl.php:57
     3502#: tpl/crawler/blacklist.tpl.php:61
    35213503msgid "Filter %s available to disable blocklist."
    35223504msgstr ""
    35233505
    3524 #: tpl/crawler/blacklist.tpl.php:60
     3506#: tpl/crawler/blacklist.tpl.php:64
    35253507msgid "Not blocklisted"
    35263508msgstr ""
    35273509
    3528 #: tpl/crawler/blacklist.tpl.php:61 tpl/crawler/map.tpl.php:84
     3510#: tpl/crawler/blacklist.tpl.php:65 tpl/crawler/map.tpl.php:96
    35293511msgid "Blocklisted due to not cacheable"
    35303512msgstr ""
    35313513
    3532 #: tpl/crawler/blacklist.tpl.php:62 tpl/crawler/map.tpl.php:85
    3533 #: tpl/crawler/summary.tpl.php:166 tpl/crawler/summary.tpl.php:190
     3514#: tpl/crawler/blacklist.tpl.php:66 tpl/crawler/map.tpl.php:53
     3515#: tpl/crawler/map.tpl.php:97 tpl/crawler/summary.tpl.php:166
     3516#: tpl/crawler/summary.tpl.php:191
    35343517msgid "Blocklisted"
    35353518msgstr ""
     
    35613544msgstr ""
    35623545
    3563 #: tpl/crawler/map.tpl.php:18
     3546#: tpl/crawler/map.tpl.php:19
    35643547msgid "Clean Crawler Map"
    35653548msgstr ""
    35663549
    3567 #: tpl/crawler/map.tpl.php:22
     3550#: tpl/crawler/map.tpl.php:23
    35683551msgid "Refresh Crawler Map"
    35693552msgstr ""
    35703553
    3571 #: tpl/crawler/map.tpl.php:29
     3554#: tpl/crawler/map.tpl.php:30
    35723555msgid "Generated at %s"
    35733556msgstr ""
    35743557
    3575 #: tpl/crawler/map.tpl.php:35
     3558#: tpl/crawler/map.tpl.php:36
    35763559msgid "Sitemap List"
    35773560msgstr ""
    35783561
    3579 #: tpl/crawler/map.tpl.php:39
     3562#: tpl/crawler/map.tpl.php:40
    35803563msgid "Sitemap Total"
    35813564msgstr ""
    35823565
    3583 #: tpl/crawler/map.tpl.php:44
     3566#: tpl/crawler/map.tpl.php:45
    35843567msgid "URL Search"
    35853568msgstr ""
    35863569
    3587 #: tpl/crawler/map.tpl.php:58 tpl/dash/dashboard.tpl.php:568
     3570#: tpl/crawler/map.tpl.php:51 tpl/crawler/map.tpl.php:94
     3571msgid "Cache Hit"
     3572msgstr ""
     3573
     3574#: tpl/crawler/map.tpl.php:52 tpl/crawler/map.tpl.php:95
     3575msgid "Cache Miss"
     3576msgstr ""
     3577
     3578#: tpl/crawler/map.tpl.php:68 tpl/dash/dashboard.tpl.php:568
    35883579msgid "Crawler Status"
    35893580msgstr ""
    35903581
    3591 #: tpl/crawler/map.tpl.php:73
     3582#: tpl/crawler/map.tpl.php:83
    35923583msgid "Add to Blocklist"
    3593 msgstr ""
    3594 
    3595 #: tpl/crawler/map.tpl.php:82
    3596 msgid "Cache Hit"
    3597 msgstr ""
    3598 
    3599 #: tpl/crawler/map.tpl.php:83
    3600 msgid "Cache Miss"
    36013584msgstr ""
    36023585
     
    38023785msgstr ""
    38033786
    3804 #: tpl/crawler/summary.tpl.php:187
     3787#: tpl/crawler/summary.tpl.php:188
    38053788msgid "Waiting to be Crawled"
    38063789msgstr ""
    38073790
    3808 #: tpl/crawler/summary.tpl.php:188
     3791#: tpl/crawler/summary.tpl.php:189
    38093792msgid "Already Cached"
    38103793msgstr ""
    38113794
    3812 #: tpl/crawler/summary.tpl.php:189
     3795#: tpl/crawler/summary.tpl.php:190
    38133796msgid "Successfully Crawled"
    38143797msgstr ""
    38153798
    3816 #: tpl/crawler/summary.tpl.php:194
     3799#: tpl/crawler/summary.tpl.php:195
    38173800msgid "Run frequency is set by the Interval Between Runs setting."
    38183801msgstr ""
    38193802
    3820 #: tpl/crawler/summary.tpl.php:195
     3803#: tpl/crawler/summary.tpl.php:196
    38213804msgid "Crawlers cannot run concurrently."
    38223805msgstr ""
    38233806
    3824 #: tpl/crawler/summary.tpl.php:196
     3807#: tpl/crawler/summary.tpl.php:197
    38253808msgid ""
    38263809"&nbsp;If both the cron and a manual run start at similar times, the first to "
     
    38283811msgstr ""
    38293812
    3830 #: tpl/crawler/summary.tpl.php:197
     3813#: tpl/crawler/summary.tpl.php:198
    38313814msgid ""
    38323815"Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn "
     
    38343817msgstr ""
    38353818
    3836 #: tpl/crawler/summary.tpl.php:202
     3819#: tpl/crawler/summary.tpl.php:203
    38373820msgid "Watch Crawler Status"
    38383821msgstr ""
    38393822
    3840 #: tpl/crawler/summary.tpl.php:209
     3823#: tpl/crawler/summary.tpl.php:210
    38413824msgid "Show crawler status"
    38423825msgstr ""
    38433826
    3844 #: tpl/crawler/summary.tpl.php:227
     3827#: tpl/crawler/summary.tpl.php:228
    38453828msgid "No crawler meta file generated yet"
    38463829msgstr ""
     
    39283911#: tpl/page_optm/settings_css.tpl.php:101
    39293912#: tpl/page_optm/settings_css.tpl.php:218
    3930 #: tpl/page_optm/settings_media.tpl.php:196
     3913#: tpl/page_optm/settings_media.tpl.php:182
    39313914#: tpl/page_optm/settings_vpi.tpl.php:48
    39323915msgid ""
     
    39383921#: tpl/page_optm/settings_css.tpl.php:101
    39393922#: tpl/page_optm/settings_css.tpl.php:218
    3940 #: tpl/page_optm/settings_media.tpl.php:196
     3923#: tpl/page_optm/settings_media.tpl.php:182
    39413924#: tpl/page_optm/settings_vpi.tpl.php:48
    39423925msgid "Redetect"
     
    39973980#: tpl/dash/dashboard.tpl.php:510 tpl/dash/dashboard.tpl.php:542
    39983981#: tpl/page_optm/settings_css.tpl.php:92 tpl/page_optm/settings_css.tpl.php:209
    3999 #: tpl/page_optm/settings_media.tpl.php:190
     3982#: tpl/page_optm/settings_media.tpl.php:176
    40003983#: tpl/page_optm/settings_vpi.tpl.php:42
    40013984msgid "Last generated"
     
    43044287#: tpl/general/settings.tpl.php:108 tpl/general/settings.tpl.php:189
    43054288#: tpl/general/settings.tpl.php:196 tpl/general/settings.tpl.php:203
    4306 #: tpl/general/settings.tpl.php:220 tpl/page_optm/settings_media.tpl.php:254
     4289#: tpl/general/settings.tpl.php:220 tpl/page_optm/settings_media.tpl.php:240
    43074290#: tpl/page_optm/settings_vpi.tpl.php:32
    43084291msgid "Notice"
     
    43994382msgstr ""
    44004383
    4401 #: tpl/general/settings.tpl.php:189 tpl/page_optm/settings_media.tpl.php:254
     4384#: tpl/general/settings.tpl.php:189 tpl/page_optm/settings_media.tpl.php:240
    44024385#: tpl/page_optm/settings_vpi.tpl.php:32
    44034386msgid "%s must be turned ON for this setting to work."
     
    45744557#: tpl/img_optm/summary.tpl.php:43 tpl/page_optm/settings_css.tpl.php:101
    45754558#: tpl/page_optm/settings_css.tpl.php:218
    4576 #: tpl/page_optm/settings_media.tpl.php:196
     4559#: tpl/page_optm/settings_media.tpl.php:182
    45774560#: tpl/page_optm/settings_vpi.tpl.php:48
    45784561msgid "Current closest Cloud server is %s.&#10; Click to redetect."
     
    52115194
    52125195#: tpl/page_optm/settings_localization.tpl.php:62
    5213 #: tpl/page_optm/settings_media.tpl.php:219
     5196#: tpl/page_optm/settings_media.tpl.php:205
    52145197msgid "Run Queue Manually"
    52155198msgstr ""
     
    52545237
    52555238#: tpl/page_optm/settings_media.tpl.php:30
    5256 msgid ""
    5257 "Load a post's Featured Image first, before the page begins to render. Leads "
    5258 "to performance improvements and minimizes the risk of render blocking by "
    5259 "Featured Images."
    5260 msgstr ""
    5261 
    5262 #: tpl/page_optm/settings_media.tpl.php:44
    52635239msgid "Load images only when they enter the viewport."
    52645240msgstr ""
    52655241
    5266 #: tpl/page_optm/settings_media.tpl.php:45
    5267 #: tpl/page_optm/settings_media.tpl.php:236
     5242#: tpl/page_optm/settings_media.tpl.php:31
     5243#: tpl/page_optm/settings_media.tpl.php:222
    52685244msgid "This can improve page loading time by reducing initial HTTP requests."
    52695245msgstr ""
    52705246
     5247#: tpl/page_optm/settings_media.tpl.php:35
     5248msgid "Adding Style to Your Lazy-Loaded Images"
     5249msgstr ""
     5250
    52715251#: tpl/page_optm/settings_media.tpl.php:49
    5272 msgid "Adding Style to Your Lazy-Loaded Images"
    5273 msgstr ""
    5274 
    5275 #: tpl/page_optm/settings_media.tpl.php:63
    52765252msgid ""
    52775253"Specify a base64 image to be used as a simple placeholder while images "
     
    52795255msgstr ""
    52805256
    5281 #: tpl/page_optm/settings_media.tpl.php:64
     5257#: tpl/page_optm/settings_media.tpl.php:50
    52825258msgid ""
    52835259"This can be predefined in %2$s as well using constant %1$s, with this "
     
    52855261msgstr ""
    52865262
    5287 #: tpl/page_optm/settings_media.tpl.php:65
     5263#: tpl/page_optm/settings_media.tpl.php:51
    52885264msgid "By default a gray image placeholder %s will be used."
    52895265msgstr ""
    52905266
     5267#: tpl/page_optm/settings_media.tpl.php:52
     5268msgid "For example, %s can be used for a transparent placeholder."
     5269msgstr ""
     5270
    52915271#: tpl/page_optm/settings_media.tpl.php:66
    5292 msgid "For example, %s can be used for a transparent placeholder."
    5293 msgstr ""
    5294 
    5295 #: tpl/page_optm/settings_media.tpl.php:80
    52965272msgid ""
    52975273"Responsive image placeholders can help to reduce layout reshuffle when "
     
    52995275msgstr ""
    53005276
    5301 #: tpl/page_optm/settings_media.tpl.php:81
     5277#: tpl/page_optm/settings_media.tpl.php:67
    53025278msgid ""
    53035279"This will generate the placeholder with same dimensions as the image if it "
     
    53055281msgstr ""
    53065282
    5307 #: tpl/page_optm/settings_media.tpl.php:94
     5283#: tpl/page_optm/settings_media.tpl.php:80
    53085284msgid "Specify an SVG to be used as a placeholder when generating locally."
    53095285msgstr ""
    53105286
    5311 #: tpl/page_optm/settings_media.tpl.php:95
     5287#: tpl/page_optm/settings_media.tpl.php:81
    53125288msgid "It will be converted to a base64 SVG placeholder on-the-fly."
    53135289msgstr ""
    53145290
    5315 #: tpl/page_optm/settings_media.tpl.php:96
     5291#: tpl/page_optm/settings_media.tpl.php:82
    53165292msgid "Variables %s will be replaced with the corresponding image properties."
    53175293msgstr ""
    53185294
     5295#: tpl/page_optm/settings_media.tpl.php:83
     5296msgid "Variables %s will be replaced with the configured background color."
     5297msgstr ""
     5298
    53195299#: tpl/page_optm/settings_media.tpl.php:97
    5320 msgid "Variables %s will be replaced with the configured background color."
    5321 msgstr ""
    5322 
    5323 #: tpl/page_optm/settings_media.tpl.php:111
    53245300msgid "Specify the responsive placeholder SVG color."
    53255301msgstr ""
    53265302
    5327 #: tpl/page_optm/settings_media.tpl.php:126
     5303#: tpl/page_optm/settings_media.tpl.php:112
    53285304msgid ""
    53295305"Use QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for "
     
    53315307msgstr ""
    53325308
     5309#: tpl/page_optm/settings_media.tpl.php:113
     5310msgid "Keep this off to use plain color placeholders."
     5311msgstr ""
     5312
    53335313#: tpl/page_optm/settings_media.tpl.php:127
    5334 msgid "Keep this off to use plain color placeholders."
    5335 msgstr ""
    5336 
    5337 #: tpl/page_optm/settings_media.tpl.php:141
    53385314msgid "Specify the quality when generating LQIP."
    53395315msgstr ""
    53405316
    5341 #: tpl/page_optm/settings_media.tpl.php:142
     5317#: tpl/page_optm/settings_media.tpl.php:128
    53425318msgid ""
    53435319"Larger number will generate higher resolution quality placeholder, but will "
     
    53455321msgstr ""
    53465322
    5347 #: tpl/page_optm/settings_media.tpl.php:145
     5323#: tpl/page_optm/settings_media.tpl.php:131
    53485324msgid ""
    53495325"Changes to this setting do not apply to already-generated LQIPs. To "
     
    53515327msgstr ""
    53525328
    5353 #: tpl/page_optm/settings_media.tpl.php:158
     5329#: tpl/page_optm/settings_media.tpl.php:144
    53545330msgid "pixels"
    53555331msgstr ""
    53565332
    5357 #: tpl/page_optm/settings_media.tpl.php:160
     5333#: tpl/page_optm/settings_media.tpl.php:146
    53585334msgid ""
    53595335"LQIP requests will not be sent for images where both width and height are "
     
    53615337msgstr ""
    53625338
    5363 #: tpl/page_optm/settings_media.tpl.php:176
     5339#: tpl/page_optm/settings_media.tpl.php:162
    53645340msgid "Automatically generate LQIP in the background via a cron-based queue."
    53655341msgstr ""
    53665342
    5367 #: tpl/page_optm/settings_media.tpl.php:178
     5343#: tpl/page_optm/settings_media.tpl.php:164
    53685344msgid ""
    53695345"If set to %1$s, before the placeholder is localized, the %2$s configuration "
     
    53715347msgstr ""
    53725348
    5373 #: tpl/page_optm/settings_media.tpl.php:182
     5349#: tpl/page_optm/settings_media.tpl.php:168
    53745350msgid ""
    53755351"If set to %s this is done in the foreground, which may slow down page load."
    53765352msgstr ""
    53775353
    5378 #: tpl/page_optm/settings_media.tpl.php:202
     5354#: tpl/page_optm/settings_media.tpl.php:188
    53795355msgid "Size list in queue waiting for cron"
    53805356msgstr ""
    53815357
     5358#: tpl/page_optm/settings_media.tpl.php:221
     5359msgid "Load iframes only when they enter the viewport."
     5360msgstr ""
     5361
    53825362#: tpl/page_optm/settings_media.tpl.php:235
    5383 msgid "Load iframes only when they enter the viewport."
    5384 msgstr ""
    5385 
    5386 #: tpl/page_optm/settings_media.tpl.php:249
    53875363msgid ""
    53885364"Set an explicit width and height on image elements to reduce layout shifts "
     
    53905366msgstr ""
    53915367
    5392 #: tpl/page_optm/settings_media.tpl.php:260
     5368#: tpl/page_optm/settings_media.tpl.php:246
    53935369msgid "Use %1$s to bypass remote image dimension check when %2$s is ON."
    53945370msgstr ""
  • litespeed-cache/trunk/litespeed-cache.php

    r3031822 r3076030  
    55 * Plugin URI:        https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration
    66 * Description:       High-performance page caching and site optimization from LiteSpeed
    7  * Version:           6.1
     7 * Version:           6.2
    88 * Author:            LiteSpeed Technologies
    99 * Author URI:        https://www.litespeedtech.com
     
    3535}
    3636
    37 !defined('LSCWP_V') && define('LSCWP_V', '6.1');
     37!defined('LSCWP_V') && define('LSCWP_V', '6.2');
    3838
    3939!defined('LSCWP_CONTENT_DIR') && define('LSCWP_CONTENT_DIR', WP_CONTENT_DIR);
  • litespeed-cache/trunk/readme.txt

    r3031822 r3076030  
    33Tags: caching, optimize, performance, pagespeed, core web vitals, seo, speed, image optimize, compress, object cache, redis, memcached, database cleaner
    44Requires at least: 4.0
    5 Tested up to: 6.4.3
    6 Stable tag: 6.1
     5Tested up to: 6.5.2
     6Stable tag: 6.2
    77License: GPLv3
    88License URI: http://www.gnu.org/licenses/gpl.html
     
    251251== Changelog ==
    252252
    253 = 6.1 - Feb 5 2024 =
     253= 6.2 - Apr 23 2024 =
     254* 🌱**Crawler** Added Crawler hit/miss filter. (#328853)
     255* 🌱**CLI** Image optimization now supports `wp litespeed-image batch_switch orig/optm`. (A2Hosting)
     256* 🌱**VPI** Auto preload VPI images. (Ankit)
     257* **Object** Added support for username/password authentication for Redis (PR#616 Donatas Abraitis/hostinger)
     258* **Page Optimize** Now supporting Elementors data-settings WebP replacement. (Thanks to Ryan D)
     259* **Cache** Send `Cache-Control: no-cache, no-store, must-revalidate, max-age=0` when page is not cacheable. (asafm7/Ruikai)
     260* **Cache** Cache control will respect `X-Http-Method-Override` now. (George)
     261* **Cache** No cache for `X-Http-Method-Override: HEAD`. (George)
     262* **Cache** Specified LSCWP in adv-cache compatible file.
     263* **Cache** Fixed redirection loop if query string has tailing ampersand (#389629)
     264* **Cache** Dropped "Cache Favicon.ico" option as it is redundant with 404 cache. (Lauren)
     265* **Cache** Fixed deprecated PHP v8 warning in page redirection. (Issue#617 dcx15)
     266* **Cloud** REST callback used ACL for QC ips validation.
     267* **Cloud** Fixed a typo in parsing cloud msg which prevented error messages to show.
     268* **Cloud** Carried on PHP ver for better version detection purpose.
     269* **Cloud** Escaped token to show correctly in report.
     270* **Cloud** Fixed a QC cloud ip verification setup failure in PHP 5.3.
     271* 🐞**Cloud** Fixed a continual new version detection.
     272* 🐞**Image Optimize** Fixed a summary counter mismatch for finished images. (A2Hosting)
     273* **CDN** Auto CDN setup compatibility with WP versions less than 5.3.
     274* 🐞**CDN** Fixed wrong replacement of non image files in image replacement. (Lucas)
     275* **GUI** Further filtered admin banner messages to prevent from existing danger code in database.
     276* **REST** Fixed a potential PHP warning in REST check when param is empty. (metikar)
     277
     278= 6.1 - Feb 1 2024 =
    254279* 🌱**Database** New Clear Orphaned Post Meta optimizer function.
    255280* **Image Optimize** Fixed possible PHP warning for WP requests library response.
  • litespeed-cache/trunk/src/activation.cls.php

    r3009052 r3076030  
    11<?php
     2
    23/**
    34 * The plugin activation class.
     
    910 * @author      LiteSpeed Technologies <[email protected]>
    1011 */
     12
    1113namespace LiteSpeed;
    1214
     
    4648        if (version_compare($wp_version, '5.3', '<') && !file_exists($advanced_cache)) {
    4749            $file_pointer = fopen($advanced_cache, 'w');
    48             fwrite($file_pointer, "<?php\n\n// A compatibility placeholder for WordPress < v5.3\n");
     50            fwrite($file_pointer, "<?php\n\n// A compatibility placeholder for WordPress < v5.3\n// Created by LSCWP v6.1+");
    4951            fclose($file_pointer);
    5052        }
  • litespeed-cache/trunk/src/admin-display.cls.php

    r3009052 r3076030  
    427427    public static function add_notice($color, $msg, $echo = false, $irremovable = false)
    428428    {
     429        // self::debug("add_notice msg", $msg);
    429430        // Bypass adding for CLI or cron
    430431        if (defined('LITESPEED_CLI') || defined('DOING_CRON')) {
     
    500501                    $added_thickbox = true;
    501502                }
    502                 echo $msg;
     503                echo wp_kses_post($msg);
    503504            }
    504505        }
     
    529530                        '</p></div>';
    530531                }
    531                 echo $msg;
     532                echo wp_kses_post($msg);
    532533            }
    533534        }
  • litespeed-cache/trunk/src/base.cls.php

    r3009052 r3076030  
    4141    const O_CACHE_REST = 'cache-rest';
    4242    const O_CACHE_PAGE_LOGIN = 'cache-page_login';
    43     const O_CACHE_FAVICON = 'cache-favicon';
     43    const O_CACHE_FAVICON = 'cache-favicon'; // Deprecated since v6.2. TODO: Will drop after v6.5
    4444    const O_CACHE_RES = 'cache-resources';
    4545    const O_CACHE_MOBILE = 'cache-mobile';
     
    192192    ## --------------        Media      ----------------- ##
    193193    ## -------------------------------------------------- ##
    194     const O_MEDIA_PRELOAD_FEATURED = 'media-preload_featured';
     194    const O_MEDIA_PRELOAD_FEATURED = 'media-preload_featured'; // Deprecated since v6.2. TODO: Will drop after v6.5
    195195    const O_MEDIA_LAZY = 'media-lazy';
    196196    const O_MEDIA_LAZY_PLACEHOLDER = 'media-lazy_placeholder';
     
    284284    const ENV_CRAWLER_LOAD_LIMIT_ENFORCE = 'CRAWLER_LOAD_LIMIT_ENFORCE';
    285285
    286     // const O_FAVICON = 'litespeed-cache-favicon';
    287 
    288286    const CRWL_COOKIE_NAME = 'name';
    289287    const CRWL_COOKIE_VALS = 'vals';
     
    345343        self::O_CACHE_REST => false,
    346344        self::O_CACHE_PAGE_LOGIN => false,
    347         self::O_CACHE_FAVICON => false,
    348345        self::O_CACHE_RES => false,
    349346        self::O_CACHE_MOBILE => false,
     
    478475
    479476        // Media
    480         self::O_MEDIA_PRELOAD_FEATURED => false,
    481477        self::O_MEDIA_LAZY => false,
    482478        self::O_MEDIA_LAZY_PLACEHOLDER => '',
     
    561557        self::O_GUEST => false,
    562558
    563         self::O_CACHE_FAVICON => false,
    564559        self::O_CACHE_RES => false,
    565560        self::O_CACHE_BROWSER => false,
  • litespeed-cache/trunk/src/cdn-setup.cls.php

    r3009052 r3076030  
    4646
    4747        if (isset($params['token'])) {
    48             $this->_setup_token = $params['token'];
     48            $this->_setup_token = esc_html($params['token']);
    4949            $this->cls('Conf')->update_confs(array(self::O_QC_TOKEN => $this->_setup_token));
    5050            unset($_GET['token']);
  • litespeed-cache/trunk/src/cdn.cls.php

    r3009052 r3076030  
    11<?php
     2
    23/**
    34 * The CDN class.
     
    910 * @author      LiteSpeed Technologies <[email protected]>
    1011 */
     12
    1113namespace LiteSpeed;
    1214
     
    316318                    continue;
    317319                }
    318             } else {
     320            } elseif (in_array($postfix, array('jpg', 'jpeg', 'png', 'gif', 'svg', 'webp', 'avif'))) {
    319321                if (!($url2 = $this->rewrite($url, Base::CDN_MAPPING_INC_IMG))) {
    320322                    continue;
    321323                }
     324            } else {
     325                continue;
    322326            }
    323327
     
    325329            $this->content = str_replace($matches[0][$k], $attr, $this->content);
    326330        }
     331
     332        Debug2::debug2('[CDN] _replace_inline_css done');
    327333    }
    328334
  • litespeed-cache/trunk/src/cloud.cls.php

    r3009052 r3076030  
    165165            'v' => defined('LSCWP_CUR_V') ? LSCWP_CUR_V : '',
    166166            'src' => $src,
     167            'php' => phpversion(),
    167168        );
    168169        if (defined('LITESPEED_ERR')) {
     
    867868            self::debug('Carry_on usage', $json['_carry_on']);
    868869            // Store generic info
    869             foreach (array('usage', 'promo', 'partner', '_err', '_info', '_note', '_success') as $v) {
     870            foreach (array('usage', 'promo', 'partner', '_error', '_info', '_note', '_success') as $v) {
    870871                if (!empty($json['_carry_on'][$v])) {
    871872                    switch ($v) {
     
    11561157        }
    11571158
    1158         if (empty($this->_api_key())) {
     1159        // Note: Using empty here throws a fatal error in PHP v5.3
     1160        if (!$this->_api_key()) {
    11591161            self::debug('Lack of API key');
    11601162            return self::err('lack_of_api_key');
     
    14521454    public function is_from_cloud()
    14531455    {
    1454         if (empty($this->_summary['ips']) || empty($this->_summary['ips_ts']) || time() - $this->_summary['ips_ts'] > 86400 * self::TTL_IPS) {
     1456        $check_point = time() - 86400 * self::TTL_IPS;
     1457        if (empty($this->_summary['ips']) || empty($this->_summary['ips_ts']) || $this->_summary['ips_ts'] < $check_point) {
     1458            self::debug('Force updating ip as ips_ts is older than ' . self::TTL_IPS . ' days');
    14551459            $this->_update_ips();
    14561460        }
     
    14601464            self::debug('❌ Not our cloud IP');
    14611465
    1462             // Refresh IP list for future detection
    1463             $this->_update_ips();
     1466            // Auto check ip list again but need an interval limit safety.
     1467            if (empty($this->_summary['ips_ts_runner']) || time() - $this->_summary['ips_ts_runner'] > 600) {
     1468                self::debug('Force updating ip as ips_ts_runner is older than 10mins');
     1469                // Refresh IP list for future detection
     1470                $this->_update_ips();
     1471                $res = $this->cls('Router')->ip_access($this->_summary['ips']);
     1472                if (!$res) {
     1473                    self::debug('❌ 2nd time: Not our cloud IP');
     1474                } else {
     1475                    self::debug('✅ Passed Cloud IP verification');
     1476                }
     1477                return $res;
     1478            }
    14641479        } else {
    14651480            self::debug('✅ Passed Cloud IP verification');
     
    14771492    {
    14781493        self::debug('Load remote Cloud IP list from ' . self::CLOUD_IPS);
     1494        // Prevent multiple call in a short period
     1495        self::save_summary(array('ips_ts' => time(), 'ips_ts_runner' => time()));
    14791496
    14801497        $response = wp_remote_get(self::CLOUD_IPS . '?json');
     
    14871504        $json = json_decode($response['body'], true);
    14881505
    1489         self::save_summary(array('ips_ts' => time(), 'ips' => $json));
     1506        self::debug('Load ips', $json);
     1507        self::save_summary(array('ips' => $json));
    14901508    }
    14911509
  • litespeed-cache/trunk/src/control.cls.php

    r3009052 r3076030  
    11<?php
     2
    23/**
    34 * The plugin cache-control class for X-Litespeed-Cache-Control
     
    89 * @author      LiteSpeed Technologies <[email protected]>
    910 */
     11
    1012namespace LiteSpeed;
    1113
     
    544546
    545547                if ($v == PHP_URL_QUERY) {
    546                     $url_parsed = urldecode($url_parsed);
    547                     $target = urldecode($target);
     548                    $url_parsed = $url_parsed ? urldecode($url_parsed) : '';
     549                    $target = $target ? urldecode($target) : '';
     550                    if (substr($url_parsed, -1) == '&') {
     551                        $url_parsed = substr($url_parsed, 0, -1);
     552                    }
    548553                }
    549554
     
    747752
    748753    /**
     754     * Get request method w/ compatibility to X-Http-Method-Override
     755     *
     756     * @since 6.2
     757     */
     758    private function _get_req_method()
     759    {
     760        if (isset($_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'])) {
     761            self::debug('X-Http-Method-Override -> ' . $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE']);
     762            defined('LITESPEED_X_HTTP_METHOD_OVERRIDE') || define('LITESPEED_X_HTTP_METHOD_OVERRIDE', true);
     763            return $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'];
     764        }
     765        if (isset($_SERVER['REQUEST_METHOD'])) {
     766            return $_SERVER['REQUEST_METHOD'];
     767        }
     768        return 'unknown';
     769    }
     770
     771    /**
    749772     * Check if a page is cacheable based on litespeed setting.
    750773     *
     
    761784        }
    762785
    763         $method = isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : 'unknown';
     786        $method = $this->_get_req_method();
     787        if (defined('LITESPEED_X_HTTP_METHOD_OVERRIDE') && LITESPEED_X_HTTP_METHOD_OVERRIDE && $method == 'HEAD') {
     788            return $this->_no_cache_for('HEAD method from override');
     789        }
    764790        if ('GET' !== $method && 'HEAD' !== $method) {
    765791            return $this->_no_cache_for('Not GET method: ' . $method);
  • litespeed-cache/trunk/src/core.cls.php

    r3031822 r3076030  
    487487
    488488        // Log ESI nonce buffer empty issue
    489         if (defined('LSCACHE_IS_ESI') && strlen($buffer) == 0) {
    490             // TODO: log ref somewhere
     489        if (defined('LSCACHE_IS_ESI') && strlen($buffer) != 0) {
     490            // log ref for debug purpose
     491            error_log('ESI buffer empty ' . $_SERVER['REQUEST_URI']);
    491492        }
    492493
     
    611612        if (defined('LITESPEED_ON') && $control_header) {
    612613            $this->_http_header($control_header);
     614            if (!Control::is_cacheable()) {
     615                $this->_http_header('Cache-Control: no-cache, no-store, must-revalidate, max-age=0'); // @ref: https://wordpress.org/support/topic/apply_filterslitespeed_control_cacheable-returns-false-for-cacheable/
     616            }
    613617            if (defined('LSCWP_LOG')) {
    614618                $this->_comment($control_header);
  • litespeed-cache/trunk/src/crawler-map.cls.php

    r3009052 r3076030  
    299299        }
    300300
     301        $type = Router::verify_type();
     302
    301303        $where = '';
    302304        if (!empty($_POST['kw'])) {
    303             $q = "SELECT * FROM `$this->_tb` WHERE url LIKE %s ORDER BY id LIMIT %d, %d";
     305            $q = "SELECT * FROM `$this->_tb` WHERE url LIKE %s";
     306            if ($type == 'hit') {
     307                $q .= " AND res LIKE '%H%'";
     308            }
     309            if ($type == 'miss') {
     310                $q .= " AND res LIKE '%M%'";
     311            }
     312            if ($type == 'blacklisted') {
     313                $q .= " AND res LIKE '%B%'";
     314            }
     315            $q .= ' ORDER BY id LIMIT %d, %d';
    304316            $where = '%' . $wpdb->esc_like($_POST['kw']) . '%';
    305317            return $wpdb->get_results($wpdb->prepare($q, $where, $offset, $limit), ARRAY_A);
    306318        }
    307319
    308         $q = "SELECT * FROM `$this->_tb` ORDER BY id LIMIT %d, %d";
     320        $q = "SELECT * FROM `$this->_tb`";
     321        if ($type == 'hit') {
     322            $q .= " WHERE res LIKE '%H%'";
     323        }
     324        if ($type == 'miss') {
     325            $q .= " WHERE res LIKE '%M%'";
     326        }
     327        if ($type == 'blacklisted') {
     328            $q .= " WHERE res LIKE '%B%'";
     329        }
     330        $q .= ' ORDER BY id LIMIT %d, %d';
    309331        // self::debug("q=$q offset=$offset, limit=$limit");
    310332        return $wpdb->get_results($wpdb->prepare($q, $offset, $limit), ARRAY_A);
     
    323345
    324346        $q = "SELECT COUNT(*) FROM `$this->_tb`";
     347
     348        $type = Router::verify_type();
     349        if ($type == 'hit') {
     350            $q .= " WHERE res LIKE '%H%'";
     351        }
     352        if ($type == 'miss') {
     353            $q .= " WHERE res LIKE '%M%'";
     354        }
     355        if ($type == 'blacklisted') {
     356            $q .= " WHERE res LIKE '%B%'";
     357        }
     358
    325359        return $wpdb->get_var($q);
    326360    }
  • litespeed-cache/trunk/src/gui.cls.php

    r3009052 r3076030  
    11<?php
     2
    23/**
    34 * The frontend GUI class.
     
    78 * @author      LiteSpeed Technologies <[email protected]>
    89 */
     10
    911namespace LiteSpeed;
     12
    1013defined('WPINC') || exit();
    1114
  • litespeed-cache/trunk/src/htaccess.cls.php

    r3031822 r3076030  
    4545    const MARKER_NOCACHE_USER_AGENTS = '### marker NOCACHE USER AGENTS';
    4646    const MARKER_CACHE_RESOURCE = '### marker CACHE RESOURCE';
    47     const MARKER_FAVICON = '### marker FAVICON';
    4847    const MARKER_BROWSER_CACHE = '### marker BROWSER CACHE';
    4948    const MARKER_MINIFY = '### marker MINIFY';
     
    578577        }
    579578
    580         // favicon
    581         // frontend and backend
    582         $id = Base::O_CACHE_FAVICON;
    583         if (!empty($cfg[$id])) {
    584             $new_rules[] = $new_rules_backend[] = self::MARKER_FAVICON . self::MARKER_START;
    585             $new_rules[] = $new_rules_backend[] = 'RewriteRule favicon\.ico$ - [E=cache-control:max-age=86400]';
    586             $new_rules[] = $new_rules_backend[] = self::MARKER_FAVICON . self::MARKER_END;
    587             $new_rules[] = '';
    588         }
    589 
    590579        // CORS font rules
    591580        $id = Base::O_CDN;
  • litespeed-cache/trunk/src/img-optm.cls.php

    r3031822 r3076030  
    17291729        $groups_all = $wpdb->get_var($q);
    17301730        $groups_new = $wpdb->get_var($q . ' AND ID>' . (int) $this->_summary['next_post_id'] . ' ORDER BY ID');
    1731         $groups_done = $wpdb->get_var($q . ' AND ID<' . (int) $this->_summary['next_post_id'] . ' ORDER BY ID');
     1731        $groups_done = $wpdb->get_var($q . ' AND ID<=' . (int) $this->_summary['next_post_id'] . ' ORDER BY ID');
    17321732
    17331733        $q = "SELECT b.post_id
     
    18111811     *
    18121812     * @since  1.6.2
    1813      * @access private
    1814      */
    1815     private function _batch_switch($type)
     1813     * @access public
     1814     */
     1815    public function batch_switch($type)
    18161816    {
    18171817        global $wpdb;
    18181818
    1819         $offset = !empty($_GET['litespeed_i']) ? $_GET['litespeed_i'] : 0;
     1819        if (defined('LITESPEED_CLI') || defined('DOING_CRON')) {
     1820            $offset = 0;
     1821            while ($offset !== 'done') {
     1822                Admin_Display::info("Starting switch to $type [offset] $offset");
     1823                $offset = $this->_batch_switch($type, $offset);
     1824            }
     1825        } else {
     1826            $offset = !empty($_GET['litespeed_i']) ? $_GET['litespeed_i'] : 0;
     1827
     1828            $newOffset = $this->_batch_switch($type, $offset);
     1829            if ($newOffset !== 'done') {
     1830                return Router::self_redirect(Router::ACTION_IMG_OPTM, $type);
     1831            }
     1832        }
     1833
     1834        $msg = __('Switched images successfully.', 'litespeed-cache');
     1835        Admin_Display::succeed($msg);
     1836    }
     1837
     1838    /**
     1839     * Switch images per offset
     1840     */
     1841    private function _batch_switch($type, $offset)
     1842    {
     1843        global $wpdb;
    18201844        $limit = 500;
    18211845        $this->tmp_type = $type;
     
    18541878        }
    18551879
    1856         self::debug('batch switched images total: ' . $i);
     1880        self::debug('batch switched images total: ' . $i . ' [type] ' . $type);
    18571881
    18581882        $offset++;
    18591883        $to_be_continued = $wpdb->get_row($wpdb->prepare($img_q, array($offset * $limit, 1)));
    18601884        if ($to_be_continued) {
    1861             return Router::self_redirect(Router::ACTION_IMG_OPTM, $type);
    1862         }
    1863 
    1864         $msg = __('Switched images successfully.', 'litespeed-cache');
    1865         Admin_Display::succeed($msg);
     1885            return $offset;
     1886        }
     1887        return 'done';
    18661888    }
    18671889
     
    18811903        $bk_optm_file = $local_filename . '.bk.optm.' . $extension;
    18821904
     1905        // self::debug('_switch_bk_file ' . $bk_file . ' [type] ' . $this->tmp_type);
    18831906        // switch to ori
    1884         if ($this->tmp_type === self::TYPE_BATCH_SWITCH_ORI) {
     1907        if ($this->tmp_type === self::TYPE_BATCH_SWITCH_ORI || $this->tmp_type == 'orig') {
     1908            // self::debug('switch to orig ' . $bk_file);
    18851909            if (!$this->__media->info($bk_file, $this->tmp_pid)) {
    18861910                return;
     
    18901914        }
    18911915        // switch to optm
    1892         elseif ($this->tmp_type === self::TYPE_BATCH_SWITCH_OPTM) {
     1916        elseif ($this->tmp_type === self::TYPE_BATCH_SWITCH_OPTM || $this->tmp_type == 'optm') {
     1917            // self::debug('switch to optm ' . $bk_file);
    18931918            if (!$this->__media->info($bk_optm_file, $this->tmp_pid)) {
    18941919                return;
     
    20942119                break;
    20952120
    2096                 /**
    2097                 * Batch switch
    2098                 * @since 1.6.3
    2099                 */
     2121            /**
     2122            * Batch switch
     2123            * @since 1.6.3
     2124            */
    21002125            case self::TYPE_BATCH_SWITCH_ORI:
    21012126            case self::TYPE_BATCH_SWITCH_OPTM:
    2102                 $this->_batch_switch($type);
     2127                $this->batch_switch($type);
    21032128                break;
    21042129
  • litespeed-cache/trunk/src/lang.cls.php

    r3009052 r3076030  
    109109            self::O_CACHE_REST => __('Cache REST API', 'litespeed-cache'),
    110110            self::O_CACHE_PAGE_LOGIN => __('Cache Login Page', 'litespeed-cache'),
    111             self::O_CACHE_FAVICON => __('Cache favicon.ico', 'litespeed-cache'),
    112111            self::O_CACHE_RES => __('Cache PHP Resources', 'litespeed-cache'),
    113112            self::O_CACHE_MOBILE => __('Cache Mobile', 'litespeed-cache'),
     
    185184            self::O_DISCUSS_AVATAR_CACHE_TTL => __('Gravatar Cache TTL', 'litespeed-cache'),
    186185
    187             self::O_MEDIA_PRELOAD_FEATURED => __('Preload Featured Image', 'litespeed-cache'),
    188186            self::O_MEDIA_LAZY => __('Lazy Load Images', 'litespeed-cache'),
    189187            self::O_MEDIA_LAZY_EXC => __('Lazy Load Image Excludes', 'litespeed-cache'),
  • litespeed-cache/trunk/src/media.cls.php

    r3031822 r3076030  
    2323    private $content;
    2424    private $_wp_upload_dir;
     25    private $_vpi_preload_list = array();
    2526
    2627    /**
     
    8586
    8687        // <link rel="preload" as="image" href="xx">
    87         if ($this->conf(Base::O_MEDIA_PRELOAD_FEATURED) && $wp_query->is_single) {
    88             $featured_image_url = get_the_post_thumbnail_url();
    89             if ($featured_image_url) {
    90                 self::debug('Append featured image to head: ' . $featured_image_url);
    91                 if ((defined('LITESPEED_GUEST_OPTM') || $this->conf(Base::O_IMG_OPTM_WEBP)) && $this->webp_support()) {
    92                     $featured_image_url = $this->replace_webp($featured_image_url) ?: $featured_image_url;
    93                 }
    94                 $content .= '<link rel="preload" as="image" href="' . $featured_image_url . '">'; // TODO: use imagesrcset
    95             }
    96         }
     88        if ($this->_vpi_preload_list) {
     89            foreach ($this->_vpi_preload_list as $v) {
     90                $content .= '<link rel="preload" as="image" href="' . $v . '">';
     91            }
     92        }
     93        //  $featured_image_url = get_the_post_thumbnail_url();
     94        //  if ($featured_image_url) {
     95        //      self::debug('Append featured image to head: ' . $featured_image_url);
     96        //      if ((defined('LITESPEED_GUEST_OPTM') || $this->conf(Base::O_IMG_OPTM_WEBP)) && $this->webp_support()) {
     97        //          $featured_image_url = $this->replace_webp($featured_image_url) ?: $featured_image_url;
     98        //      }
     99        //  }
     100        // }
    97101
    98102        return $content;
     
    220224    public function rename($short_file_path, $short_file_path_new, $post_id)
    221225    {
     226        // self::debug('renaming ' . $short_file_path . ' -> ' . $short_file_path_new);
    222227        $real_file = $this->_wp_upload_dir['basedir'] . '/' . $short_file_path;
    223228        $real_file_new = $this->_wp_upload_dir['basedir'] . '/' . $short_file_path_new;
     
    525530        $cfg_vpi = defined('LITESPEED_GUEST_OPTM') || $this->conf(Base::O_MEDIA_VPI);
    526531
     532        // Preload VPI
     533        if ($cfg_vpi) {
     534            $this->_parse_img_for_preload();
     535        }
     536
    527537        if ($cfg_lazy) {
    528538            if ($cfg_vpi) {
     
    576586            $lazy_lib = '<script data-no-optimize="1">' . File::read(LSCWP_DIR . self::LIB_FILE_IMG_LAZYLOAD) . '</script>';
    577587            $this->content = str_replace('</body>', $lazy_lib . '</body>', $this->content);
     588        }
     589    }
     590
     591    /**
     592     * Parse img src for VPI preload only
     593     * Note: Didn't reuse the _parse_img() bcoz it contains parent cls replacement and other logic which is not needed for preload
     594     *
     595     * @since 6.2
     596     */
     597    private function _parse_img_for_preload()
     598    {
     599        // Load VPI setting
     600        $is_mobile = $this->_separate_mobile();
     601        $vpi_files = $this->cls('Metabox')->setting($is_mobile ? 'litespeed_vpi_list_mobile' : 'litespeed_vpi_list');
     602        if ($vpi_files) {
     603            $vpi_files = Utility::sanitize_lines($vpi_files, 'basename');
     604        }
     605        if (!$vpi_files) {
     606            return;
     607        }
     608
     609        $content = preg_replace(array('#<!--.*-->#sU', '#<noscript([^>]*)>.*</noscript>#isU'), '', $this->content);
     610        preg_match_all('#<img\s+([^>]+)/?>#isU', $content, $matches, PREG_SET_ORDER);
     611        foreach ($matches as $match) {
     612            $attrs = Utility::parse_attr($match[1]);
     613
     614            if (empty($attrs['src'])) {
     615                continue;
     616            }
     617
     618            if (strpos($attrs['src'], 'base64') !== false || substr($attrs['src'], 0, 5) === 'data:') {
     619                Debug2::debug2('[Media] lazyload bypassed base64 img');
     620                continue;
     621            }
     622
     623            if (strpos($attrs['src'], '{') !== false) {
     624                Debug2::debug2('[Media] image src has {} ' . $attrs['src']);
     625                continue;
     626            }
     627
     628            // If the src contains VPI filename, then preload it
     629            if (!Utility::str_hit_array($attrs['src'], $vpi_files)) {
     630                continue;
     631            }
     632
     633            Debug2::debug2('[Media] VPI preload found and matched: ' . $attrs['src']);
     634
     635            $this->_vpi_preload_list[] = $attrs['src'];
    578636        }
    579637    }
     
    884942        Debug2::debug2('[Media] Start replacing bakcground WebP.');
    885943
     944        // Handle Elementors data-settings json encode background-images
     945        $content = $this->replace_urls_in_json($content);
     946
    886947        // preg_match_all( '#background-image:(\s*)url\((.*)\)#iU', $content, $matches );
    887948        preg_match_all('#url\(([^)]+)\)#iU', $content, $matches);
     
    910971            $html_snippet = str_replace($url, $url2, $matches[0][$k]);
    911972            $content = str_replace($matches[0][$k], $html_snippet, $content);
     973        }
     974
     975        return $content;
     976    }
     977
     978    /**
     979     * Replace images in json data settings attributes
     980     *
     981     * @since  6.2
     982     */
     983    public function replace_urls_in_json($content)
     984    {
     985        $pattern = '/data-settings="(.*?)"/i';
     986
     987        preg_match_all($pattern, $content, $matches, PREG_SET_ORDER);
     988
     989        foreach ($matches as $match) {
     990            // Check if the string contains HTML entities
     991            $isEncoded = preg_match('/&quot;|&lt;|&gt;|&amp;|&apos;/', $match[1]);
     992
     993            // Decode HTML entities in the JSON string
     994            $jsonString = html_entity_decode($match[1]);
     995
     996            $jsonData = json_decode($jsonString, true);
     997
     998            if (json_last_error() === JSON_ERROR_NONE) {
     999                array_walk_recursive($jsonData, function (&$item, $key) {
     1000                    if ($key == 'url') {
     1001                        $item = $this->replace_webp($item);
     1002                    }
     1003                });
     1004
     1005                // Re-encode the modified array back to a JSON string
     1006                $newJsonString = json_encode($jsonData);
     1007
     1008                // Re-encode the JSON string to HTML entities only if it was originally encoded
     1009                if ($isEncoded) {
     1010                    $newJsonString = htmlspecialchars($newJsonString, ENT_QUOTES | 0); // ENT_HTML401 is for PHPv5.4+
     1011                }
     1012
     1013                // Replace the old JSON string in the content with the new, modified JSON string
     1014                $content = str_replace($match[1], $newJsonString, $content);
     1015            }
    9121016        }
    9131017
  • litespeed-cache/trunk/src/object-cache.cls.php

    r3031822 r3076030  
    294294
    295295                if ($this->_cfg_pswd) {
    296                     $this->_conn->auth($this->_cfg_pswd);
     296                    if ($this->_cfg_user) {
     297                        $this->_conn->auth(array($this->_cfg_user, $this->_cfg_pswd));
     298                    } else {
     299                        $this->_conn->auth($this->_cfg_pswd);
     300                    }
    297301                }
    298302
  • litespeed-cache/trunk/src/optimize.cls.php

    r3009052 r3076030  
    12281228    {
    12291229        if (strpos($ori, ' async') !== false) {
    1230             $ori = str_replace(' async', '', $ori);
     1230            $ori = preg_replace('# async(?:=([\'"])(?:[^\1]+)\1)?#isU', '', $ori);
    12311231        }
    12321232
  • litespeed-cache/trunk/src/report.cls.php

    r3009052 r3076030  
    11<?php
     2
    23/**
    34 * The report class
     
    910 * @author     LiteSpeed Technologies <[email protected]>
    1011 */
     12
    1113namespace LiteSpeed;
    1214
     
    231233            if (!is_string($v)) {
    232234                $v = var_export($v, true);
     235            } else {
     236                $v = esc_html($v);
    233237            }
    234238
  • litespeed-cache/trunk/src/rest.cls.php

    r3009052 r3076030  
    148148    public function is_from_cloud()
    149149    {
    150         return true;
    151         // return $this->cls( 'Cloud' )->is_from_cloud();
     150        // return true;
     151        return $this->cls('Cloud')->is_from_cloud();
    152152    }
    153153
     
    360360        // Debug2::debug( '[Util] is_rest check [curr] ', $current_url );
    361361        // Debug2::debug( '[Util] is_rest check [curr2] ', wp_parse_url( add_query_arg( array( ) ) ) );
    362         return strpos($current_url['path'], $rest_url['path']) === 0;
     362        if ($current_url !== false && !empty($current_url['path']) && $rest_url !== false && !empty($rest_url['path'])) {
     363            return strpos($current_url['path'], $rest_url['path']) === 0;
     364        }
     365
     366        return false;
    363367    }
    364368}
  • litespeed-cache/trunk/tpl/banner/new_version.php

    r2761310 r3076030  
    11<?php
     2
    23namespace LiteSpeed;
    3 defined( 'WPINC' ) || exit;
     4
     5defined('WPINC') || exit;
    46
    57/**
    68 * NOTE: Only show for single site
    79 */
    8 if ( is_multisite() ) {
     10if (is_multisite()) {
    911    return;
    1012}
    1113
    12 if ( $this->conf( Base::O_AUTO_UPGRADE ) ) {
     14if ($this->conf(Base::O_AUTO_UPGRADE)) {
    1315    return;
    1416}
    1517
    16 $current = get_site_transient( 'update_plugins' );
    17 if ( ! isset( $current->response[ Core::PLUGIN_FILE ] ) ) {
     18$current = get_site_transient('update_plugins');
     19if (!isset($current->response[Core::PLUGIN_FILE])) {
    1820    return;
    1921}
    2022
    21 $last_check = empty( $this->_summary[ 'new_version.last_check' ] ) ? 0 : $this->_summary[ 'new_version.last_check' ];
     23$last_check = empty($this->_summary['new_version.last_check']) ? 0 : $this->_summary['new_version.last_check'];
    2224// Check once in a half day
    23 if ( time() - $last_check > 43200 ) {
    24     Admin_Display::save_summary( array( 'new_version.last_check' => time() ) );
     25if (time() - $last_check > 43200) {
     26    GUI::save_summary(array('new_version.last_check' => time()));
    2527
    2628    // Detect version
    27     $auto_v = Cloud::version_check( 'new_version_banner' );
    28     if ( ! empty( $auto_v[ 'latest' ] ) ) {
    29         Admin_Display::save_summary( array( 'new_version.v' => $auto_v[ 'latest' ] ) );
     29    $auto_v = Cloud::version_check('new_version_banner');
     30    if (!empty($auto_v['latest'])) {
     31        GUI::save_summary(array('new_version.v' => $auto_v['latest']));
    3032    }
    3133    // After detect, don't show, just return and show next time
     
    3335}
    3436
    35 if ( ! isset( $this->_summary[ 'new_version.v' ] ) ) {
     37if (!isset($this->_summary['new_version.v'])) {
    3638    return;
    3739}
    3840
    3941// Check if current version is newer than auto_v or not
    40 if ( version_compare( Core::VER, $this->_summary[ 'new_version.v' ], '>=' ) ) {
     42if (version_compare(Core::VER, $this->_summary['new_version.v'], '>=')) {
    4143    return;
    4244}
     
    4648$this->_promo_true = true;
    4749
    48 if ( $check_only ) {
     50if ($check_only) {
    4951    return;
    5052}
     
    5557
    5658    <div class="litespeed-banner-promo-content">
    57         <h3 class="litespeed-banner-title litespeed-top15"><?php echo __( 'LiteSpeed Cache', 'litespeed-cache' ); ?>: <?php echo __( 'New Version Available!', 'litespeed-cache' ); ?></h3>
     59        <h3 class="litespeed-banner-title litespeed-top15"><?php echo __('LiteSpeed Cache', 'litespeed-cache'); ?>: <?php echo __('New Version Available!', 'litespeed-cache'); ?></h3>
    5860        <div class="litespeed-banner-description">
    5961            <div class="litespeed-banner-description-padding-right-15">
    6062                <p class="litespeed-banner-desciption-content">
    61                     <?php echo sprintf( __( 'New release %s is available now.', 'litespeed-cache' ), 'v' . $this->_summary[ 'new_version.v' ] ); ?>
     63                    <?php echo sprintf(__('New release %s is available now.', 'litespeed-cache'), 'v' . $this->_summary['new_version.v']); ?>
    6264                </p>
    6365            </div>
    6466            <div class="litespeed-row-flex litespeed-banner-description">
    6567                <div class="litespeed-banner-description-padding-right-15">
    66                     <?php $url = Utility::build_url( Router::ACTION_ACTIVATION, Activation::TYPE_UPGRADE ); ?>
     68                    <?php $url = Utility::build_url(Router::ACTION_ACTIVATION, Activation::TYPE_UPGRADE); ?>
    6769                    <a href="<?php echo $url; ?>" class="button litespeed-btn-success litespeed-btn-mini">
    6870                        <i class="dashicons dashicons-image-rotate">&nbsp;</i>
    69                          <?php echo __( 'Upgrade', 'litespeed-cache' ); ?>
     71                        <?php echo __('Upgrade', 'litespeed-cache'); ?>
    7072                    </a>
    7173                </div>
    7274                <div class="litespeed-banner-description-padding-right-15">
    7375                    <?php
    74                         $cfg = array( Conf::TYPE_SET . '[' . Base::O_AUTO_UPGRADE . ']' => 1 );
    75                         $url = Utility::build_url( Router::ACTION_CONF, Conf::TYPE_SET, false, null, $cfg );
     76                    $cfg = array(Conf::TYPE_SET . '[' . Base::O_AUTO_UPGRADE . ']' => 1);
     77                    $url = Utility::build_url(Router::ACTION_CONF, Conf::TYPE_SET, false, null, $cfg);
    7678                    ?>
    7779                    <a href="<?php echo $url; ?>" class="button litespeed-btn-primary litespeed-btn-mini">
    7880                        <i class="dashicons dashicons-update">&nbsp;</i>
    79                         <?php echo __( 'Turn On Auto Upgrade', 'litespeed-cache' ); ?>
     81                        <?php echo __('Turn On Auto Upgrade', 'litespeed-cache'); ?>
    8082                    </a>
    8183                </div>
    8284                <div class="litespeed-banner-description-padding-right-15">
    83                     <?php $url = Utility::build_url( Core::ACTION_DISMISS, GUI::TYPE_DISMISS_PROMO, false, null, array( 'promo_tag' => 'new_version' ) ); ?>
     85                    <?php $url = Utility::build_url(Core::ACTION_DISMISS, GUI::TYPE_DISMISS_PROMO, false, null, array('promo_tag' => 'new_version')); ?>
    8486                    <a href="<?php echo $url; ?>" class="button litespeed-btn-warning litespeed-btn-mini">
    85                          <?php echo __( 'Maybe Later', 'litespeed-cache' ); ?>
     87                        <?php echo __('Maybe Later', 'litespeed-cache'); ?>
    8688                    </a>
    8789                </div>
     
    9193
    9294    <div>
    93         <?php $dismiss_url = Utility::build_url( Core::ACTION_DISMISS, GUI::TYPE_DISMISS_PROMO, false, null, array( 'promo_tag' => 'new_version', 'later' => 1 ) ); ?>
     95        <?php $dismiss_url = Utility::build_url(Core::ACTION_DISMISS, GUI::TYPE_DISMISS_PROMO, false, null, array('promo_tag' => 'new_version', 'later' => 1)); ?>
    9496        <span class="screen-reader-text">Dismiss this notice.</span>
    9597        <a href="<?php echo $dismiss_url; ?>" class="litespeed-notice-dismiss">X</a>
  • litespeed-cache/trunk/tpl/cache/network_settings-cache.tpl.php

    r2354196 r3076030  
    11<?php
     2
    23namespace LiteSpeed;
    3 defined( 'WPINC' ) || exit;
     4
     5defined('WPINC') || exit;
    46?>
    57
    68<h3 class="litespeed-title-short">
    7     <?php echo __( 'Cache Control Settings', 'litespeed-cache' ); ?>
    8     <?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/' ); ?>
     9    <?php echo __('Cache Control Settings', 'litespeed-cache'); ?>
     10    <?php Doc::learn_more('https://docs.litespeedtech.com/lscache/lscwp/cache/'); ?>
    911</h3>
    1012
    11 <table class="wp-list-table striped litespeed-table"><tbody>
    12     <tr>
    13         <th><?php echo __( 'Network Enable Cache', 'litespeed-cache' ); ?></th>
    14         <td>
    15             <?php $this->build_switch( Base::O_CACHE ); ?>
    16             <div class="litespeed-desc">
    17                 <?php echo __('Enabling LiteSpeed Cache for WordPress here enables the cache for the network.', 'litespeed-cache'); ?><br />
    18                 <?php echo __('It is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first.', 'litespeed-cache'); ?>
    19                 <?php echo __('This is to ensure compatibility prior to enabling the cache for all sites.', 'litespeed-cache'); ?>
    20             </div>
    21         </td>
    22     </tr>
     13<table class="wp-list-table striped litespeed-table">
     14    <tbody>
     15        <tr>
     16            <th><?php echo __('Network Enable Cache', 'litespeed-cache'); ?></th>
     17            <td>
     18                <?php $this->build_switch(Base::O_CACHE); ?>
     19                <div class="litespeed-desc">
     20                    <?php echo __('Enabling LiteSpeed Cache for WordPress here enables the cache for the network.', 'litespeed-cache'); ?><br />
     21                    <?php echo __('It is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first.', 'litespeed-cache'); ?>
     22                    <?php echo __('This is to ensure compatibility prior to enabling the cache for all sites.', 'litespeed-cache'); ?>
     23                </div>
     24            </td>
     25        </tr>
    2326
    24 <?php
    25 require LSCWP_DIR . 'tpl/cache/settings_inc.cache_favicon.tpl.php';
    26 require LSCWP_DIR . 'tpl/cache/settings_inc.cache_resources.tpl.php';
    27 require LSCWP_DIR . 'tpl/cache/settings_inc.cache_mobile.tpl.php';
    28 require LSCWP_DIR . 'tpl/cache/settings_inc.cache_dropquery.tpl.php';
    29 ?>
     27        <?php
     28        require LSCWP_DIR . 'tpl/cache/settings_inc.cache_resources.tpl.php';
     29        require LSCWP_DIR . 'tpl/cache/settings_inc.cache_mobile.tpl.php';
     30        require LSCWP_DIR . 'tpl/cache/settings_inc.cache_dropquery.tpl.php';
     31        ?>
    3032
    31 </tbody></table>
    32 
     33    </tbody>
     34</table>
  • litespeed-cache/trunk/tpl/cache/settings-cache.tpl.php

    r2524344 r3076030  
    11<?php
     2
    23namespace LiteSpeed;
    3 defined( 'WPINC' ) || exit;
     4
     5defined('WPINC') || exit;
    46?>
    57
    68<h3 class="litespeed-title-short">
    7     <?php echo __( 'Cache Control Settings', 'litespeed-cache' ); ?>
    8     <?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/' ); ?>
     9    <?php echo __('Cache Control Settings', 'litespeed-cache'); ?>
     10    <?php Doc::learn_more('https://docs.litespeedtech.com/lscache/lscwp/cache/'); ?>
    911</h3>
    1012
    11 <table class="wp-list-table striped litespeed-table"><tbody>
    12     <tr>
    13         <th>
    14             <?php $id = Base::O_CACHE; ?>
    15             <?php $this->title( $id ); ?>
    16         </th>
    17         <td>
    18             <?php if ( $this->_is_multisite ) : ?>
    19                 <?php $this->build_switch( $id, array( __( 'OFF', 'litespeed-cache' ), __( 'ON', 'litespeed-cache' ), __( 'Use Network Admin Setting', 'litespeed-cache' ) ) ); ?>
    20             <?php else : ?>
    21                 <?php $this->build_switch( $id ); ?>
    22             <?php endif; ?>
    23             <div class="litespeed-desc">
    24                 <?php echo sprintf(__('Please visit the <a %s>Information</a> page on how to test the cache.', 'litespeed-cache'),
    25                     'href="https://docs.litespeedtech.com/lscache/lscwp/installation/#testing" target="_blank"'); ?>
     13<table class="wp-list-table striped litespeed-table">
     14    <tbody>
     15        <tr>
     16            <th>
     17                <?php $id = Base::O_CACHE; ?>
     18                <?php $this->title($id); ?>
     19            </th>
     20            <td>
     21                <?php if ($this->_is_multisite) : ?>
     22                    <?php $this->build_switch($id, array(__('OFF', 'litespeed-cache'), __('ON', 'litespeed-cache'), __('Use Network Admin Setting', 'litespeed-cache'))); ?>
     23                <?php else : ?>
     24                    <?php $this->build_switch($id); ?>
     25                <?php endif; ?>
     26                <div class="litespeed-desc">
     27                    <?php echo sprintf(
     28                        __('Please visit the <a %s>Information</a> page on how to test the cache.', 'litespeed-cache'),
     29                        'href="https://docs.litespeedtech.com/lscache/lscwp/installation/#testing" target="_blank"'
     30                    ); ?>
    2631
    27                 <strong><?php echo __('NOTICE', 'litespeed-cache'); ?>: </strong><?php echo __('When disabling the cache, all cached entries for this site will be purged.', 'litespeed-cache'); ?>
     32                    <strong><?php echo __('NOTICE', 'litespeed-cache'); ?>: </strong><?php echo __('When disabling the cache, all cached entries for this site will be purged.', 'litespeed-cache'); ?>
    2833
    29                 <?php if ( $this->_is_multisite ): ?>
    30                 <br><?php echo __('The network admin setting can be overridden here.', 'litespeed-cache'); ?>
    31                 <?php endif; ?>
     34                    <?php if ($this->_is_multisite) : ?>
     35                        <br><?php echo __('The network admin setting can be overridden here.', 'litespeed-cache'); ?>
     36                    <?php endif; ?>
    3237
    33                 <?php if ( ! $this->conf( Base::O_CACHE ) && $this->conf( Base::O_CDN_QUIC ) ): ?>
    34                 <br><font class="litespeed-success"><?php echo __( 'With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server.', 'litespeed-cache' ); ?></font>
    35                 <?php endif; ?>
    36             </div>
    37         </td>
    38     </tr>
     38                    <?php if (!$this->conf(Base::O_CACHE) && $this->conf(Base::O_CDN_QUIC)) : ?>
     39                        <br>
     40                        <font class="litespeed-success"><?php echo __('With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server.', 'litespeed-cache'); ?></font>
     41                    <?php endif; ?>
     42                </div>
     43            </td>
     44        </tr>
    3945
    40     <tr>
    41         <th>
    42             <?php $id = Base::O_CACHE_PRIV; ?>
    43             <?php $this->title( $id ); ?>
    44         </th>
    45         <td>
    46             <?php $this->build_switch( $id ); ?>
    47             <div class="litespeed-desc">
    48                 <?php echo sprintf( __( 'Privately cache frontend pages for logged-in users. (LSWS %s required)', 'litespeed-cache' ), 'v5.2.1+' ); ?>
    49             </div>
    50         </td>
    51     </tr>
     46        <tr>
     47            <th>
     48                <?php $id = Base::O_CACHE_PRIV; ?>
     49                <?php $this->title($id); ?>
     50            </th>
     51            <td>
     52                <?php $this->build_switch($id); ?>
     53                <div class="litespeed-desc">
     54                    <?php echo sprintf(__('Privately cache frontend pages for logged-in users. (LSWS %s required)', 'litespeed-cache'), 'v5.2.1+'); ?>
     55                </div>
     56            </td>
     57        </tr>
    5258
    53     <tr>
    54         <th>
    55             <?php $id = Base::O_CACHE_COMMENTER; ?>
    56             <?php $this->title( $id ); ?>
    57         </th>
    58         <td>
    59             <?php $this->build_switch( $id ); ?>
    60             <div class="litespeed-desc">
    61                 <?php echo sprintf( __( 'Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)', 'litespeed-cache' ), 'v5.2.1+' ); ?>
    62             </div>
    63         </td>
    64     </tr>
     59        <tr>
     60            <th>
     61                <?php $id = Base::O_CACHE_COMMENTER; ?>
     62                <?php $this->title($id); ?>
     63            </th>
     64            <td>
     65                <?php $this->build_switch($id); ?>
     66                <div class="litespeed-desc">
     67                    <?php echo sprintf(__('Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)', 'litespeed-cache'), 'v5.2.1+'); ?>
     68                </div>
     69            </td>
     70        </tr>
    6571
    66     <tr>
    67         <th>
    68             <?php $id = Base::O_CACHE_REST; ?>
    69             <?php $this->title( $id ); ?>
    70         </th>
    71         <td>
    72             <?php $this->build_switch( $id ); ?>
    73             <div class="litespeed-desc">
    74                 <?php echo __( 'Cache requests made by WordPress REST API calls.', 'litespeed-cache' ); ?>
    75             </div>
    76         </td>
    77     </tr>
     72        <tr>
     73            <th>
     74                <?php $id = Base::O_CACHE_REST; ?>
     75                <?php $this->title($id); ?>
     76            </th>
     77            <td>
     78                <?php $this->build_switch($id); ?>
     79                <div class="litespeed-desc">
     80                    <?php echo __('Cache requests made by WordPress REST API calls.', 'litespeed-cache'); ?>
     81                </div>
     82            </td>
     83        </tr>
    7884
    79     <tr>
    80         <th>
    81             <?php $id = Base::O_CACHE_PAGE_LOGIN; ?>
    82             <?php $this->title( $id ); ?>
    83         </th>
    84         <td>
    85             <?php $this->build_switch( $id ); ?>
    86             <div class="litespeed-desc">
    87                 <?php echo __( 'Disabling this option may negatively affect performance.', 'litespeed-cache' ); ?>
    88             </div>
    89         </td>
    90     </tr>
     85        <tr>
     86            <th>
     87                <?php $id = Base::O_CACHE_PAGE_LOGIN; ?>
     88                <?php $this->title($id); ?>
     89            </th>
     90            <td>
     91                <?php $this->build_switch($id); ?>
     92                <div class="litespeed-desc">
     93                    <?php echo __('Disabling this option may negatively affect performance.', 'litespeed-cache'); ?>
     94                </div>
     95            </td>
     96        </tr>
    9197
    92     <?php
    93         if ( ! $this->_is_multisite ) :
    94             require LSCWP_DIR . 'tpl/cache/settings_inc.cache_favicon.tpl.php';
     98        <?php
     99        if (!$this->_is_multisite) :
    95100            require LSCWP_DIR . 'tpl/cache/settings_inc.cache_resources.tpl.php';
    96101            require LSCWP_DIR . 'tpl/cache/settings_inc.cache_mobile.tpl.php';
    97102        endif;
    98     ?>
     103        ?>
    99104
    100     <tr>
    101         <th>
    102             <?php $id = Base::O_CACHE_PRIV_URI; ?>
    103             <?php $this->title( $id ); ?>
    104         </th>
    105         <td>
    106             <?php $this->build_textarea( $id ); ?>
    107             <div class="litespeed-desc">
    108                 <?php echo __( 'URI Paths containing these strings will NOT be cached as public.', 'litespeed-cache' ); ?>
    109                 <?php $this->_uri_usage_example(); ?>
    110             </div>
    111         </td>
    112     </tr>
     105        <tr>
     106            <th>
     107                <?php $id = Base::O_CACHE_PRIV_URI; ?>
     108                <?php $this->title($id); ?>
     109            </th>
     110            <td>
     111                <?php $this->build_textarea($id); ?>
     112                <div class="litespeed-desc">
     113                    <?php echo __('URI Paths containing these strings will NOT be cached as public.', 'litespeed-cache'); ?>
     114                    <?php $this->_uri_usage_example(); ?>
     115                </div>
     116            </td>
     117        </tr>
    113118
    114     <tr>
    115         <th>
    116             <?php $id = Base::O_CACHE_FORCE_URI; ?>
    117             <?php $this->title( $id ); ?>
    118         </th>
    119         <td>
    120             <?php $this->build_textarea( $id ); ?>
    121             <div class="litespeed-desc">
    122                 <?php echo __( 'Paths containing these strings will be cached regardless of no-cacheable settings.', 'litespeed-cache' ); ?>
    123                 <?php $this->_uri_usage_example(); ?>
    124                 <br /><?php echo __( 'To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.', 'litespeed-cache' ); ?>
    125                 <?php echo sprintf( __( 'For example, %1$s defines a TTL of %2$s seconds for %3$s.', 'litespeed-cache' ), '<code>/mypath/mypage 300</code>', 300, '<code>/mypath/mypage</code>' ); ?>
    126                 <?php Doc::one_per_line(); ?>
    127             </div>
    128         </td>
    129     </tr>
     119        <tr>
     120            <th>
     121                <?php $id = Base::O_CACHE_FORCE_URI; ?>
     122                <?php $this->title($id); ?>
     123            </th>
     124            <td>
     125                <?php $this->build_textarea($id); ?>
     126                <div class="litespeed-desc">
     127                    <?php echo __('Paths containing these strings will be cached regardless of no-cacheable settings.', 'litespeed-cache'); ?>
     128                    <?php $this->_uri_usage_example(); ?>
     129                    <br /><?php echo __('To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.', 'litespeed-cache'); ?>
     130                    <?php echo sprintf(__('For example, %1$s defines a TTL of %2$s seconds for %3$s.', 'litespeed-cache'), '<code>/mypath/mypage 300</code>', 300, '<code>/mypath/mypage</code>'); ?>
     131                    <?php Doc::one_per_line(); ?>
     132                </div>
     133            </td>
     134        </tr>
    130135
    131     <tr>
    132         <th>
    133             <?php $id = Base::O_CACHE_FORCE_PUB_URI; ?>
    134             <?php $this->title( $id ); ?>
    135         </th>
    136         <td>
    137             <?php $this->build_textarea( $id ); ?>
    138             <div class="litespeed-desc">
    139                 <?php echo __( 'Paths containing these strings will be forced to public cached regardless of no-cacheable settings.', 'litespeed-cache' ); ?>
    140                 <?php $this->_uri_usage_example(); ?>
    141                 <br /><?php echo __( 'To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.', 'litespeed-cache' ); ?>
    142                 <?php echo sprintf( __( 'For example, %1$s defines a TTL of %2$s seconds for %3$s.', 'litespeed-cache' ), '<code>/mypath/mypage 300</code>', 300, '<code>/mypath/mypage</code>' ); ?>
    143                 <?php Doc::one_per_line(); ?>
    144             </div>
    145         </td>
    146     </tr>
     136        <tr>
     137            <th>
     138                <?php $id = Base::O_CACHE_FORCE_PUB_URI; ?>
     139                <?php $this->title($id); ?>
     140            </th>
     141            <td>
     142                <?php $this->build_textarea($id); ?>
     143                <div class="litespeed-desc">
     144                    <?php echo __('Paths containing these strings will be forced to public cached regardless of no-cacheable settings.', 'litespeed-cache'); ?>
     145                    <?php $this->_uri_usage_example(); ?>
     146                    <br /><?php echo __('To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.', 'litespeed-cache'); ?>
     147                    <?php echo sprintf(__('For example, %1$s defines a TTL of %2$s seconds for %3$s.', 'litespeed-cache'), '<code>/mypath/mypage 300</code>', 300, '<code>/mypath/mypage</code>'); ?>
     148                    <?php Doc::one_per_line(); ?>
     149                </div>
     150            </td>
     151        </tr>
    147152
    148     <?php
    149         if ( ! $this->_is_multisite ) :
     153        <?php
     154        if (!$this->_is_multisite) :
    150155            require LSCWP_DIR . 'tpl/cache/settings_inc.cache_dropquery.tpl.php';
    151156        endif;
    152     ?>
     157        ?>
    153158
    154 </tbody></table>
    155 
     159    </tbody>
     160</table>
  • litespeed-cache/trunk/tpl/cdn/auto_setup.tpl.php

    r2983968 r3076030  
    4141
    4242if ($cdn_setup_done_ts) {
    43     $curr_status = '<span class="litespeed-success dashicons dashicons-yes"></span> '
    44         . __('Done', 'litespeed-cache')
    45         . ' <span class="litespeed-desc litespeed-left10">'
    46         . sprintf(__('Completed at %s', 'litespeed-cache'), wp_date(get_option('date_format') . ' ' . get_option('time_format'), $cdn_setup_done_ts))
    47         . '</span>';
     43    $curr_status = '<span class="litespeed-success dashicons dashicons-yes"></span> '. __('Done', 'litespeed-cache');
     44    // wp_date requires WP v5.3+
     45    if (function_exists('wp_date')) {
     46        $curr_status .= ' <span class="litespeed-desc litespeed-left10">'. sprintf(__('Completed at %s', 'litespeed-cache'), wp_date(get_option('date_format') . ' ' . get_option('time_format'), $cdn_setup_done_ts)). '</span>';
     47    }
    4848    $disabled = 'disabled';
    4949} else if (!$has_setup_token) {
  • litespeed-cache/trunk/tpl/crawler/blacklist.tpl.php

    r2761310 r3076030  
    2626
    2727<?php echo $pagination; ?>
    28 <table class="wp-list-table widefat striped">
    29     <thead><tr >
    30         <th scope="col">#</th>
    31         <th scope="col"><?php echo __( 'URL', 'litespeed-cache' ); ?></th>
    32         <th scope="col"><?php echo __( 'Status', 'litespeed-cache' ); ?></th>
    33         <th scope="col"><?php echo __( 'Operation', 'litespeed-cache' ); ?></th>
    34     </tr></thead>
    35     <tbody>
    36         <?php foreach ( $list as $i => $v ) : ?>
    37         <tr>
    38             <td><?php echo $i + 1; ?></td>
    39             <td>
    40                 <?php echo $v[ 'url' ]; ?>
    41             </td>
    42             <td>
    43                 <?php echo Crawler::cls()->display_status( $v[ 'res' ], $v[ 'reason' ] ); ?>
    44             </td>
    45             <td>
    46                 <a href="<?php echo Utility::build_url( Router::ACTION_CRAWLER, Crawler::TYPE_BLACKLIST_DEL, false, null, array( 'id' => $v[ 'id' ] ) ); ?>" class="button button-secondary"><?php echo __( 'Remove from Blocklist', 'litespeed-cache' ); ?></a>
    47             </td>
    48         </tr>
    49         <?php endforeach; ?>
    50     </tbody>
    51 </table>
     28
     29<div class="litespeed-table-responsive">
     30    <table class="wp-list-table widefat striped">
     31        <thead><tr >
     32            <th scope="col">#</th>
     33            <th scope="col"><?php echo __( 'URL', 'litespeed-cache' ); ?></th>
     34            <th scope="col"><?php echo __( 'Status', 'litespeed-cache' ); ?></th>
     35            <th scope="col"><?php echo __( 'Operation', 'litespeed-cache' ); ?></th>
     36        </tr></thead>
     37        <tbody>
     38            <?php foreach ( $list as $i => $v ) : ?>
     39            <tr>
     40                <td><?php echo $i + 1; ?></td>
     41                <td>
     42                    <?php echo $v[ 'url' ]; ?>
     43                </td>
     44                <td>
     45                    <?php echo Crawler::cls()->display_status( $v[ 'res' ], $v[ 'reason' ] ); ?>
     46                </td>
     47                <td>
     48                    <a href="<?php echo Utility::build_url( Router::ACTION_CRAWLER, Crawler::TYPE_BLACKLIST_DEL, false, null, array( 'id' => $v[ 'id' ] ) ); ?>" class="button button-secondary"><?php echo __( 'Remove from Blocklist', 'litespeed-cache' ); ?></a>
     49                </td>
     50            </tr>
     51            <?php endforeach; ?>
     52        </tbody>
     53    </table>
     54</div>
     55
    5256<?php echo $pagination; ?>
    5357<p>
  • litespeed-cache/trunk/tpl/crawler/map.tpl.php

    r2954001 r3076030  
    1414
    1515?>
     16
    1617<p class="litespeed-right">
    1718    <a href="<?php echo Utility::build_url(Router::ACTION_CRAWLER, Crawler::TYPE_EMPTY); ?>" class="button litespeed-btn-warning">
     
    4748
    4849    <div class="">
     50
     51        <a style="padding-right:10px;" href="<?php echo admin_url('admin.php?page=litespeed-crawler&' . Router::TYPE . '=hit'); ?>"><?php echo __('Cache Hit', 'litespeed-cache'); ?></a>
     52        <a style="padding-right:10px;" href="<?php echo admin_url('admin.php?page=litespeed-crawler&' . Router::TYPE . '=miss'); ?>"><?php echo __('Cache Miss', 'litespeed-cache'); ?></a>
     53        <a style="padding-right:10px;" href="<?php echo admin_url('admin.php?page=litespeed-crawler&' . Router::TYPE . '=blacklisted'); ?>"><?php echo __('Blocklisted', 'litespeed-cache'); ?></a>
     54
     55    </div>
     56
     57    <div class="">
    4958        <?php echo $pagination; ?>
    5059    </div>
    5160</div>
    5261
    53 <table class="wp-list-table widefat striped">
    54     <thead>
    55         <tr>
    56             <th scope="col">#</th>
    57             <th scope="col"><?php echo __('URL', 'litespeed-cache'); ?></th>
    58             <th scope="col"><?php echo __('Crawler Status', 'litespeed-cache'); ?></th>
    59             <th scope="col"><?php echo __('Operation', 'litespeed-cache'); ?></th>
    60         </tr>
    61     </thead>
    62     <tbody>
    63         <?php foreach ($list as $i => $v) : ?>
     62<div class="litespeed-table-responsive">
     63    <table class="wp-list-table widefat striped">
     64        <thead>
    6465            <tr>
    65                 <td><?php echo $i + 1; ?></td>
    66                 <td>
    67                     <?php echo $v['url']; ?>
    68                 </td>
    69                 <td>
    70                     <?php echo Crawler::cls()->display_status($v['res'], $v['reason']); ?>
    71                 </td>
    72                 <td>
    73                     <a href="<?php echo Utility::build_url(Router::ACTION_CRAWLER, Crawler::TYPE_BLACKLIST_ADD, false, null, array('id' => $v['id'])); ?>" class="button button-secondary"><?php echo __('Add to Blocklist', 'litespeed-cache'); ?></a>
    74                 </td>
     66                <th scope="col">#</th>
     67                <th scope="col"><?php echo __('URL', 'litespeed-cache'); ?></th>
     68                <th scope="col"><?php echo __('Crawler Status', 'litespeed-cache'); ?></th>
     69                <th scope="col"><?php echo __('Operation', 'litespeed-cache'); ?></th>
    7570            </tr>
    76         <?php endforeach; ?>
    77     </tbody>
    78 </table>
     71        </thead>
     72        <tbody>
     73            <?php foreach ($list as $i => $v) : ?>
     74                <tr>
     75                    <td><?php echo $i + 1; ?></td>
     76                    <td>
     77                        <?php echo $v['url']; ?>
     78                    </td>
     79                    <td>
     80                        <?php echo Crawler::cls()->display_status($v['res'], $v['reason']); ?>
     81                    </td>
     82                    <td>
     83                        <a href="<?php echo Utility::build_url(Router::ACTION_CRAWLER, Crawler::TYPE_BLACKLIST_ADD, false, null, array('id' => $v['id'])); ?>" class="button button-secondary"><?php echo __('Add to Blocklist', 'litespeed-cache'); ?></a>
     84                    </td>
     85                </tr>
     86            <?php endforeach; ?>
     87        </tbody>
     88    </table>
     89</div>
     90
    7991<?php echo $pagination; ?>
    8092
  • litespeed-cache/trunk/tpl/crawler/summary.tpl.php

    r2928795 r3076030  
    121121        </p>
    122122
    123 
    124         <table class="wp-list-table widefat striped" data-crawler-list>
    125             <thead>
    126                 <tr>
    127                     <th scope="col">#</th>
    128                     <th scope="col"><?php echo __('Cron Name', 'litespeed-cache'); ?></th>
    129                     <th scope="col"><?php echo __('Run Frequency', 'litespeed-cache'); ?></th>
    130                     <th scope="col"><?php echo __('Status', 'litespeed-cache'); ?></th>
    131                     <th scope="col"><?php echo __('Activate', 'litespeed-cache'); ?></th>
    132                     <th scope="col"><?php echo __('Running', 'litespeed-cache'); ?></th>
    133                 </tr>
    134             </thead>
    135             <tbody>
    136                 <?php foreach ($crawler_list as $i => $v) :
    137                     $hit = !empty($summary['crawler_stats'][$i]['H']) ? $summary['crawler_stats'][$i]['H'] : 0;
    138                     $miss = !empty($summary['crawler_stats'][$i]['M']) ? $summary['crawler_stats'][$i]['M'] : 0;
    139 
    140                     $blacklisted = !empty($summary['crawler_stats'][$i]['B']) ? $summary['crawler_stats'][$i]['B'] : 0;
    141                     $blacklisted += !empty($summary['crawler_stats'][$i]['N']) ? $summary['crawler_stats'][$i]['N'] : 0;
    142 
    143                     if (isset($summary['crawler_stats'][$i]['W'])) {
    144                         $waiting = $summary['crawler_stats'][$i]['W'] ?: 0;
    145                     } else {
    146                         $waiting = $summary['list_size'] - $hit - $miss - $blacklisted;
    147                     }
    148                 ?>
     123        <div class="litespeed-table-responsive">
     124            <table class="wp-list-table widefat striped" data-crawler-list>
     125                <thead>
    149126                    <tr>
    150                         <td>
    151                             <?php
    152                             echo $i + 1;
    153                             if ($i == $summary['curr_crawler']) {
    154                                 echo "<img class='litespeed-crawler-curr' src='" . LSWCP_PLUGIN_URL . "assets/img/Litespeed.icon.svg' />";
    155                             }
    156                             ?>
    157                         </td>
    158                         <td>
    159                             <?php echo $v['title']; ?>
    160                         </td>
    161                         <td><?php echo $recurrence; ?></td>
    162                         <td>
    163                             <?php echo '<i class="litespeed-badge litespeed-bg-default" data-balloon-pos="up" aria-label="' . __('Waiting', 'litespeed-cache') . '">' . ($waiting ?: '-') . '</i> '; ?>
    164                             <?php echo '<i class="litespeed-badge litespeed-bg-success" data-balloon-pos="up" aria-label="' . __('Hit', 'litespeed-cache') . '">' . ($hit ?: '-') . '</i> '; ?>
    165                             <?php echo '<i class="litespeed-badge litespeed-bg-primary" data-balloon-pos="up" aria-label="' . __('Miss', 'litespeed-cache') . '">' . ($miss ?: '-') . '</i> '; ?>
    166                             <?php echo '<i class="litespeed-badge litespeed-bg-danger" data-balloon-pos="up" aria-label="' . __('Blocklisted', 'litespeed-cache') . '">' . ($blacklisted ?: '-') . '</i> '; ?>
    167                         </td>
    168                         <td>
    169                             <?php $this->build_toggle('litespeed-crawler-' . $i,  $__crawler->is_active($i)); ?>
    170                         </td>
    171                         <td>
    172                             <?php
    173                             if ($i == $summary['curr_crawler']) {
    174                                 echo "Position: " . ($summary['last_pos'] + 1);
    175                                 if ($is_running) {
    176                                     echo " <span class='litespeed-label-success'>" . __('running', 'litespeed-cache') . "</span>";
     127                        <th scope="col">#</th>
     128                        <th scope="col"><?php echo __('Cron Name', 'litespeed-cache'); ?></th>
     129                        <th scope="col"><?php echo __('Run Frequency', 'litespeed-cache'); ?></th>
     130                        <th scope="col"><?php echo __('Status', 'litespeed-cache'); ?></th>
     131                        <th scope="col"><?php echo __('Activate', 'litespeed-cache'); ?></th>
     132                        <th scope="col"><?php echo __('Running', 'litespeed-cache'); ?></th>
     133                    </tr>
     134                </thead>
     135                <tbody>
     136                    <?php foreach ($crawler_list as $i => $v) :
     137                        $hit = !empty($summary['crawler_stats'][$i]['H']) ? $summary['crawler_stats'][$i]['H'] : 0;
     138                        $miss = !empty($summary['crawler_stats'][$i]['M']) ? $summary['crawler_stats'][$i]['M'] : 0;
     139
     140                        $blacklisted = !empty($summary['crawler_stats'][$i]['B']) ? $summary['crawler_stats'][$i]['B'] : 0;
     141                        $blacklisted += !empty($summary['crawler_stats'][$i]['N']) ? $summary['crawler_stats'][$i]['N'] : 0;
     142
     143                        if (isset($summary['crawler_stats'][$i]['W'])) {
     144                            $waiting = $summary['crawler_stats'][$i]['W'] ?: 0;
     145                        } else {
     146                            $waiting = $summary['list_size'] - $hit - $miss - $blacklisted;
     147                        }
     148                    ?>
     149                        <tr>
     150                            <td>
     151                                <?php
     152                                echo $i + 1;
     153                                if ($i == $summary['curr_crawler']) {
     154                                    echo "<img class='litespeed-crawler-curr' src='" . LSWCP_PLUGIN_URL . "assets/img/Litespeed.icon.svg' />";
    177155                                }
    178                             }
    179                             ?>
    180                         </td>
    181                     </tr>
    182                 <?php endforeach; ?>
    183             </tbody>
    184         </table>
    185 
     156                                ?>
     157                            </td>
     158                            <td>
     159                                <?php echo $v['title']; ?>
     160                            </td>
     161                            <td><?php echo $recurrence; ?></td>
     162                            <td>
     163                                <?php echo '<i class="litespeed-badge litespeed-bg-default" data-balloon-pos="up" aria-label="' . __('Waiting', 'litespeed-cache') . '">' . ($waiting ?: '-') . '</i> '; ?>
     164                                <?php echo '<i class="litespeed-badge litespeed-bg-success" data-balloon-pos="up" aria-label="' . __('Hit', 'litespeed-cache') . '">' . ($hit ?: '-') . '</i> '; ?>
     165                                <?php echo '<i class="litespeed-badge litespeed-bg-primary" data-balloon-pos="up" aria-label="' . __('Miss', 'litespeed-cache') . '">' . ($miss ?: '-') . '</i> '; ?>
     166                                <?php echo '<i class="litespeed-badge litespeed-bg-danger" data-balloon-pos="up" aria-label="' . __('Blocklisted', 'litespeed-cache') . '">' . ($blacklisted ?: '-') . '</i> '; ?>
     167                            </td>
     168                            <td>
     169                                <?php $this->build_toggle('litespeed-crawler-' . $i,  $__crawler->is_active($i)); ?>
     170                            </td>
     171                            <td>
     172                                <?php
     173                                if ($i == $summary['curr_crawler']) {
     174                                    echo "Position: " . ($summary['last_pos'] + 1);
     175                                    if ($is_running) {
     176                                        echo " <span class='litespeed-label-success'>" . __('running', 'litespeed-cache') . "</span>";
     177                                    }
     178                                }
     179                                ?>
     180                            </td>
     181                        </tr>
     182                    <?php endforeach; ?>
     183                </tbody>
     184            </table>
     185        </div>
     186       
    186187        <p>
    187188            <i class="litespeed-badge litespeed-bg-default"></i> = <?php echo __('Waiting to be Crawled', 'litespeed-cache'); ?><br>
  • litespeed-cache/trunk/tpl/page_optm/settings_media.tpl.php

    r3009052 r3076030  
    2020<table class="wp-list-table striped litespeed-table">
    2121    <tbody>
    22         <tr>
    23             <th>
    24                 <?php $id = Base::O_MEDIA_PRELOAD_FEATURED; ?>
    25                 <?php $this->title($id); ?>
    26             </th>
    27             <td>
    28                 <?php $this->build_switch($id); ?>
    29                 <div class="litespeed-desc">
    30                     <?php echo __('Load a post\'s Featured Image first, before the page begins to render. Leads to performance improvements and minimizes the risk of render blocking by Featured Images.', 'litespeed-cache'); ?>
    31                     <?php Doc::learn_more('https://docs.litespeedtech.com/lscache/lscwp/pageopt/#preload-featured-image'); ?>
    32                 </div>
    33             </td>
    34         </tr>
    35 
    3622        <tr>
    3723            <th>
  • litespeed-cache/trunk/tpl/toolbox/beta_test.tpl.php

    r3010716 r3076030  
    77// Existing public version list
    88$v_list = array(
    9     '6.0.0.1',
     9    '6.2',
     10    '6.1',
    1011    '5.7.0.1',
    11     '5.6',
    12     '5.5.1',
    13     '5.5',
    14     '5.4',
    15     '5.3.2',
    16     '5.2.1',
    17     '5.1',
    1812    '4.6',
    19     '4.1',
     13    '3.6.4',
    2014);
    2115
Note: See TracChangeset for help on using the changeset viewer.