Plugin Directory

Changeset 3382646


Ignore:
Timestamp:
10/22/2025 01:35:04 PM (5 months ago)
Author:
codesnippetspro
Message:

Version v3.7.1-beta.3

Location:
code-snippets/trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • code-snippets/trunk/CHANGELOG.md

    r3382390 r3382646  
    11# Changelog
    22
     3
     4
     5
     6## [3.7.1-beta.3] (2025-10-22)
     7
     8### Added
     9* Snippets REST API now supports pagination via page and per_page query parameters.
    310
    411
  • code-snippets/trunk/code-snippets.php

    r3382390 r3382646  
    99 * License URI:  license.txt
    1010 * Text Domain:  code-snippets
    11  * Version:      3.7.1-beta.2
     11 * Version:      3.7.1-beta.3
    1212 * Requires PHP: 7.4
    1313 * Requires at least: 5.0
    1414 *
    15  * @version   3.7.1-beta.2
     15 * @version   3.7.1-beta.3
    1616 * @package   Code_Snippets
    1717 * @author    Shea Bunge <[email protected]>
     
    3838     * @const string
    3939     */
    40     define( 'CODE_SNIPPETS_VERSION', '3.7.1-beta.2' );
     40    define( 'CODE_SNIPPETS_VERSION', '3.7.1-beta.3' );
    4141
    4242    /**
  • code-snippets/trunk/css/settings.scss

    r3382390 r3382646  
    143143
    144144    #target_version {
    145         min-width: 200px;
     145        min-inline-size: 200px;
    146146        margin-inline-start: 8px;
    147147    }
     
    159159    // Warning box styling
    160160    #version-switch-warning {
    161         margin-top: 20px !important;
     161        margin-block-start: 20px !important;
    162162        padding: 12px 16px;
    163         border-left: 4px solid #dba617;
     163        border-inline-start: 4px solid #dba617;
    164164        background: #fff8e5;
    165165        border-radius: 4px;
     
    184184    }
    185185
    186   .notice {
    187     &.notice {
    188       &-success {
    189         border-left-color: #00a32a;
    190       }
    191 
    192       &-error {
    193         border-left-color: #d63638;
    194       }
    195 
    196       &-warning {
    197         border-left-color: #dba617;
    198       }
    199 
    200       &-info {
    201         border-left-color: #72aee6;
    202       }
    203     }
    204   }
     186    .notice {
     187        &.notice {
     188            &-success {
     189                border-inline-start-color: #00a32a;
     190            }
     191
     192            &-error {
     193                border-inline-start-color: #d63638;
     194            }
     195
     196            &-warning {
     197                border-inline-start-color: #dba617;
     198            }
     199
     200            &-info {
     201                border-inline-start-color: #72aee6;
     202            }
     203        }
     204    }
    205205}
    206206
     
    208208    .form-table {
    209209        th {
    210             width: 180px;
    211         }
    212     }
    213 }
     210            inline-size: 180px;
     211        }
     212    }
     213}
  • code-snippets/trunk/dist/settings.css

    r3382390 r3382646  
    1 .CodeMirror{background-color:#fff;block-size:auto!important;border:1px solid #dfdfdf;border-radius:3px}.CodeMirror-code{outline:none}.CodeMirror-focused .cm-matchhighlight{color:#fff!important;outline:1px solid green}.CodeMirror-sizer:after,.CodeMirror-sizer:before{color:#bbb;display:block}.CodeMirror-sizer:before{content:"";padding-block-end:5px}.cm-s-rubyblue .CodeMirror-cursor{border-inline-start:1px solid #fff!important}.CodeMirror-lint-marker-multiple,[class*=CodeMirror-lint-marker],[class*=CodeMirror-lint-message]{background-image:none}.CodeMirror-lint-marker-error,.CodeMirror-lint-marker-warning{cursor:help}.CodeMirror-lint-marker-multiple{inset-block-start:0;position:absolute}[class*=CodeMirror-lint-marker]:before{font:normal 18px/1 dashicons;inset-block-start:-2px;position:relative}[class*=CodeMirror-lint-message]:before{font:normal 16px/1 dashicons;inset-inline-start:16px;position:absolute}.CodeMirror-lint-message-error,.CodeMirror-lint-message-warning{box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin-block:5px 2px;margin-inline:0;padding-block:3px;padding-inline:28px 12px}.CodeMirror-lint-message-warning{background-color:#fff8e5;border-inline-start:4px solid #ffb900}.CodeMirror-lint-marker-warning:before,.CodeMirror-lint-message-warning:before{color:#f6a306;content:""}.CodeMirror-lint-message-error{background-color:#fbeaea;border-inline-start:4px solid #dc3232}.CodeMirror-lint-marker-error:before,.CodeMirror-lint-message-error:before{color:#dc3232;content:""}.CodeMirror-lint-tooltip{background:none;border:none;border-radius:0;direction:ltr}.CodeMirror .CodeMirror-matchingbracket{background:rgba(255,150,0,.3);color:inherit}.CodeMirror .CodeMirror-linenumber{color:#666}.CodeMirror-foldmarker{color:inherit;font-weight:700;margin-inline:.25em}p.submit{display:flex;justify-content:space-between}.settings-section,p.submit{max-inline-size:1020px}.nav-tab-wrapper{margin-block-end:1em}input[type=number]{inline-size:4em}.CodeMirror{inline-size:100%;max-inline-size:800px;padding-inline-end:1em}.CodeMirror-sizer:before{content:"<?php"}body.no-js .nav-tab-wrapper{display:none}body.no-js .settings-section{display:block!important}body.js .settings-section-title{border:0;clip:rect(1px,1px,1px,1px);block-size:1px;clip-path:inset(50%);inline-size:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;word-wrap:normal!important}body.js .nav-tab:not(.nav-tab-active){cursor:pointer}body.js .settings-section{display:none}body.js .wrap[data-active-tab=debug] .debug-settings,body.js .wrap[data-active-tab=editor] .editor-settings,body.js .wrap[data-active-tab=general] .general-settings,body.js .wrap[data-active-tab=version-switch] .version-switch-settings{display:block}.license-status{color:#aaa;display:inline-block;line-height:2;padding-inline-end:2em}.license-status-valid{color:#2ecc40}.license-status-expired{color:#dc3232}.wrap[data-active-tab=license] .submit{display:none}#code_snippets_remove_license{border-color:#b32d2e;color:#b32d2e}#code_snippets_license_key{font-family:Consolas,Monaco,monospace}#cloud_token{inline-size:90vw;max-inline-size:450px}.cloud-message{border-radius:5px;font-weight:600;inline-size:-moz-fit-content;inline-size:fit-content;padding:5px}.cloud-error{background:#e53935;color:#ffebee}.cloud-success{background:#43a047;color:#e8f5e9}.refresh-success{background:#2271b1;color:#ffeb3b}.cloud-settings tbody tr:nth-child(n+5){display:none}.code-snippets-version-switch .current-version{background:#f0f6fc;border:1px solid #c3c4c7;border-radius:3px;color:#0073aa;font-family:monospace;font-size:1.1em;font-weight:700;padding:2px 8px}.code-snippets-version-switch #target_version{margin-inline-start:8px;min-width:200px}.code-snippets-version-switch #switch-version-btn[disabled]{background-color:#f0f0f1!important;border-color:#dcdcde!important;color:#a7aaad!important;cursor:not-allowed;opacity:.6}.code-snippets-version-switch #version-switch-warning{background:#fff8e5;border-left:4px solid #dba617;border-radius:4px;margin-top:20px!important;padding:12px 16px}.code-snippets-version-switch #version-switch-warning p{color:#8f6914;margin:0}.code-snippets-version-switch #version-switch-warning p strong{color:#8f6914}.code-snippets-version-switch #version-switch-result{margin-block-start:12px}.code-snippets-version-switch #version-switch-result.notice{border-radius:4px;padding:8px 12px}.code-snippets-version-switch .notice.notice-success{border-left-color:#00a32a}.code-snippets-version-switch .notice.notice-error{border-left-color:#d63638}.code-snippets-version-switch .notice.notice-warning{border-left-color:#dba617}.code-snippets-version-switch .notice.notice-info{border-left-color:#72aee6}.version-switch-settings .form-table th{width:180px}
     1.CodeMirror{background-color:#fff;block-size:auto!important;border:1px solid #dfdfdf;border-radius:3px}.CodeMirror-code{outline:none}.CodeMirror-focused .cm-matchhighlight{color:#fff!important;outline:1px solid green}.CodeMirror-sizer:after,.CodeMirror-sizer:before{color:#bbb;display:block}.CodeMirror-sizer:before{content:"";padding-block-end:5px}.cm-s-rubyblue .CodeMirror-cursor{border-inline-start:1px solid #fff!important}.CodeMirror-lint-marker-multiple,[class*=CodeMirror-lint-marker],[class*=CodeMirror-lint-message]{background-image:none}.CodeMirror-lint-marker-error,.CodeMirror-lint-marker-warning{cursor:help}.CodeMirror-lint-marker-multiple{inset-block-start:0;position:absolute}[class*=CodeMirror-lint-marker]:before{font:normal 18px/1 dashicons;inset-block-start:-2px;position:relative}[class*=CodeMirror-lint-message]:before{font:normal 16px/1 dashicons;inset-inline-start:16px;position:absolute}.CodeMirror-lint-message-error,.CodeMirror-lint-message-warning{box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin-block:5px 2px;margin-inline:0;padding-block:3px;padding-inline:28px 12px}.CodeMirror-lint-message-warning{background-color:#fff8e5;border-inline-start:4px solid #ffb900}.CodeMirror-lint-marker-warning:before,.CodeMirror-lint-message-warning:before{color:#f6a306;content:""}.CodeMirror-lint-message-error{background-color:#fbeaea;border-inline-start:4px solid #dc3232}.CodeMirror-lint-marker-error:before,.CodeMirror-lint-message-error:before{color:#dc3232;content:""}.CodeMirror-lint-tooltip{background:none;border:none;border-radius:0;direction:ltr}.CodeMirror .CodeMirror-matchingbracket{background:rgba(255,150,0,.3);color:inherit}.CodeMirror .CodeMirror-linenumber{color:#666}.CodeMirror-foldmarker{color:inherit;font-weight:700;margin-inline:.25em}p.submit{display:flex;justify-content:space-between}.settings-section,p.submit{max-inline-size:1020px}.nav-tab-wrapper{margin-block-end:1em}input[type=number]{inline-size:4em}.CodeMirror{inline-size:100%;max-inline-size:800px;padding-inline-end:1em}.CodeMirror-sizer:before{content:"<?php"}body.no-js .nav-tab-wrapper{display:none}body.no-js .settings-section{display:block!important}body.js .settings-section-title{border:0;clip:rect(1px,1px,1px,1px);block-size:1px;clip-path:inset(50%);inline-size:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;word-wrap:normal!important}body.js .nav-tab:not(.nav-tab-active){cursor:pointer}body.js .settings-section{display:none}body.js .wrap[data-active-tab=debug] .debug-settings,body.js .wrap[data-active-tab=editor] .editor-settings,body.js .wrap[data-active-tab=general] .general-settings,body.js .wrap[data-active-tab=version-switch] .version-switch-settings{display:block}.license-status{color:#aaa;display:inline-block;line-height:2;padding-inline-end:2em}.license-status-valid{color:#2ecc40}.license-status-expired{color:#dc3232}.wrap[data-active-tab=license] .submit{display:none}#code_snippets_remove_license{border-color:#b32d2e;color:#b32d2e}#code_snippets_license_key{font-family:Consolas,Monaco,monospace}#cloud_token{inline-size:90vw;max-inline-size:450px}.cloud-message{border-radius:5px;font-weight:600;inline-size:-moz-fit-content;inline-size:fit-content;padding:5px}.cloud-error{background:#e53935;color:#ffebee}.cloud-success{background:#43a047;color:#e8f5e9}.refresh-success{background:#2271b1;color:#ffeb3b}.cloud-settings tbody tr:nth-child(n+5){display:none}.code-snippets-version-switch .current-version{background:#f0f6fc;border:1px solid #c3c4c7;border-radius:3px;color:#0073aa;font-family:monospace;font-size:1.1em;font-weight:700;padding:2px 8px}.code-snippets-version-switch #target_version{margin-inline-start:8px;min-inline-size:200px}.code-snippets-version-switch #switch-version-btn[disabled]{background-color:#f0f0f1!important;border-color:#dcdcde!important;color:#a7aaad!important;cursor:not-allowed;opacity:.6}.code-snippets-version-switch #version-switch-warning{background:#fff8e5;border-inline-start:4px solid #dba617;border-radius:4px;margin-block-start:20px!important;padding:12px 16px}.code-snippets-version-switch #version-switch-warning p{color:#8f6914;margin:0}.code-snippets-version-switch #version-switch-warning p strong{color:#8f6914}.code-snippets-version-switch #version-switch-result{margin-block-start:12px}.code-snippets-version-switch #version-switch-result.notice{border-radius:4px;padding:8px 12px}.code-snippets-version-switch .notice.notice-success{border-inline-start-color:#00a32a}.code-snippets-version-switch .notice.notice-error{border-inline-start-color:#d63638}.code-snippets-version-switch .notice.notice-warning{border-inline-start-color:#dba617}.code-snippets-version-switch .notice.notice-info{border-inline-start-color:#72aee6}.version-switch-settings .form-table th{inline-size:180px}
  • code-snippets/trunk/php/rest-api/class-snippets-rest-controller.php

    r3352486 r3382646  
    8181        );
    8282
     83        // Allow standard collection parameters (page, per_page, etc.) on the collection route.
     84        $collection_args = array_merge( $network_args, $this->get_collection_params() );
     85
    8386        register_rest_route(
    8487            $this->namespace,
     
    8992                    'callback'            => [ $this, 'get_items' ],
    9093                    'permission_callback' => [ $this, 'get_items_permissions_check' ],
    91                     'args'                => $network_args,
     94                    'args'                => $collection_args,
    9295                ],
    9396                [
     
    187190
    188191    /**
    189      * Retrieves a collection of snippets.
     192     * Retrieves a collection of snippets, with pagination.
    190193     *
    191194     * @param WP_REST_Request $request Full details about the request.
     
    194197     */
    195198    public function get_items( $request ): WP_REST_Response {
    196         $snippets = get_snippets();
     199        $network = $request->get_param( 'network' );
     200        $all_snippets = get_snippets( [], $network );
     201
     202        // Get collection params (page, per_page).
     203        $collection_params = $this->get_collection_params();
     204        $per_page_request = (int) $request->get_param( 'per_page' );
     205    $per_page = max( 1, $per_page_request ? $per_page_request : (int) $collection_params['per_page']['default'] );
     206
     207        $page_request = (int) $request->get_param( 'page' );
     208        $page = max( 1, $page_request ? $page_request : (int) $collection_params['page']['default'] );
     209
     210    // Count total items
     211        $total_items = count( $all_snippets );
     212        $total_pages = (int) ceil( $total_items / $per_page );
     213
     214        // Slice the full list to the requested page.
     215        $offset = ( $page - 1 ) * $per_page;
     216        $snippets = array_slice( $all_snippets, $offset, $per_page );
     217
    197218        $snippets_data = [];
    198219
     
    202223        }
    203224
    204         return rest_ensure_response( $snippets_data );
     225        $response = rest_ensure_response( $snippets_data );
     226        $response->header( 'X-WP-Total', (string) $total_items );
     227        $response->header( 'X-WP-TotalPages', (string) $total_pages );
     228
     229        return $response;
    205230    }
    206231
  • code-snippets/trunk/readme.txt

    r3382390 r3382646  
    104104
    105105== Changelog ==
     106
     107
     108
     109= 3.7.1-beta.3 (2025-10-22) =
     110
     111__Added__
     112
     113* Snippets REST API now supports pagination via page and per_page query parameters.
    106114
    107115
  • code-snippets/trunk/vendor/composer/installed.php

    r3382390 r3382646  
    22    'root' => array(
    33        'name' => 'codesnippetspro/code-snippets',
    4         'pretty_version' => 'v3.7.1-beta.2',
    5         'version' => '3.7.1.0-beta2',
    6         'reference' => '30b6276bdba9172a5f7f705991ff99ebd091fa5a',
     4        'pretty_version' => 'v3.7.1-beta.3',
     5        'version' => '3.7.1.0-beta3',
     6        'reference' => '66cc3f9e3755fe3736cd93d2609e04bb8e156876',
    77        'type' => 'wordpress-plugin',
    88        'install_path' => __DIR__ . '/../../',
     
    1212    'versions' => array(
    1313        'codesnippetspro/code-snippets' => array(
    14             'pretty_version' => 'v3.7.1-beta.2',
    15             'version' => '3.7.1.0-beta2',
    16             'reference' => '30b6276bdba9172a5f7f705991ff99ebd091fa5a',
     14            'pretty_version' => 'v3.7.1-beta.3',
     15            'version' => '3.7.1.0-beta3',
     16            'reference' => '66cc3f9e3755fe3736cd93d2609e04bb8e156876',
    1717            'type' => 'wordpress-plugin',
    1818            'install_path' => __DIR__ . '/../../',
Note: See TracChangeset for help on using the changeset viewer.