@@ -1,17 +1,17 @@ discard block |
||
1 | -<?php defined('WPINC') || die; ?> |
|
1 | +<?php defined( 'WPINC' ) || die; ?> |
|
2 | 2 | |
3 | 3 | <div class="is-fullwidth"> |
4 | 4 | <div class="glsr-flex-row glsr-has-2-columns"> |
5 | 5 | <div class="glsr-column"> |
6 | 6 | <h3>Editor Blocks</h3> |
7 | 7 | <p>The fastest way to getting started with Site Reviews is use the three provided blocks in the WordPress Block Editor. Each block comes with multiple settings which let you configure the block exactly as needed. To add a block to your page, click the "Add Block" button and search for "Site Reviews".</p> |
8 | - <img class="screenshot" src="<?= glsr()->url('assets/images/blocks.png'); ?>" alt="Editor Blocks" /> |
|
8 | + <img class="screenshot" src="<?= glsr()->url( 'assets/images/blocks.png' ); ?>" alt="Editor Blocks" /> |
|
9 | 9 | </div> |
10 | 10 | <div class="glsr-column"> |
11 | 11 | <h3>Shortcodes and Widgets</h3> |
12 | 12 | <p>You can also use the shortcodes or widgets on your page. Keep in mind, however, that widgets are limited in options compared to the shortcodes (for example, the "Latest Reviews" widget does not allow pagination). If you are using the Classic Editor in WordPress, you can click on the Site Reviews shortcode button above the editor (next to the media button) to add a shortcode via a friendly popup.</p> |
13 | 13 | <p>To learn more about the shortcodes and the available shortcode options, please see the Shortcode Documentation page of the plugin.</p> |
14 | - <a class="button" href="<?= admin_url('edit.php?post_type=site-review&page=documentation#!shortcodes'); ?>">View Shortcode Documentation</a> |
|
14 | + <a class="button" href="<?= admin_url( 'edit.php?post_type=site-review&page=documentation#!shortcodes' ); ?>">View Shortcode Documentation</a> |
|
15 | 15 | </div> |
16 | 16 | </div> |
17 | 17 | </div> |
@@ -20,31 +20,31 @@ discard block |
||
20 | 20 | <h2>Features</h2> |
21 | 21 | <ul class="glsr-flex-row glsr-has-3-columns"> |
22 | 22 | <li class="glsr-column"> |
23 | - <h3><a href="<?= admin_url('edit.php?post_type=site-review&page=addons'); ?>">Add-ons</a></h3> |
|
23 | + <h3><a href="<?= admin_url( 'edit.php?post_type=site-review&page=addons' ); ?>">Add-ons</a></h3> |
|
24 | 24 | <p>Extend Site Reviews with add-ons that provide additional features.</p> |
25 | 25 | </li> |
26 | 26 | <li class="glsr-column"> |
27 | - <h3><a href="<?= admin_url('edit.php?post_type=site-review&page=settings#!reviews'); ?>">Avatars</a></h3> |
|
27 | + <h3><a href="<?= admin_url( 'edit.php?post_type=site-review&page=settings#!reviews' ); ?>">Avatars</a></h3> |
|
28 | 28 | <p>Enable avatars to generate images using the WordPress Gravatar service.</p> |
29 | 29 | </li> |
30 | 30 | <li class="glsr-column"> |
31 | - <h3><a href="<?= admin_url('edit.php?post_type=site-review&page=tools#!general'); ?>">Backup/Restore</a></h3> |
|
31 | + <h3><a href="<?= admin_url( 'edit.php?post_type=site-review&page=tools#!general' ); ?>">Backup/Restore</a></h3> |
|
32 | 32 | <p>Backup and restore your plugin settings as needed.</p> |
33 | 33 | </li> |
34 | 34 | <li class="glsr-column"> |
35 | - <h3><a data-expand="#faq-14" href="<?= admin_url('edit.php?post_type=site-review&page=documentation#!faq'); ?>">Bayesian Ranking</a></h3> |
|
35 | + <h3><a data-expand="#faq-14" href="<?= admin_url( 'edit.php?post_type=site-review&page=documentation#!faq' ); ?>">Bayesian Ranking</a></h3> |
|
36 | 36 | <p>Easily rank pages with assigned reviews using the bayesian algorithm.</p> |
37 | 37 | </li> |
38 | 38 | <li class="glsr-column"> |
39 | - <h3><a href="<?= admin_url('edit.php?post_type=site-review&page=settings#!submissions'); ?>">Blacklist</a></h3> |
|
39 | + <h3><a href="<?= admin_url( 'edit.php?post_type=site-review&page=settings#!submissions' ); ?>">Blacklist</a></h3> |
|
40 | 40 | <p>Blacklist words, phrases, IP addresses, names, and emails.</p> |
41 | 41 | </li> |
42 | 42 | <li class="glsr-column"> |
43 | - <h3><a href="<?= admin_url('edit.php?post_type=site-review&page=settings#!general'); ?>">Blockchain Validation</a></h3> |
|
43 | + <h3><a href="<?= admin_url( 'edit.php?post_type=site-review&page=settings#!general' ); ?>">Blockchain Validation</a></h3> |
|
44 | 44 | <p>Verify your reviews on the Blockchain with <a href="https://rebusify.com?ref=105">Rebusify</a>.</p> |
45 | 45 | </li> |
46 | 46 | <li class="glsr-column"> |
47 | - <h3><a href="<?= admin_url('edit-tags.php?taxonomy=site-review-category&post_type=site-review'); ?>">Categories</a></h3> |
|
47 | + <h3><a href="<?= admin_url( 'edit-tags.php?taxonomy=site-review-category&post_type=site-review' ); ?>">Categories</a></h3> |
|
48 | 48 | <p>Add your own categories and assign reviews to them.</p> |
49 | 49 | </li> |
50 | 50 | <li class="glsr-column"> |
@@ -52,7 +52,7 @@ discard block |
||
52 | 52 | <p>Designed for WordPress developers with over 100 filter hooks and convenient functions.</p> |
53 | 53 | </li> |
54 | 54 | <li class="glsr-column"> |
55 | - <h3><a href="<?= admin_url('edit.php?post_type=site-review&page=documentation#!faq'); ?>">Documentation</a></h3> |
|
55 | + <h3><a href="<?= admin_url( 'edit.php?post_type=site-review&page=documentation#!faq' ); ?>">Documentation</a></h3> |
|
56 | 56 | <p>Provides FAQ and documenation for hooks and all shortcodes and functions.</p> |
57 | 57 | </li> |
58 | 58 | <li class="glsr-column"> |
@@ -60,11 +60,11 @@ discard block |
||
60 | 60 | <p>Use configurable editor blocks in the new WordPress 5.0 editor.</p> |
61 | 61 | </li> |
62 | 62 | <li class="glsr-column"> |
63 | - <h3><a href="<?= admin_url('edit.php?post_type=site-review&page=settings#!schema'); ?>">JSON-LD Schema</a></h3> |
|
63 | + <h3><a href="<?= admin_url( 'edit.php?post_type=site-review&page=settings#!schema' ); ?>">JSON-LD Schema</a></h3> |
|
64 | 64 | <p>Enable JSON-LD schema to display your reviews and ratings in search results.</p> |
65 | 65 | </li> |
66 | 66 | <li class="glsr-column"> |
67 | - <h3><a href="<?= admin_url('edit.php?post_type=site-review&page=settings#!general'); ?>">Multilingual</a></h3> |
|
67 | + <h3><a href="<?= admin_url( 'edit.php?post_type=site-review&page=settings#!general' ); ?>">Multilingual</a></h3> |
|
68 | 68 | <p>Integrates with Polylang and WPML and provides easy search/replace translation.</p> |
69 | 69 | </li> |
70 | 70 | <li class="glsr-column"> |
@@ -72,47 +72,47 @@ discard block |
||
72 | 72 | <p>Provides full support for the WordPress multisite feature.</p> |
73 | 73 | </li> |
74 | 74 | <li class="glsr-column"> |
75 | - <h3><a href="<?= admin_url('edit.php?post_type=site-review&page=settings#!general'); ?>">Notifications</a></h3> |
|
75 | + <h3><a href="<?= admin_url( 'edit.php?post_type=site-review&page=settings#!general' ); ?>">Notifications</a></h3> |
|
76 | 76 | <p>Send notifications to one or more emails when a review is submitted.</p> |
77 | 77 | </li> |
78 | 78 | <li class="glsr-column"> |
79 | - <h3><a data-expand="#faq-03" href="<?= admin_url('edit.php?post_type=site-review&page=documentation#!faq'); ?>">Page Assignment</a></h3> |
|
79 | + <h3><a data-expand="#faq-03" href="<?= admin_url( 'edit.php?post_type=site-review&page=documentation#!faq' ); ?>">Page Assignment</a></h3> |
|
80 | 80 | <p>Assign reviews to Posts, Pages, and Custom Post Types.</p> |
81 | 81 | </li> |
82 | 82 | <li class="glsr-column"> |
83 | - <h3><a data-expand="#faq-02" href="<?= admin_url('edit.php?post_type=site-review&page=documentation#!faq'); ?>">Pagination</a></h3> |
|
83 | + <h3><a data-expand="#faq-02" href="<?= admin_url( 'edit.php?post_type=site-review&page=documentation#!faq' ); ?>">Pagination</a></h3> |
|
84 | 84 | <p>Enable AJAX pagination to display a custom number of reviews per-page.</p> |
85 | 85 | </li> |
86 | 86 | <li class="glsr-column"> |
87 | - <h3><a href="<?= admin_url('edit.php?post_type=site-review'); ?>">Responses</a></h3> |
|
87 | + <h3><a href="<?= admin_url( 'edit.php?post_type=site-review' ); ?>">Responses</a></h3> |
|
88 | 88 | <p>Write a response to reviews that require a response.</p> |
89 | 89 | </li> |
90 | 90 | <li class="glsr-column"> |
91 | - <h3><a href="<?= admin_url('edit.php?post_type=site-review&page=settings#!general'); ?>">Restrictions</a></h3> |
|
91 | + <h3><a href="<?= admin_url( 'edit.php?post_type=site-review&page=settings#!general' ); ?>">Restrictions</a></h3> |
|
92 | 92 | <p>Require approval before publishing reviews and limit to registered users.</p> |
93 | 93 | </li> |
94 | 94 | <li class="glsr-column"> |
95 | - <h3><a href="<?= admin_url('edit.php?post_type=site-review&page=settings#!submissions'); ?>">Review Limits</a></h3> |
|
95 | + <h3><a href="<?= admin_url( 'edit.php?post_type=site-review&page=settings#!submissions' ); ?>">Review Limits</a></h3> |
|
96 | 96 | <p>Limit review submissions by email address, IP address, or username.</p> |
97 | 97 | </li> |
98 | 98 | <li class="glsr-column"> |
99 | - <h3><a href="<?= admin_url('edit.php?post_type=site-review&page=documentation#!shortcodes'); ?>">Review Summaries</a></h3> |
|
99 | + <h3><a href="<?= admin_url( 'edit.php?post_type=site-review&page=documentation#!shortcodes' ); ?>">Review Summaries</a></h3> |
|
100 | 100 | <p>Display a summary of your review ratings from high to low.</p> |
101 | 101 | </li> |
102 | 102 | <li class="glsr-column"> |
103 | - <h3><a href="<?= admin_url('edit.php?post_type=site-review&page=documentation#!shortcodes'); ?>">Shortcodes</a></h3> |
|
103 | + <h3><a href="<?= admin_url( 'edit.php?post_type=site-review&page=documentation#!shortcodes' ); ?>">Shortcodes</a></h3> |
|
104 | 104 | <p>Use the configurable shortcodes complete with documentation.</p> |
105 | 105 | </li> |
106 | 106 | <li class="glsr-column"> |
107 | - <h3><a href="<?= admin_url('edit.php?post_type=site-review&page=settings#!general'); ?>">Slack</a></h3> |
|
107 | + <h3><a href="<?= admin_url( 'edit.php?post_type=site-review&page=settings#!general' ); ?>">Slack</a></h3> |
|
108 | 108 | <p>Receive notifications in Slack when a review is submitted.</p> |
109 | 109 | </li> |
110 | 110 | <li class="glsr-column"> |
111 | - <h3><a href="<?= admin_url('edit.php?post_type=site-review&page=settings#!submissions'); ?>">SPAM Protection</a></h3> |
|
111 | + <h3><a href="<?= admin_url( 'edit.php?post_type=site-review&page=settings#!submissions' ); ?>">SPAM Protection</a></h3> |
|
112 | 112 | <p>Uses a Honeypot and integrates with Invisible reCAPTCHA and Akismet.</p> |
113 | 113 | </li> |
114 | 114 | <li class="glsr-column"> |
115 | - <h3><a href="<?= admin_url('edit.php?post_type=site-review&page=settings#!general'); ?>">Styles</a></h3> |
|
115 | + <h3><a href="<?= admin_url( 'edit.php?post_type=site-review&page=settings#!general' ); ?>">Styles</a></h3> |
|
116 | 116 | <p>Change the submission form style to match popular themes and form plugins.</p> |
117 | 117 | </li> |
118 | 118 | <li class="glsr-column"> |
@@ -120,11 +120,11 @@ discard block |
||
120 | 120 | <p>Free premium-level support included on the WordPress support forum.</p> |
121 | 121 | </li> |
122 | 122 | <li class="glsr-column"> |
123 | - <h3><a data-expand="#faq-17" href="<?= admin_url('edit.php?post_type=site-review&page=documentation#!faq'); ?>">Templates</a></h3> |
|
123 | + <h3><a data-expand="#faq-17" href="<?= admin_url( 'edit.php?post_type=site-review&page=documentation#!faq' ); ?>">Templates</a></h3> |
|
124 | 124 | <p>Use the Site Reviews templates in your theme for full control over the HTML.</p> |
125 | 125 | </li> |
126 | 126 | <li class="glsr-column"> |
127 | - <h3><a href="<?= admin_url('widgets.php'); ?>">Widgets</a></h3> |
|
127 | + <h3><a href="<?= admin_url( 'widgets.php' ); ?>">Widgets</a></h3> |
|
128 | 128 | <p>Use the configurable widgets in your sidebars.</p> |
129 | 129 | </li> |
130 | 130 | </ul> |
@@ -1,21 +1,21 @@ |
||
1 | -<?php defined('WPINC') || die; ?> |
|
1 | +<?php defined( 'WPINC' ) || die; ?> |
|
2 | 2 | |
3 | 3 | <div class="wrap"> |
4 | - <h1 class="wp-heading-inline"><?= esc_html(get_admin_page_title()); ?></h1> |
|
4 | + <h1 class="wp-heading-inline"><?= esc_html( get_admin_page_title() ); ?></h1> |
|
5 | 5 | <?= $notices; ?> |
6 | 6 | <h2 class="glsr-nav-tab-wrapper nav-tab-wrapper"> |
7 | - <?php foreach ($tabs as $id => $title) : ?> |
|
7 | + <?php foreach( $tabs as $id => $title ) : ?> |
|
8 | 8 | <a class="glsr-nav-tab nav-tab" href="#<?= $id; ?>"><?= $title; ?></a> |
9 | 9 | <?php endforeach; ?> |
10 | 10 | </h2> |
11 | 11 | <form class="glsr-form" action="options.php" enctype="multipart/form-data" method="post"> |
12 | - <?php foreach ($tabs as $id => $title) : ?> |
|
12 | + <?php foreach( $tabs as $id => $title ) : ?> |
|
13 | 13 | <div class="glsr-nav-view ui-tabs-hide" id="<?= $id; ?>"> |
14 | - <?= $settings->buildFields($id); ?> |
|
14 | + <?= $settings->buildFields( $id ); ?> |
|
15 | 15 | </div> |
16 | 16 | <?php endforeach; ?> |
17 | 17 | <input type="hidden" name="_active_tab"> |
18 | - <?php settings_fields(glsr()->id.'-settings'); ?> |
|
18 | + <?php settings_fields( glsr()->id.'-settings' ); ?> |
|
19 | 19 | <?php submit_button(); ?> |
20 | 20 | </form> |
21 | 21 | </div> |
@@ -1,16 +1,16 @@ |
||
1 | -<?php defined('WPINC') || die; ?> |
|
1 | +<?php defined( 'WPINC' ) || die; ?> |
|
2 | 2 | |
3 | 3 | <div class="wrap"> |
4 | - <h1 class="wp-heading-inline"><?= esc_html(get_admin_page_title()); ?></h1> |
|
4 | + <h1 class="wp-heading-inline"><?= esc_html( get_admin_page_title() ); ?></h1> |
|
5 | 5 | <?= $notices; ?> |
6 | 6 | <h2 class="glsr-nav-tab-wrapper nav-tab-wrapper"> |
7 | - <?php foreach ($tabs as $id => $title) : ?> |
|
7 | + <?php foreach( $tabs as $id => $title ) : ?> |
|
8 | 8 | <a class="glsr-nav-tab nav-tab" href="#<?= $id; ?>"><?= $title; ?></a> |
9 | 9 | <?php endforeach; ?> |
10 | 10 | </h2> |
11 | - <?php foreach ($tabs as $id => $title) : ?> |
|
11 | + <?php foreach( $tabs as $id => $title ) : ?> |
|
12 | 12 | <div class="glsr-nav-view ui-tabs-hide" id="<?= $id; ?>"> |
13 | - <?php $template->render('pages/tools/'.$id, $data); ?> |
|
13 | + <?php $template->render( 'pages/tools/'.$id, $data ); ?> |
|
14 | 14 | </div> |
15 | 15 | <?php endforeach; ?> |
16 | 16 | <input type="hidden" name="_active_tab"> |
@@ -1,15 +1,15 @@ discard block |
||
1 | -<?php defined('WPINC') || die; ?> |
|
1 | +<?php defined( 'WPINC' ) || die; ?> |
|
2 | 2 | |
3 | 3 | <div id="faq-01" class="glsr-card postbox"> |
4 | 4 | <div class="glsr-card-header"> |
5 | 5 | <h3>How do I add additional values to the schema?</h3> |
6 | 6 | <button type="button" class="handlediv" aria-expanded="true"> |
7 | - <span class="screen-reader-text"><?= __('Toggle documentation panel', 'site-reviews'); ?></span> |
|
7 | + <span class="screen-reader-text"><?= __( 'Toggle documentation panel', 'site-reviews' ); ?></span> |
|
8 | 8 | <span class="toggle-indicator" aria-hidden="true"></span> |
9 | 9 | </button> |
10 | 10 | </div> |
11 | 11 | <div class="inside"> |
12 | - <p>To add additional values to the generated schema, use the <code><a href="<?= admin_url('edit.php?post_type=site-review&page=documentation#!hooks'); ?>" data-expand="#hooks-07">site-reviews/schema/[SCHEMA_TYPE]</a></code> hook in your theme's functions.php file.</p> |
|
12 | + <p>To add additional values to the generated schema, use the <code><a href="<?= admin_url( 'edit.php?post_type=site-review&page=documentation#!hooks' ); ?>" data-expand="#hooks-07">site-reviews/schema/[SCHEMA_TYPE]</a></code> hook in your theme's functions.php file.</p> |
|
13 | 13 | <p>Make sure to use Google's <a href="https://search.google.com/structured-data/testing-tool">Structured Data Testing Tool</a> to test the schema after any custom modifications have been made.</p> |
14 | 14 | <pre><code class="php">/** |
15 | 15 | * Modifies the schema created by Site Reviews. |
@@ -34,7 +34,7 @@ discard block |
||
34 | 34 | <div class="glsr-card-header"> |
35 | 35 | <h3>How do I add pagination to my reviews?</h3> |
36 | 36 | <button type="button" class="handlediv" aria-expanded="true"> |
37 | - <span class="screen-reader-text"><?= __('Toggle documentation panel', 'site-reviews'); ?></span> |
|
37 | + <span class="screen-reader-text"><?= __( 'Toggle documentation panel', 'site-reviews' ); ?></span> |
|
38 | 38 | <span class="toggle-indicator" aria-hidden="true"></span> |
39 | 39 | </button> |
40 | 40 | </div> |
@@ -43,7 +43,7 @@ discard block |
||
43 | 43 | <p>If you are using the shortcodes, then use the <code>pagination</code> and <code>count</code> options.</p> |
44 | 44 | <p>For example, this will paginate reviews to 10 reviews per-page:</p> |
45 | 45 | <pre><code class="php">[site_reviews pagination=ajax count=10]</code></pre> |
46 | - <p>To lean more about the available shortcode options and how to use them, please see the <code><a href="<?= admin_url('edit.php?post_type=site-review&page=documentation#!shortcodes'); ?>">Documentation > Shortcodes</a></code> page.</p> |
|
46 | + <p>To lean more about the available shortcode options and how to use them, please see the <code><a href="<?= admin_url( 'edit.php?post_type=site-review&page=documentation#!shortcodes' ); ?>">Documentation > Shortcodes</a></code> page.</p> |
|
47 | 47 | </div> |
48 | 48 | </div> |
49 | 49 | |
@@ -51,7 +51,7 @@ discard block |
||
51 | 51 | <div class="glsr-card-header"> |
52 | 52 | <h3>How do I assign reviews to a page?</h3> |
53 | 53 | <button type="button" class="handlediv" aria-expanded="true"> |
54 | - <span class="screen-reader-text"><?= __('Toggle documentation panel', 'site-reviews'); ?></span> |
|
54 | + <span class="screen-reader-text"><?= __( 'Toggle documentation panel', 'site-reviews' ); ?></span> |
|
55 | 55 | <span class="toggle-indicator" aria-hidden="true"></span> |
56 | 56 | </button> |
57 | 57 | </div> |
@@ -69,7 +69,7 @@ discard block |
||
69 | 69 | <p>If you use <code>post_id</code> as the value, then Site Reviews will know to automatically use the Page ID of the current page.</p> |
70 | 70 | <p>If you use <code>parent_id</code> as the value, then Site Reviews will know to automatically use the Page ID of the current page's Parent.</p> |
71 | 71 | <p>You can, of course, also directly enter the numerical WordPress Page ID of the page instead if your prefer.</p> |
72 | - <p>To lean more about the available shortcode options and how to use them, please see the <code><a href="<?= admin_url('edit.php?post_type=site-review&page=documentation#!shortcodes'); ?>">Documentation > Shortcodes</a></code> page.</p> |
|
72 | + <p>To lean more about the available shortcode options and how to use them, please see the <code><a href="<?= admin_url( 'edit.php?post_type=site-review&page=documentation#!shortcodes' ); ?>">Documentation > Shortcodes</a></code> page.</p> |
|
73 | 73 | </div> |
74 | 74 | </div> |
75 | 75 | |
@@ -77,7 +77,7 @@ discard block |
||
77 | 77 | <div class="glsr-card-header"> |
78 | 78 | <h3>How do I change the font?</h3> |
79 | 79 | <button type="button" class="handlediv" aria-expanded="true"> |
80 | - <span class="screen-reader-text"><?= __('Toggle documentation panel', 'site-reviews'); ?></span> |
|
80 | + <span class="screen-reader-text"><?= __( 'Toggle documentation panel', 'site-reviews' ); ?></span> |
|
81 | 81 | <span class="toggle-indicator" aria-hidden="true"></span> |
82 | 82 | </button> |
83 | 83 | </div> |
@@ -93,7 +93,7 @@ discard block |
||
93 | 93 | <div class="glsr-card-header"> |
94 | 94 | <h3>How do I change the order of the review fields?</h3> |
95 | 95 | <button type="button" class="handlediv" aria-expanded="true"> |
96 | - <span class="screen-reader-text"><?= __('Toggle documentation panel', 'site-reviews'); ?></span> |
|
96 | + <span class="screen-reader-text"><?= __( 'Toggle documentation panel', 'site-reviews' ); ?></span> |
|
97 | 97 | <span class="toggle-indicator" aria-hidden="true"></span> |
98 | 98 | </button> |
99 | 99 | </div> |
@@ -121,7 +121,7 @@ discard block |
||
121 | 121 | <div class="glsr-card-header"> |
122 | 122 | <h3>How do I change the order of the reviews summary fields?</h3> |
123 | 123 | <button type="button" class="handlediv" aria-expanded="true"> |
124 | - <span class="screen-reader-text"><?= __('Toggle documentation panel', 'site-reviews'); ?></span> |
|
124 | + <span class="screen-reader-text"><?= __( 'Toggle documentation panel', 'site-reviews' ); ?></span> |
|
125 | 125 | <span class="toggle-indicator" aria-hidden="true"></span> |
126 | 126 | </button> |
127 | 127 | </div> |
@@ -147,12 +147,12 @@ discard block |
||
147 | 147 | <div class="glsr-card-header"> |
148 | 148 | <h3>How do I change the order of the submission form fields?</h3> |
149 | 149 | <button type="button" class="handlediv" aria-expanded="true"> |
150 | - <span class="screen-reader-text"><?= __('Toggle documentation panel', 'site-reviews'); ?></span> |
|
150 | + <span class="screen-reader-text"><?= __( 'Toggle documentation panel', 'site-reviews' ); ?></span> |
|
151 | 151 | <span class="toggle-indicator" aria-hidden="true"></span> |
152 | 152 | </button> |
153 | 153 | </div> |
154 | 154 | <div class="inside"> |
155 | - <p>To customise the order of the fields in the review submission form, use the <code><a href="<?= admin_url('edit.php?post_type=site-review&page=documentation#!hooks'); ?>" data-expand="#hooks-01">site-reviews/submission-form/order</a></code> filter hook in your theme's <code>functions.php</code> file.</p> |
|
155 | + <p>To customise the order of the fields in the review submission form, use the <code><a href="<?= admin_url( 'edit.php?post_type=site-review&page=documentation#!hooks' ); ?>" data-expand="#hooks-01">site-reviews/submission-form/order</a></code> filter hook in your theme's <code>functions.php</code> file.</p> |
|
156 | 156 | <pre><code class="php">/** |
157 | 157 | * Customises the order of the fields used in the Site Reviews submission form. |
158 | 158 | * Paste this in your active theme's functions.php file. |
@@ -171,7 +171,7 @@ discard block |
||
171 | 171 | 'terms', |
172 | 172 | ]; |
173 | 173 | });</code></pre> |
174 | - <p>If you have used the example above and the submission-form fields are not working correctly, check the <code><a href="<?= admin_url('edit.php?post_type=site-review&page=tools#!console'); ?>">Tools → Console</a></code> for errors.</p> |
|
174 | + <p>If you have used the example above and the submission-form fields are not working correctly, check the <code><a href="<?= admin_url( 'edit.php?post_type=site-review&page=tools#!console' ); ?>">Tools → Console</a></code> for errors.</p> |
|
175 | 175 | </div> |
176 | 176 | </div> |
177 | 177 | |
@@ -179,7 +179,7 @@ discard block |
||
179 | 179 | <div class="glsr-card-header"> |
180 | 180 | <h3>How do I change the pagination query string?</h3> |
181 | 181 | <button type="button" class="handlediv" aria-expanded="true"> |
182 | - <span class="screen-reader-text"><?= __('Toggle documentation panel', 'site-reviews'); ?></span> |
|
182 | + <span class="screen-reader-text"><?= __( 'Toggle documentation panel', 'site-reviews' ); ?></span> |
|
183 | 183 | <span class="toggle-indicator" aria-hidden="true"></span> |
184 | 184 | </button> |
185 | 185 | </div> |
@@ -201,12 +201,12 @@ discard block |
||
201 | 201 | <div class="glsr-card-header"> |
202 | 202 | <h3>How do I change the text of...?</h3> |
203 | 203 | <button type="button" class="handlediv" aria-expanded="true"> |
204 | - <span class="screen-reader-text"><?= __('Toggle documentation panel', 'site-reviews'); ?></span> |
|
204 | + <span class="screen-reader-text"><?= __( 'Toggle documentation panel', 'site-reviews' ); ?></span> |
|
205 | 205 | <span class="toggle-indicator" aria-hidden="true"></span> |
206 | 206 | </button> |
207 | 207 | </div> |
208 | 208 | <div class="inside"> |
209 | - <p>You can change any text in the plugin on the <code><a href="<?= admin_url('edit.php?post_type=site-review&page=settings#!translations'); ?>">Settings → Translations</a></code> page.</p> |
|
209 | + <p>You can change any text in the plugin on the <code><a href="<?= admin_url( 'edit.php?post_type=site-review&page=settings#!translations' ); ?>">Settings → Translations</a></code> page.</p> |
|
210 | 210 | </div> |
211 | 211 | </div> |
212 | 212 | |
@@ -214,12 +214,12 @@ discard block |
||
214 | 214 | <div class="glsr-card-header"> |
215 | 215 | <h3>How do I create a review programmatically?</h3> |
216 | 216 | <button type="button" class="handlediv" aria-expanded="true"> |
217 | - <span class="screen-reader-text"><?= __('Toggle documentation panel', 'site-reviews'); ?></span> |
|
217 | + <span class="screen-reader-text"><?= __( 'Toggle documentation panel', 'site-reviews' ); ?></span> |
|
218 | 218 | <span class="toggle-indicator" aria-hidden="true"></span> |
219 | 219 | </button> |
220 | 220 | </div> |
221 | 221 | <div class="inside"> |
222 | - <p>Site Reviews provides a <code><a href="<?= admin_url('edit.php?post_type=site-review&page=documentation#!functions'); ?>" data-expand="#functions-02">glsr_create_review()</a></code> helper function to easily create a review.</p> |
|
222 | + <p>Site Reviews provides a <code><a href="<?= admin_url( 'edit.php?post_type=site-review&page=documentation#!functions' ); ?>" data-expand="#functions-02">glsr_create_review()</a></code> helper function to easily create a review.</p> |
|
223 | 223 | <p>Here is an example:</p> |
224 | 224 | <pre><code class="php">if (function_exists('glsr_create_review')) { |
225 | 225 | $review = glsr_create_review([ |
@@ -239,12 +239,12 @@ discard block |
||
239 | 239 | <div class="glsr-card-header"> |
240 | 240 | <h3>How do I customise the stars?</h3> |
241 | 241 | <button type="button" class="handlediv" aria-expanded="true"> |
242 | - <span class="screen-reader-text"><?= __('Toggle documentation panel', 'site-reviews'); ?></span> |
|
242 | + <span class="screen-reader-text"><?= __( 'Toggle documentation panel', 'site-reviews' ); ?></span> |
|
243 | 243 | <span class="toggle-indicator" aria-hidden="true"></span> |
244 | 244 | </button> |
245 | 245 | </div> |
246 | 246 | <div class="inside"> |
247 | - <p>To customise the star images used by the plugin, use the <code><a href="<?= admin_url('edit.php?post_type=site-review&page=documentation#!hooks'); ?>" data-expand="#hooks-02">site-reviews/config/inline-styles</a></code> filter hook in your theme's <code>functions.php</code> file.</p> |
|
247 | + <p>To customise the star images used by the plugin, use the <code><a href="<?= admin_url( 'edit.php?post_type=site-review&page=documentation#!hooks' ); ?>" data-expand="#hooks-02">site-reviews/config/inline-styles</a></code> filter hook in your theme's <code>functions.php</code> file.</p> |
|
248 | 248 | <p>Here is an example:</p> |
249 | 249 | <pre><code class="php">/** |
250 | 250 | * Customises the stars used by Site Reviews. |
@@ -266,7 +266,7 @@ discard block |
||
266 | 266 | <li>Open the SVG images that you copied with a text editor</li> |
267 | 267 | <li>Change the <a target="_blank" href="https://www.hexcolortool.com">hex colour code</a> to the one you want</li> |
268 | 268 | <li>Install and activate the <a target="_blank" href="https://wordpress.org/plugins/safe-svg/">Safe SVG</a> plugin</li> |
269 | - <li>Upload the edited SVG images to your <a href="<?= admin_url('upload.php'); ?>">Media Library</a></li> |
|
269 | + <li>Upload the edited SVG images to your <a href="<?= admin_url( 'upload.php' ); ?>">Media Library</a></li> |
|
270 | 270 | <li>Copy the File URL of the uploaded SVG images and paste them into the snippet above</li> |
271 | 271 | </ol> |
272 | 272 | </div> |
@@ -276,7 +276,7 @@ discard block |
||
276 | 276 | <div class="glsr-card-header"> |
277 | 277 | <h3>How do I hide the form after a review is submitted?</h3> |
278 | 278 | <button type="button" class="handlediv" aria-expanded="true"> |
279 | - <span class="screen-reader-text"><?= __('Toggle documentation panel', 'site-reviews'); ?></span> |
|
279 | + <span class="screen-reader-text"><?= __( 'Toggle documentation panel', 'site-reviews' ); ?></span> |
|
280 | 280 | <span class="toggle-indicator" aria-hidden="true"></span> |
281 | 281 | </button> |
282 | 282 | </div> |
@@ -298,7 +298,7 @@ discard block |
||
298 | 298 | });"; |
299 | 299 | });</code></pre> |
300 | 300 | <p>You can also hide the form from registered users who have already submitted a review.</p> |
301 | - <p>To do this, you will need to first make sure that the "Limit Reviews" setting on the <code><a href="<?= admin_url('edit.php?post_type=site-review&page=settings#!submissions'); ?>">Settings → Submissions</a></code> page is set to "By Username". Once that is done, you can use the following code snippet:</p> |
|
301 | + <p>To do this, you will need to first make sure that the "Limit Reviews" setting on the <code><a href="<?= admin_url( 'edit.php?post_type=site-review&page=settings#!submissions' ); ?>">Settings → Submissions</a></code> page is set to "By Username". Once that is done, you can use the following code snippet:</p> |
|
302 | 302 | <pre><code class="php">/** |
303 | 303 | * Hides the submission form from registered users who have already submitted a review |
304 | 304 | * Paste this in your active theme's functions.php file |
@@ -319,7 +319,7 @@ discard block |
||
319 | 319 | <div class="glsr-card-header"> |
320 | 320 | <h3>How do I limit the submitted review length?</h3> |
321 | 321 | <button type="button" class="handlediv" aria-expanded="true"> |
322 | - <span class="screen-reader-text"><?= __('Toggle documentation panel', 'site-reviews'); ?></span> |
|
322 | + <span class="screen-reader-text"><?= __( 'Toggle documentation panel', 'site-reviews' ); ?></span> |
|
323 | 323 | <span class="toggle-indicator" aria-hidden="true"></span> |
324 | 324 | </button> |
325 | 325 | </div> |
@@ -357,7 +357,7 @@ discard block |
||
357 | 357 | <div class="glsr-card-header"> |
358 | 358 | <h3>How do I order pages with assigned reviews by rating or ranking?</h3> |
359 | 359 | <button type="button" class="handlediv" aria-expanded="true"> |
360 | - <span class="screen-reader-text"><?= __('Toggle documentation panel', 'site-reviews'); ?></span> |
|
360 | + <span class="screen-reader-text"><?= __( 'Toggle documentation panel', 'site-reviews' ); ?></span> |
|
361 | 361 | <span class="toggle-indicator" aria-hidden="true"></span> |
362 | 362 | </button> |
363 | 363 | </div> |
@@ -413,7 +413,7 @@ discard block |
||
413 | 413 | <div class="glsr-card-header"> |
414 | 414 | <h3>How do I redirect to a custom URL after a form is submitted?</h3> |
415 | 415 | <button type="button" class="handlediv" aria-expanded="true"> |
416 | - <span class="screen-reader-text"><?= __('Toggle documentation panel', 'site-reviews'); ?></span> |
|
416 | + <span class="screen-reader-text"><?= __( 'Toggle documentation panel', 'site-reviews' ); ?></span> |
|
417 | 417 | <span class="toggle-indicator" aria-hidden="true"></span> |
418 | 418 | </button> |
419 | 419 | </div> |
@@ -426,7 +426,7 @@ discard block |
||
426 | 426 | <div class="glsr-card-header"> |
427 | 427 | <h3>How do I remove the dash in front of the author's name?</h3> |
428 | 428 | <button type="button" class="handlediv" aria-expanded="true"> |
429 | - <span class="screen-reader-text"><?= __('Toggle documentation panel', 'site-reviews'); ?></span> |
|
429 | + <span class="screen-reader-text"><?= __( 'Toggle documentation panel', 'site-reviews' ); ?></span> |
|
430 | 430 | <span class="toggle-indicator" aria-hidden="true"></span> |
431 | 431 | </button> |
432 | 432 | </div> |
@@ -442,7 +442,7 @@ discard block |
||
442 | 442 | <div class="glsr-card-header"> |
443 | 443 | <h3>How do I use the plugin templates in my theme?</h3> |
444 | 444 | <button type="button" class="handlediv" aria-expanded="true"> |
445 | - <span class="screen-reader-text"><?= __('Toggle documentation panel', 'site-reviews'); ?></span> |
|
445 | + <span class="screen-reader-text"><?= __( 'Toggle documentation panel', 'site-reviews' ); ?></span> |
|
446 | 446 | <span class="toggle-indicator" aria-hidden="true"></span> |
447 | 447 | </button> |
448 | 448 | </div> |
@@ -460,7 +460,7 @@ discard block |
||
460 | 460 | <div class="glsr-card-header"> |
461 | 461 | <h3>Why are the IP Addresses being detected as 127.0.0.1?</h3> |
462 | 462 | <button type="button" class="handlediv" aria-expanded="true"> |
463 | - <span class="screen-reader-text"><?= __('Toggle documentation panel', 'site-reviews'); ?></span> |
|
463 | + <span class="screen-reader-text"><?= __( 'Toggle documentation panel', 'site-reviews' ); ?></span> |
|
464 | 464 | <span class="toggle-indicator" aria-hidden="true"></span> |
465 | 465 | </button> |
466 | 466 | </div> |
@@ -1,20 +1,20 @@ |
||
1 | -<?php defined('WPINC') || die; ?> |
|
1 | +<?php defined( 'WPINC' ) || die; ?> |
|
2 | 2 | |
3 | 3 | <div class="wrap"> |
4 | 4 | <h1 class="wp-heading-inline"> |
5 | - <?= esc_html(get_admin_page_title()); ?> |
|
6 | - <a href="<?= admin_url('edit.php?post_type=site-review&page=welcome'); ?>" class="page-title-action"><?= __('About', 'site-reviews'); ?></a> |
|
5 | + <?= esc_html( get_admin_page_title() ); ?> |
|
6 | + <a href="<?= admin_url( 'edit.php?post_type=site-review&page=welcome' ); ?>" class="page-title-action"><?= __( 'About', 'site-reviews' ); ?></a> |
|
7 | 7 | </h1> |
8 | 8 | <?= $notices; ?> |
9 | - <p><?= __('Click an active tab to expand/collapse all sections.', 'site-reviews'); ?></p> |
|
9 | + <p><?= __( 'Click an active tab to expand/collapse all sections.', 'site-reviews' ); ?></p> |
|
10 | 10 | <h2 class="glsr-nav-tab-wrapper nav-tab-wrapper"> |
11 | - <?php foreach ($tabs as $id => $title) : ?> |
|
11 | + <?php foreach( $tabs as $id => $title ) : ?> |
|
12 | 12 | <a class="glsr-nav-tab nav-tab" href="#<?= $id; ?>"><?= $title; ?></a> |
13 | 13 | <?php endforeach; ?> |
14 | 14 | </h2> |
15 | - <?php foreach ($tabs as $id => $title) : ?> |
|
15 | + <?php foreach( $tabs as $id => $title ) : ?> |
|
16 | 16 | <div class="glsr-nav-view ui-tabs-hide" id="<?= $id; ?>"> |
17 | - <?php glsr()->render('pages/documentation/'.$id, $data); ?> |
|
17 | + <?php glsr()->render( 'pages/documentation/'.$id, $data ); ?> |
|
18 | 18 | </div> |
19 | 19 | <?php endforeach; ?> |
20 | 20 | <input type="hidden" name="_active_tab"> |
@@ -7,10 +7,10 @@ discard block |
||
7 | 7 | /** |
8 | 8 | * @return bool |
9 | 9 | */ |
10 | - public static function compareArrays(array $arr1, array $arr2) |
|
10 | + public static function compareArrays( array $arr1, array $arr2 ) |
|
11 | 11 | { |
12 | - sort($arr1); |
|
13 | - sort($arr2); |
|
12 | + sort( $arr1 ); |
|
13 | + sort( $arr2 ); |
|
14 | 14 | return $arr1 == $arr2; |
15 | 15 | } |
16 | 16 | |
@@ -18,21 +18,21 @@ discard block |
||
18 | 18 | * @param mixed $array |
19 | 19 | * @return array |
20 | 20 | */ |
21 | - public static function consolidateArray($array) |
|
21 | + public static function consolidateArray( $array ) |
|
22 | 22 | { |
23 | - return is_array($array) || is_object($array) |
|
24 | - ? (array) $array |
|
23 | + return is_array( $array ) || is_object( $array ) |
|
24 | + ? (array)$array |
|
25 | 25 | : []; |
26 | 26 | } |
27 | 27 | |
28 | 28 | /** |
29 | 29 | * @return array |
30 | 30 | */ |
31 | - public static function convertDotNotationArray(array $array) |
|
31 | + public static function convertDotNotationArray( array $array ) |
|
32 | 32 | { |
33 | 33 | $results = []; |
34 | - foreach ($array as $path => $value) { |
|
35 | - $results = static::set($results, $path, $value); |
|
34 | + foreach( $array as $path => $value ) { |
|
35 | + $results = static::set( $results, $path, $value ); |
|
36 | 36 | } |
37 | 37 | return $results; |
38 | 38 | } |
@@ -42,12 +42,12 @@ discard block |
||
42 | 42 | * @param mixed $callback |
43 | 43 | * @return array |
44 | 44 | */ |
45 | - public static function convertStringToArray($string, $callback = null) |
|
45 | + public static function convertStringToArray( $string, $callback = null ) |
|
46 | 46 | { |
47 | - $array = array_map('trim', explode(',', $string)); |
|
47 | + $array = array_map( 'trim', explode( ',', $string ) ); |
|
48 | 48 | return $callback |
49 | - ? array_filter($array, $callback) |
|
50 | - : array_filter($array); |
|
49 | + ? array_filter( $array, $callback ) |
|
50 | + : array_filter( $array ); |
|
51 | 51 | } |
52 | 52 | |
53 | 53 | /** |
@@ -55,17 +55,17 @@ discard block |
||
55 | 55 | * @param string $prefix |
56 | 56 | * @return array |
57 | 57 | */ |
58 | - public static function flattenArray(array $array, $flattenValue = false, $prefix = '') |
|
58 | + public static function flattenArray( array $array, $flattenValue = false, $prefix = '' ) |
|
59 | 59 | { |
60 | 60 | $result = []; |
61 | - foreach ($array as $key => $value) { |
|
62 | - $newKey = ltrim($prefix.'.'.$key, '.'); |
|
63 | - if (static::isIndexedFlatArray($value)) { |
|
64 | - if ($flattenValue) { |
|
65 | - $value = '['.implode(', ', $value).']'; |
|
61 | + foreach( $array as $key => $value ) { |
|
62 | + $newKey = ltrim( $prefix.'.'.$key, '.' ); |
|
63 | + if( static::isIndexedFlatArray( $value ) ) { |
|
64 | + if( $flattenValue ) { |
|
65 | + $value = '['.implode( ', ', $value ).']'; |
|
66 | 66 | } |
67 | - } elseif (is_array($value)) { |
|
68 | - $result = array_merge($result, static::flattenArray($value, $flattenValue, $newKey)); |
|
67 | + } elseif( is_array( $value ) ) { |
|
68 | + $result = array_merge( $result, static::flattenArray( $value, $flattenValue, $newKey ) ); |
|
69 | 69 | continue; |
70 | 70 | } |
71 | 71 | $result[$newKey] = $value; |
@@ -80,12 +80,12 @@ discard block |
||
80 | 80 | * @param mixed $fallback |
81 | 81 | * @return mixed |
82 | 82 | */ |
83 | - public static function get($data, $path = '', $fallback = '') |
|
83 | + public static function get( $data, $path = '', $fallback = '' ) |
|
84 | 84 | { |
85 | - $data = static::consolidateArray($data); |
|
86 | - $keys = explode('.', $path); |
|
87 | - foreach ($keys as $key) { |
|
88 | - if (!isset($data[$key])) { |
|
85 | + $data = static::consolidateArray( $data ); |
|
86 | + $keys = explode( '.', $path ); |
|
87 | + foreach( $keys as $key ) { |
|
88 | + if( !isset($data[$key]) ) { |
|
89 | 89 | return $fallback; |
90 | 90 | } |
91 | 91 | $data = $data[$key]; |
@@ -98,47 +98,47 @@ discard block |
||
98 | 98 | * @param string $position |
99 | 99 | * @return array |
100 | 100 | */ |
101 | - public static function insertInArray(array $array, array $insert, $key, $position = 'before') |
|
101 | + public static function insertInArray( array $array, array $insert, $key, $position = 'before' ) |
|
102 | 102 | { |
103 | - $keyPosition = intval(array_search($key, array_keys($array))); |
|
104 | - if ('after' == $position) { |
|
103 | + $keyPosition = intval( array_search( $key, array_keys( $array ) ) ); |
|
104 | + if( 'after' == $position ) { |
|
105 | 105 | ++$keyPosition; |
106 | 106 | } |
107 | - if (false !== $keyPosition) { |
|
108 | - $result = array_slice($array, 0, $keyPosition); |
|
109 | - $result = array_merge($result, $insert); |
|
110 | - return array_merge($result, array_slice($array, $keyPosition)); |
|
107 | + if( false !== $keyPosition ) { |
|
108 | + $result = array_slice( $array, 0, $keyPosition ); |
|
109 | + $result = array_merge( $result, $insert ); |
|
110 | + return array_merge( $result, array_slice( $array, $keyPosition ) ); |
|
111 | 111 | } |
112 | - return array_merge($array, $insert); |
|
112 | + return array_merge( $array, $insert ); |
|
113 | 113 | } |
114 | 114 | |
115 | 115 | /** |
116 | 116 | * @param mixed $array |
117 | 117 | * @return bool |
118 | 118 | */ |
119 | - public static function isIndexedFlatArray($array) |
|
119 | + public static function isIndexedFlatArray( $array ) |
|
120 | 120 | { |
121 | - if (!is_array($array) || array_filter($array, 'is_array')) { |
|
121 | + if( !is_array( $array ) || array_filter( $array, 'is_array' ) ) { |
|
122 | 122 | return false; |
123 | 123 | } |
124 | - return wp_is_numeric_array($array); |
|
124 | + return wp_is_numeric_array( $array ); |
|
125 | 125 | } |
126 | 126 | |
127 | 127 | /** |
128 | 128 | * @param bool $prefixed |
129 | 129 | * @return array |
130 | 130 | */ |
131 | - public static function prefixArrayKeys(array $values, $prefixed = true) |
|
131 | + public static function prefixArrayKeys( array $values, $prefixed = true ) |
|
132 | 132 | { |
133 | 133 | $trim = '_'; |
134 | 134 | $prefix = $prefixed |
135 | 135 | ? $trim |
136 | 136 | : ''; |
137 | 137 | $prefixed = []; |
138 | - foreach ($values as $key => $value) { |
|
139 | - $key = trim($key); |
|
140 | - if (0 === strpos($key, $trim)) { |
|
141 | - $key = substr($key, strlen($trim)); |
|
138 | + foreach( $values as $key => $value ) { |
|
139 | + $key = trim( $key ); |
|
140 | + if( 0 === strpos( $key, $trim ) ) { |
|
141 | + $key = substr( $key, strlen( $trim ) ); |
|
142 | 142 | } |
143 | 143 | $prefixed[$prefix.$key] = $value; |
144 | 144 | } |
@@ -148,15 +148,15 @@ discard block |
||
148 | 148 | /** |
149 | 149 | * @return array |
150 | 150 | */ |
151 | - public static function removeEmptyArrayValues(array $array) |
|
151 | + public static function removeEmptyArrayValues( array $array ) |
|
152 | 152 | { |
153 | 153 | $result = []; |
154 | - foreach ($array as $key => $value) { |
|
155 | - if (!$value) { |
|
154 | + foreach( $array as $key => $value ) { |
|
155 | + if( !$value ) { |
|
156 | 156 | continue; |
157 | 157 | } |
158 | - $result[$key] = is_array($value) |
|
159 | - ? static::removeEmptyArrayValues($value) |
|
158 | + $result[$key] = is_array( $value ) |
|
159 | + ? static::removeEmptyArrayValues( $value ) |
|
160 | 160 | : $value; |
161 | 161 | } |
162 | 162 | return $result; |
@@ -169,14 +169,14 @@ discard block |
||
169 | 169 | * @param mixed $value |
170 | 170 | * @return array |
171 | 171 | */ |
172 | - public static function set(array $data, $path, $value) |
|
172 | + public static function set( array $data, $path, $value ) |
|
173 | 173 | { |
174 | - $token = strtok($path, '.'); |
|
174 | + $token = strtok( $path, '.' ); |
|
175 | 175 | $ref = &$data; |
176 | - while (false !== $token) { |
|
177 | - $ref = static::consolidateArray($ref); |
|
176 | + while( false !== $token ) { |
|
177 | + $ref = static::consolidateArray( $ref ); |
|
178 | 178 | $ref = &$ref[$token]; |
179 | - $token = strtok('.'); |
|
179 | + $token = strtok( '.' ); |
|
180 | 180 | } |
181 | 181 | $ref = $value; |
182 | 182 | return $data; |
@@ -185,8 +185,8 @@ discard block |
||
185 | 185 | /** |
186 | 186 | * @return array |
187 | 187 | */ |
188 | - public static function unprefixArrayKeys(array $values) |
|
188 | + public static function unprefixArrayKeys( array $values ) |
|
189 | 189 | { |
190 | - return static::prefixArrayKeys($values, false); |
|
190 | + return static::prefixArrayKeys( $values, false ); |
|
191 | 191 | } |
192 | 192 | } |
@@ -64,7 +64,8 @@ |
||
64 | 64 | if ($flattenValue) { |
65 | 65 | $value = '['.implode(', ', $value).']'; |
66 | 66 | } |
67 | - } elseif (is_array($value)) { |
|
67 | + } |
|
68 | + elseif (is_array($value)) { |
|
68 | 69 | $result = array_merge($result, static::flattenArray($value, $flattenValue, $newKey)); |
69 | 70 | continue; |
70 | 71 | } |
@@ -4,189 +4,189 @@ |
||
4 | 4 | |
5 | 5 | class Arr |
6 | 6 | { |
7 | - /** |
|
8 | - * @return bool |
|
9 | - */ |
|
10 | - public static function compareArrays(array $arr1, array $arr2) |
|
11 | - { |
|
12 | - sort($arr1); |
|
13 | - sort($arr2); |
|
14 | - return $arr1 == $arr2; |
|
15 | - } |
|
7 | + /** |
|
8 | + * @return bool |
|
9 | + */ |
|
10 | + public static function compareArrays(array $arr1, array $arr2) |
|
11 | + { |
|
12 | + sort($arr1); |
|
13 | + sort($arr2); |
|
14 | + return $arr1 == $arr2; |
|
15 | + } |
|
16 | 16 | |
17 | - /** |
|
18 | - * @param mixed $array |
|
19 | - * @return array |
|
20 | - */ |
|
21 | - public static function consolidateArray($array) |
|
22 | - { |
|
23 | - return is_array($array) || is_object($array) |
|
24 | - ? (array) $array |
|
25 | - : []; |
|
26 | - } |
|
17 | + /** |
|
18 | + * @param mixed $array |
|
19 | + * @return array |
|
20 | + */ |
|
21 | + public static function consolidateArray($array) |
|
22 | + { |
|
23 | + return is_array($array) || is_object($array) |
|
24 | + ? (array) $array |
|
25 | + : []; |
|
26 | + } |
|
27 | 27 | |
28 | - /** |
|
29 | - * @return array |
|
30 | - */ |
|
31 | - public static function convertDotNotationArray(array $array) |
|
32 | - { |
|
33 | - $results = []; |
|
34 | - foreach ($array as $path => $value) { |
|
35 | - $results = static::set($results, $path, $value); |
|
36 | - } |
|
37 | - return $results; |
|
38 | - } |
|
28 | + /** |
|
29 | + * @return array |
|
30 | + */ |
|
31 | + public static function convertDotNotationArray(array $array) |
|
32 | + { |
|
33 | + $results = []; |
|
34 | + foreach ($array as $path => $value) { |
|
35 | + $results = static::set($results, $path, $value); |
|
36 | + } |
|
37 | + return $results; |
|
38 | + } |
|
39 | 39 | |
40 | - /** |
|
41 | - * @param string $string |
|
42 | - * @param mixed $callback |
|
43 | - * @return array |
|
44 | - */ |
|
45 | - public static function convertStringToArray($string, $callback = null) |
|
46 | - { |
|
47 | - $array = array_map('trim', explode(',', $string)); |
|
48 | - return $callback |
|
49 | - ? array_filter($array, $callback) |
|
50 | - : array_filter($array); |
|
51 | - } |
|
40 | + /** |
|
41 | + * @param string $string |
|
42 | + * @param mixed $callback |
|
43 | + * @return array |
|
44 | + */ |
|
45 | + public static function convertStringToArray($string, $callback = null) |
|
46 | + { |
|
47 | + $array = array_map('trim', explode(',', $string)); |
|
48 | + return $callback |
|
49 | + ? array_filter($array, $callback) |
|
50 | + : array_filter($array); |
|
51 | + } |
|
52 | 52 | |
53 | - /** |
|
54 | - * @param bool $flattenValue |
|
55 | - * @param string $prefix |
|
56 | - * @return array |
|
57 | - */ |
|
58 | - public static function flattenArray(array $array, $flattenValue = false, $prefix = '') |
|
59 | - { |
|
60 | - $result = []; |
|
61 | - foreach ($array as $key => $value) { |
|
62 | - $newKey = ltrim($prefix.'.'.$key, '.'); |
|
63 | - if (static::isIndexedFlatArray($value)) { |
|
64 | - if ($flattenValue) { |
|
65 | - $value = '['.implode(', ', $value).']'; |
|
66 | - } |
|
67 | - } elseif (is_array($value)) { |
|
68 | - $result = array_merge($result, static::flattenArray($value, $flattenValue, $newKey)); |
|
69 | - continue; |
|
70 | - } |
|
71 | - $result[$newKey] = $value; |
|
72 | - } |
|
73 | - return $result; |
|
74 | - } |
|
53 | + /** |
|
54 | + * @param bool $flattenValue |
|
55 | + * @param string $prefix |
|
56 | + * @return array |
|
57 | + */ |
|
58 | + public static function flattenArray(array $array, $flattenValue = false, $prefix = '') |
|
59 | + { |
|
60 | + $result = []; |
|
61 | + foreach ($array as $key => $value) { |
|
62 | + $newKey = ltrim($prefix.'.'.$key, '.'); |
|
63 | + if (static::isIndexedFlatArray($value)) { |
|
64 | + if ($flattenValue) { |
|
65 | + $value = '['.implode(', ', $value).']'; |
|
66 | + } |
|
67 | + } elseif (is_array($value)) { |
|
68 | + $result = array_merge($result, static::flattenArray($value, $flattenValue, $newKey)); |
|
69 | + continue; |
|
70 | + } |
|
71 | + $result[$newKey] = $value; |
|
72 | + } |
|
73 | + return $result; |
|
74 | + } |
|
75 | 75 | |
76 | - /** |
|
77 | - * Get a value from an array of values using a dot-notation path as reference. |
|
78 | - * @param mixed $data |
|
79 | - * @param string $path |
|
80 | - * @param mixed $fallback |
|
81 | - * @return mixed |
|
82 | - */ |
|
83 | - public static function get($data, $path = '', $fallback = '') |
|
84 | - { |
|
85 | - $data = static::consolidateArray($data); |
|
86 | - $keys = explode('.', $path); |
|
87 | - foreach ($keys as $key) { |
|
88 | - if (!isset($data[$key])) { |
|
89 | - return $fallback; |
|
90 | - } |
|
91 | - $data = $data[$key]; |
|
92 | - } |
|
93 | - return $data; |
|
94 | - } |
|
76 | + /** |
|
77 | + * Get a value from an array of values using a dot-notation path as reference. |
|
78 | + * @param mixed $data |
|
79 | + * @param string $path |
|
80 | + * @param mixed $fallback |
|
81 | + * @return mixed |
|
82 | + */ |
|
83 | + public static function get($data, $path = '', $fallback = '') |
|
84 | + { |
|
85 | + $data = static::consolidateArray($data); |
|
86 | + $keys = explode('.', $path); |
|
87 | + foreach ($keys as $key) { |
|
88 | + if (!isset($data[$key])) { |
|
89 | + return $fallback; |
|
90 | + } |
|
91 | + $data = $data[$key]; |
|
92 | + } |
|
93 | + return $data; |
|
94 | + } |
|
95 | 95 | |
96 | - /** |
|
97 | - * @param string $key |
|
98 | - * @param string $position |
|
99 | - * @return array |
|
100 | - */ |
|
101 | - public static function insertInArray(array $array, array $insert, $key, $position = 'before') |
|
102 | - { |
|
103 | - $keyPosition = intval(array_search($key, array_keys($array))); |
|
104 | - if ('after' == $position) { |
|
105 | - ++$keyPosition; |
|
106 | - } |
|
107 | - if (false !== $keyPosition) { |
|
108 | - $result = array_slice($array, 0, $keyPosition); |
|
109 | - $result = array_merge($result, $insert); |
|
110 | - return array_merge($result, array_slice($array, $keyPosition)); |
|
111 | - } |
|
112 | - return array_merge($array, $insert); |
|
113 | - } |
|
96 | + /** |
|
97 | + * @param string $key |
|
98 | + * @param string $position |
|
99 | + * @return array |
|
100 | + */ |
|
101 | + public static function insertInArray(array $array, array $insert, $key, $position = 'before') |
|
102 | + { |
|
103 | + $keyPosition = intval(array_search($key, array_keys($array))); |
|
104 | + if ('after' == $position) { |
|
105 | + ++$keyPosition; |
|
106 | + } |
|
107 | + if (false !== $keyPosition) { |
|
108 | + $result = array_slice($array, 0, $keyPosition); |
|
109 | + $result = array_merge($result, $insert); |
|
110 | + return array_merge($result, array_slice($array, $keyPosition)); |
|
111 | + } |
|
112 | + return array_merge($array, $insert); |
|
113 | + } |
|
114 | 114 | |
115 | - /** |
|
116 | - * @param mixed $array |
|
117 | - * @return bool |
|
118 | - */ |
|
119 | - public static function isIndexedFlatArray($array) |
|
120 | - { |
|
121 | - if (!is_array($array) || array_filter($array, 'is_array')) { |
|
122 | - return false; |
|
123 | - } |
|
124 | - return wp_is_numeric_array($array); |
|
125 | - } |
|
115 | + /** |
|
116 | + * @param mixed $array |
|
117 | + * @return bool |
|
118 | + */ |
|
119 | + public static function isIndexedFlatArray($array) |
|
120 | + { |
|
121 | + if (!is_array($array) || array_filter($array, 'is_array')) { |
|
122 | + return false; |
|
123 | + } |
|
124 | + return wp_is_numeric_array($array); |
|
125 | + } |
|
126 | 126 | |
127 | - /** |
|
128 | - * @param bool $prefixed |
|
129 | - * @return array |
|
130 | - */ |
|
131 | - public static function prefixArrayKeys(array $values, $prefixed = true) |
|
132 | - { |
|
133 | - $trim = '_'; |
|
134 | - $prefix = $prefixed |
|
135 | - ? $trim |
|
136 | - : ''; |
|
137 | - $prefixed = []; |
|
138 | - foreach ($values as $key => $value) { |
|
139 | - $key = trim($key); |
|
140 | - if (0 === strpos($key, $trim)) { |
|
141 | - $key = substr($key, strlen($trim)); |
|
142 | - } |
|
143 | - $prefixed[$prefix.$key] = $value; |
|
144 | - } |
|
145 | - return $prefixed; |
|
146 | - } |
|
127 | + /** |
|
128 | + * @param bool $prefixed |
|
129 | + * @return array |
|
130 | + */ |
|
131 | + public static function prefixArrayKeys(array $values, $prefixed = true) |
|
132 | + { |
|
133 | + $trim = '_'; |
|
134 | + $prefix = $prefixed |
|
135 | + ? $trim |
|
136 | + : ''; |
|
137 | + $prefixed = []; |
|
138 | + foreach ($values as $key => $value) { |
|
139 | + $key = trim($key); |
|
140 | + if (0 === strpos($key, $trim)) { |
|
141 | + $key = substr($key, strlen($trim)); |
|
142 | + } |
|
143 | + $prefixed[$prefix.$key] = $value; |
|
144 | + } |
|
145 | + return $prefixed; |
|
146 | + } |
|
147 | 147 | |
148 | - /** |
|
149 | - * @return array |
|
150 | - */ |
|
151 | - public static function removeEmptyArrayValues(array $array) |
|
152 | - { |
|
153 | - $result = []; |
|
154 | - foreach ($array as $key => $value) { |
|
155 | - if (!$value) { |
|
156 | - continue; |
|
157 | - } |
|
158 | - $result[$key] = is_array($value) |
|
159 | - ? static::removeEmptyArrayValues($value) |
|
160 | - : $value; |
|
161 | - } |
|
162 | - return $result; |
|
163 | - } |
|
148 | + /** |
|
149 | + * @return array |
|
150 | + */ |
|
151 | + public static function removeEmptyArrayValues(array $array) |
|
152 | + { |
|
153 | + $result = []; |
|
154 | + foreach ($array as $key => $value) { |
|
155 | + if (!$value) { |
|
156 | + continue; |
|
157 | + } |
|
158 | + $result[$key] = is_array($value) |
|
159 | + ? static::removeEmptyArrayValues($value) |
|
160 | + : $value; |
|
161 | + } |
|
162 | + return $result; |
|
163 | + } |
|
164 | 164 | |
165 | 165 | |
166 | - /** |
|
167 | - * Set a value to an array of values using a dot-notation path as reference. |
|
168 | - * @param string $path |
|
169 | - * @param mixed $value |
|
170 | - * @return array |
|
171 | - */ |
|
172 | - public static function set(array $data, $path, $value) |
|
173 | - { |
|
174 | - $token = strtok($path, '.'); |
|
175 | - $ref = &$data; |
|
176 | - while (false !== $token) { |
|
177 | - $ref = static::consolidateArray($ref); |
|
178 | - $ref = &$ref[$token]; |
|
179 | - $token = strtok('.'); |
|
180 | - } |
|
181 | - $ref = $value; |
|
182 | - return $data; |
|
183 | - } |
|
166 | + /** |
|
167 | + * Set a value to an array of values using a dot-notation path as reference. |
|
168 | + * @param string $path |
|
169 | + * @param mixed $value |
|
170 | + * @return array |
|
171 | + */ |
|
172 | + public static function set(array $data, $path, $value) |
|
173 | + { |
|
174 | + $token = strtok($path, '.'); |
|
175 | + $ref = &$data; |
|
176 | + while (false !== $token) { |
|
177 | + $ref = static::consolidateArray($ref); |
|
178 | + $ref = &$ref[$token]; |
|
179 | + $token = strtok('.'); |
|
180 | + } |
|
181 | + $ref = $value; |
|
182 | + return $data; |
|
183 | + } |
|
184 | 184 | |
185 | - /** |
|
186 | - * @return array |
|
187 | - */ |
|
188 | - public static function unprefixArrayKeys(array $values) |
|
189 | - { |
|
190 | - return static::prefixArrayKeys($values, false); |
|
191 | - } |
|
185 | + /** |
|
186 | + * @return array |
|
187 | + */ |
|
188 | + public static function unprefixArrayKeys(array $values) |
|
189 | + { |
|
190 | + return static::prefixArrayKeys($values, false); |
|
191 | + } |
|
192 | 192 | } |
@@ -9,241 +9,241 @@ |
||
9 | 9 | |
10 | 10 | class Field |
11 | 11 | { |
12 | - /** |
|
13 | - * @var array |
|
14 | - */ |
|
15 | - public $field; |
|
16 | - |
|
17 | - public function __construct(array $field = []) |
|
18 | - { |
|
19 | - $this->field = wp_parse_args($field, [ |
|
20 | - 'errors' => false, |
|
21 | - 'is_hidden' => false, |
|
22 | - 'is_multi' => false, |
|
23 | - 'is_public' => false, |
|
24 | - 'is_raw' => false, |
|
25 | - 'is_setting' => false, |
|
26 | - 'is_valid' => true, |
|
27 | - 'is_widget' => false, |
|
28 | - 'path' => '', |
|
29 | - ]); |
|
30 | - $this->normalize(); |
|
31 | - } |
|
32 | - |
|
33 | - /** |
|
34 | - * @return string |
|
35 | - */ |
|
36 | - public function __toString() |
|
37 | - { |
|
38 | - return (string) $this->build(); |
|
39 | - } |
|
40 | - |
|
41 | - /** |
|
42 | - * @return void|string |
|
43 | - */ |
|
44 | - public function build() |
|
45 | - { |
|
46 | - if (!$this->field['is_valid']) { |
|
47 | - return; |
|
48 | - } |
|
49 | - if ($this->field['is_raw']) { |
|
50 | - return glsr(Builder::class)->{$this->field['type']}($this->field); |
|
51 | - } |
|
52 | - if (!$this->field['is_setting']) { |
|
53 | - return $this->buildField(); |
|
54 | - } |
|
55 | - if (!$this->field['is_multi']) { |
|
56 | - return $this->buildSettingField(); |
|
57 | - } |
|
58 | - return $this->buildSettingMultiField(); |
|
59 | - } |
|
60 | - |
|
61 | - /** |
|
62 | - * @return void |
|
63 | - */ |
|
64 | - public function render() |
|
65 | - { |
|
66 | - echo $this->build(); |
|
67 | - } |
|
68 | - |
|
69 | - /** |
|
70 | - * @return string |
|
71 | - */ |
|
72 | - protected function buildField() |
|
73 | - { |
|
74 | - $field = glsr(Template::class)->build('templates/form/field_'.$this->field['type'], [ |
|
75 | - 'context' => [ |
|
76 | - 'class' => $this->getFieldClass(), |
|
77 | - 'errors' => $this->getFieldErrors(), |
|
78 | - 'field' => glsr(Builder::class)->raw($this->field), |
|
79 | - 'label' => glsr(Builder::class)->label([ |
|
80 | - 'class' => 'glsr-'.$this->field['type'].'-label', |
|
81 | - 'for' => $this->field['id'], |
|
82 | - 'is_public' => $this->field['is_public'], |
|
83 | - 'text' => $this->field['label'].'<span></span>', |
|
84 | - 'type' => $this->field['type'], |
|
85 | - ]), |
|
86 | - ], |
|
87 | - 'field' => $this->field, |
|
88 | - ]); |
|
89 | - return apply_filters('site-reviews/rendered/field', $field, $this->field['type'], $this->field); |
|
90 | - } |
|
91 | - |
|
92 | - /** |
|
93 | - * @return string |
|
94 | - */ |
|
95 | - protected function buildSettingField() |
|
96 | - { |
|
97 | - return glsr(Template::class)->build('partials/form/table-row', [ |
|
98 | - 'context' => [ |
|
99 | - 'class' => $this->getFieldClass(), |
|
100 | - 'field' => glsr(Builder::class)->{$this->field['type']}($this->field), |
|
101 | - 'label' => glsr(Builder::class)->label($this->field['legend'], ['for' => $this->field['id']]), |
|
102 | - ], |
|
103 | - 'field' => $this->field, |
|
104 | - ]); |
|
105 | - } |
|
106 | - |
|
107 | - /** |
|
108 | - * @return string |
|
109 | - */ |
|
110 | - protected function buildSettingMultiField() |
|
111 | - { |
|
112 | - $dependsOn = $this->getFieldDependsOn(); |
|
113 | - unset($this->field['data-depends']); |
|
114 | - return glsr(Template::class)->build('partials/form/table-row-multiple', [ |
|
115 | - 'context' => [ |
|
116 | - 'class' => $this->getFieldClass(), |
|
117 | - 'depends_on' => $dependsOn, |
|
118 | - 'field' => glsr(Builder::class)->{$this->field['type']}($this->field), |
|
119 | - 'label' => glsr(Builder::class)->label($this->field['legend'], ['for' => $this->field['id']]), |
|
120 | - 'legend' => $this->field['legend'], |
|
121 | - ], |
|
122 | - 'field' => $this->field, |
|
123 | - ]); |
|
124 | - } |
|
125 | - |
|
126 | - /** |
|
127 | - * @return string |
|
128 | - */ |
|
129 | - protected function getFieldClass() |
|
130 | - { |
|
131 | - $classes = []; |
|
132 | - if (!empty($this->field['errors'])) { |
|
133 | - $classes[] = 'glsr-has-error'; |
|
134 | - } |
|
135 | - if ($this->field['is_hidden']) { |
|
136 | - $classes[] = 'hidden'; |
|
137 | - } |
|
138 | - if (!empty($this->field['required'])) { |
|
139 | - $classes[] = 'glsr-required'; |
|
140 | - } |
|
141 | - $classes = apply_filters('site-reviews/rendered/field/classes', $classes, $this->field); |
|
142 | - return implode(' ', $classes); |
|
143 | - } |
|
144 | - |
|
145 | - /** |
|
146 | - * @return string |
|
147 | - */ |
|
148 | - protected function getFieldDependsOn() |
|
149 | - { |
|
150 | - return !empty($this->field['data-depends']) |
|
151 | - ? $this->field['data-depends'] |
|
152 | - : ''; |
|
153 | - } |
|
154 | - |
|
155 | - /** |
|
156 | - * @return void|string |
|
157 | - */ |
|
158 | - protected function getFieldErrors() |
|
159 | - { |
|
160 | - if (empty($this->field['errors']) || !is_array($this->field['errors'])) { |
|
161 | - return; |
|
162 | - } |
|
163 | - $errors = array_reduce($this->field['errors'], function ($carry, $error) { |
|
164 | - return $carry.glsr(Builder::class)->span($error, ['class' => 'glsr-field-error']); |
|
165 | - }); |
|
166 | - return glsr(Template::class)->build('templates/form/field-errors', [ |
|
167 | - 'context' => [ |
|
168 | - 'errors' => $errors, |
|
169 | - ], |
|
170 | - 'field' => $this->field, |
|
171 | - ]); |
|
172 | - } |
|
173 | - |
|
174 | - /** |
|
175 | - * @return string |
|
176 | - */ |
|
177 | - protected function getFieldPrefix() |
|
178 | - { |
|
179 | - return $this->field['is_setting'] |
|
180 | - ? OptionManager::databaseKey() |
|
181 | - : Application::ID; |
|
182 | - } |
|
183 | - |
|
184 | - /** |
|
185 | - * @return bool |
|
186 | - */ |
|
187 | - protected function isFieldValid() |
|
188 | - { |
|
189 | - $missingValues = []; |
|
190 | - $requiredValues = [ |
|
191 | - 'name', 'type', |
|
192 | - ]; |
|
193 | - foreach ($requiredValues as $value) { |
|
194 | - if (isset($this->field[$value])) { |
|
195 | - continue; |
|
196 | - } |
|
197 | - $missingValues[] = $value; |
|
198 | - $this->field['is_valid'] = false; |
|
199 | - } |
|
200 | - if (!empty($missingValues)) { |
|
201 | - glsr_log() |
|
202 | - ->warning('Field is missing: '.implode(', ', $missingValues)) |
|
203 | - ->debug($this->field); |
|
204 | - } |
|
205 | - return $this->field['is_valid']; |
|
206 | - } |
|
207 | - |
|
208 | - /** |
|
209 | - * @return void |
|
210 | - */ |
|
211 | - protected function normalize() |
|
212 | - { |
|
213 | - if (!$this->isFieldValid()) { |
|
214 | - return; |
|
215 | - } |
|
216 | - $this->field['path'] = $this->field['name']; |
|
217 | - $className = Helper::buildClassName($this->field['type'], __NAMESPACE__.'\Fields'); |
|
218 | - if (class_exists($className)) { |
|
219 | - $this->field = $className::merge($this->field); |
|
220 | - } |
|
221 | - $this->normalizeFieldId(); |
|
222 | - $this->normalizeFieldName(); |
|
223 | - } |
|
224 | - |
|
225 | - /** |
|
226 | - * @return void |
|
227 | - */ |
|
228 | - protected function normalizeFieldId() |
|
229 | - { |
|
230 | - if (isset($this->field['id']) || $this->field['is_raw']) { |
|
231 | - return; |
|
232 | - } |
|
233 | - $this->field['id'] = Str::convertPathToId( |
|
234 | - $this->field['path'], |
|
235 | - $this->getFieldPrefix() |
|
236 | - ); |
|
237 | - } |
|
238 | - |
|
239 | - /** |
|
240 | - * @return void |
|
241 | - */ |
|
242 | - protected function normalizeFieldName() |
|
243 | - { |
|
244 | - $this->field['name'] = Str::convertPathToName( |
|
245 | - $this->field['path'], |
|
246 | - $this->getFieldPrefix() |
|
247 | - ); |
|
248 | - } |
|
12 | + /** |
|
13 | + * @var array |
|
14 | + */ |
|
15 | + public $field; |
|
16 | + |
|
17 | + public function __construct(array $field = []) |
|
18 | + { |
|
19 | + $this->field = wp_parse_args($field, [ |
|
20 | + 'errors' => false, |
|
21 | + 'is_hidden' => false, |
|
22 | + 'is_multi' => false, |
|
23 | + 'is_public' => false, |
|
24 | + 'is_raw' => false, |
|
25 | + 'is_setting' => false, |
|
26 | + 'is_valid' => true, |
|
27 | + 'is_widget' => false, |
|
28 | + 'path' => '', |
|
29 | + ]); |
|
30 | + $this->normalize(); |
|
31 | + } |
|
32 | + |
|
33 | + /** |
|
34 | + * @return string |
|
35 | + */ |
|
36 | + public function __toString() |
|
37 | + { |
|
38 | + return (string) $this->build(); |
|
39 | + } |
|
40 | + |
|
41 | + /** |
|
42 | + * @return void|string |
|
43 | + */ |
|
44 | + public function build() |
|
45 | + { |
|
46 | + if (!$this->field['is_valid']) { |
|
47 | + return; |
|
48 | + } |
|
49 | + if ($this->field['is_raw']) { |
|
50 | + return glsr(Builder::class)->{$this->field['type']}($this->field); |
|
51 | + } |
|
52 | + if (!$this->field['is_setting']) { |
|
53 | + return $this->buildField(); |
|
54 | + } |
|
55 | + if (!$this->field['is_multi']) { |
|
56 | + return $this->buildSettingField(); |
|
57 | + } |
|
58 | + return $this->buildSettingMultiField(); |
|
59 | + } |
|
60 | + |
|
61 | + /** |
|
62 | + * @return void |
|
63 | + */ |
|
64 | + public function render() |
|
65 | + { |
|
66 | + echo $this->build(); |
|
67 | + } |
|
68 | + |
|
69 | + /** |
|
70 | + * @return string |
|
71 | + */ |
|
72 | + protected function buildField() |
|
73 | + { |
|
74 | + $field = glsr(Template::class)->build('templates/form/field_'.$this->field['type'], [ |
|
75 | + 'context' => [ |
|
76 | + 'class' => $this->getFieldClass(), |
|
77 | + 'errors' => $this->getFieldErrors(), |
|
78 | + 'field' => glsr(Builder::class)->raw($this->field), |
|
79 | + 'label' => glsr(Builder::class)->label([ |
|
80 | + 'class' => 'glsr-'.$this->field['type'].'-label', |
|
81 | + 'for' => $this->field['id'], |
|
82 | + 'is_public' => $this->field['is_public'], |
|
83 | + 'text' => $this->field['label'].'<span></span>', |
|
84 | + 'type' => $this->field['type'], |
|
85 | + ]), |
|
86 | + ], |
|
87 | + 'field' => $this->field, |
|
88 | + ]); |
|
89 | + return apply_filters('site-reviews/rendered/field', $field, $this->field['type'], $this->field); |
|
90 | + } |
|
91 | + |
|
92 | + /** |
|
93 | + * @return string |
|
94 | + */ |
|
95 | + protected function buildSettingField() |
|
96 | + { |
|
97 | + return glsr(Template::class)->build('partials/form/table-row', [ |
|
98 | + 'context' => [ |
|
99 | + 'class' => $this->getFieldClass(), |
|
100 | + 'field' => glsr(Builder::class)->{$this->field['type']}($this->field), |
|
101 | + 'label' => glsr(Builder::class)->label($this->field['legend'], ['for' => $this->field['id']]), |
|
102 | + ], |
|
103 | + 'field' => $this->field, |
|
104 | + ]); |
|
105 | + } |
|
106 | + |
|
107 | + /** |
|
108 | + * @return string |
|
109 | + */ |
|
110 | + protected function buildSettingMultiField() |
|
111 | + { |
|
112 | + $dependsOn = $this->getFieldDependsOn(); |
|
113 | + unset($this->field['data-depends']); |
|
114 | + return glsr(Template::class)->build('partials/form/table-row-multiple', [ |
|
115 | + 'context' => [ |
|
116 | + 'class' => $this->getFieldClass(), |
|
117 | + 'depends_on' => $dependsOn, |
|
118 | + 'field' => glsr(Builder::class)->{$this->field['type']}($this->field), |
|
119 | + 'label' => glsr(Builder::class)->label($this->field['legend'], ['for' => $this->field['id']]), |
|
120 | + 'legend' => $this->field['legend'], |
|
121 | + ], |
|
122 | + 'field' => $this->field, |
|
123 | + ]); |
|
124 | + } |
|
125 | + |
|
126 | + /** |
|
127 | + * @return string |
|
128 | + */ |
|
129 | + protected function getFieldClass() |
|
130 | + { |
|
131 | + $classes = []; |
|
132 | + if (!empty($this->field['errors'])) { |
|
133 | + $classes[] = 'glsr-has-error'; |
|
134 | + } |
|
135 | + if ($this->field['is_hidden']) { |
|
136 | + $classes[] = 'hidden'; |
|
137 | + } |
|
138 | + if (!empty($this->field['required'])) { |
|
139 | + $classes[] = 'glsr-required'; |
|
140 | + } |
|
141 | + $classes = apply_filters('site-reviews/rendered/field/classes', $classes, $this->field); |
|
142 | + return implode(' ', $classes); |
|
143 | + } |
|
144 | + |
|
145 | + /** |
|
146 | + * @return string |
|
147 | + */ |
|
148 | + protected function getFieldDependsOn() |
|
149 | + { |
|
150 | + return !empty($this->field['data-depends']) |
|
151 | + ? $this->field['data-depends'] |
|
152 | + : ''; |
|
153 | + } |
|
154 | + |
|
155 | + /** |
|
156 | + * @return void|string |
|
157 | + */ |
|
158 | + protected function getFieldErrors() |
|
159 | + { |
|
160 | + if (empty($this->field['errors']) || !is_array($this->field['errors'])) { |
|
161 | + return; |
|
162 | + } |
|
163 | + $errors = array_reduce($this->field['errors'], function ($carry, $error) { |
|
164 | + return $carry.glsr(Builder::class)->span($error, ['class' => 'glsr-field-error']); |
|
165 | + }); |
|
166 | + return glsr(Template::class)->build('templates/form/field-errors', [ |
|
167 | + 'context' => [ |
|
168 | + 'errors' => $errors, |
|
169 | + ], |
|
170 | + 'field' => $this->field, |
|
171 | + ]); |
|
172 | + } |
|
173 | + |
|
174 | + /** |
|
175 | + * @return string |
|
176 | + */ |
|
177 | + protected function getFieldPrefix() |
|
178 | + { |
|
179 | + return $this->field['is_setting'] |
|
180 | + ? OptionManager::databaseKey() |
|
181 | + : Application::ID; |
|
182 | + } |
|
183 | + |
|
184 | + /** |
|
185 | + * @return bool |
|
186 | + */ |
|
187 | + protected function isFieldValid() |
|
188 | + { |
|
189 | + $missingValues = []; |
|
190 | + $requiredValues = [ |
|
191 | + 'name', 'type', |
|
192 | + ]; |
|
193 | + foreach ($requiredValues as $value) { |
|
194 | + if (isset($this->field[$value])) { |
|
195 | + continue; |
|
196 | + } |
|
197 | + $missingValues[] = $value; |
|
198 | + $this->field['is_valid'] = false; |
|
199 | + } |
|
200 | + if (!empty($missingValues)) { |
|
201 | + glsr_log() |
|
202 | + ->warning('Field is missing: '.implode(', ', $missingValues)) |
|
203 | + ->debug($this->field); |
|
204 | + } |
|
205 | + return $this->field['is_valid']; |
|
206 | + } |
|
207 | + |
|
208 | + /** |
|
209 | + * @return void |
|
210 | + */ |
|
211 | + protected function normalize() |
|
212 | + { |
|
213 | + if (!$this->isFieldValid()) { |
|
214 | + return; |
|
215 | + } |
|
216 | + $this->field['path'] = $this->field['name']; |
|
217 | + $className = Helper::buildClassName($this->field['type'], __NAMESPACE__.'\Fields'); |
|
218 | + if (class_exists($className)) { |
|
219 | + $this->field = $className::merge($this->field); |
|
220 | + } |
|
221 | + $this->normalizeFieldId(); |
|
222 | + $this->normalizeFieldName(); |
|
223 | + } |
|
224 | + |
|
225 | + /** |
|
226 | + * @return void |
|
227 | + */ |
|
228 | + protected function normalizeFieldId() |
|
229 | + { |
|
230 | + if (isset($this->field['id']) || $this->field['is_raw']) { |
|
231 | + return; |
|
232 | + } |
|
233 | + $this->field['id'] = Str::convertPathToId( |
|
234 | + $this->field['path'], |
|
235 | + $this->getFieldPrefix() |
|
236 | + ); |
|
237 | + } |
|
238 | + |
|
239 | + /** |
|
240 | + * @return void |
|
241 | + */ |
|
242 | + protected function normalizeFieldName() |
|
243 | + { |
|
244 | + $this->field['name'] = Str::convertPathToName( |
|
245 | + $this->field['path'], |
|
246 | + $this->getFieldPrefix() |
|
247 | + ); |
|
248 | + } |
|
249 | 249 | } |
@@ -14,9 +14,9 @@ discard block |
||
14 | 14 | */ |
15 | 15 | public $field; |
16 | 16 | |
17 | - public function __construct(array $field = []) |
|
17 | + public function __construct( array $field = [] ) |
|
18 | 18 | { |
19 | - $this->field = wp_parse_args($field, [ |
|
19 | + $this->field = wp_parse_args( $field, [ |
|
20 | 20 | 'errors' => false, |
21 | 21 | 'is_hidden' => false, |
22 | 22 | 'is_multi' => false, |
@@ -26,7 +26,7 @@ discard block |
||
26 | 26 | 'is_valid' => true, |
27 | 27 | 'is_widget' => false, |
28 | 28 | 'path' => '', |
29 | - ]); |
|
29 | + ] ); |
|
30 | 30 | $this->normalize(); |
31 | 31 | } |
32 | 32 | |
@@ -35,7 +35,7 @@ discard block |
||
35 | 35 | */ |
36 | 36 | public function __toString() |
37 | 37 | { |
38 | - return (string) $this->build(); |
|
38 | + return (string)$this->build(); |
|
39 | 39 | } |
40 | 40 | |
41 | 41 | /** |
@@ -43,16 +43,16 @@ discard block |
||
43 | 43 | */ |
44 | 44 | public function build() |
45 | 45 | { |
46 | - if (!$this->field['is_valid']) { |
|
46 | + if( !$this->field['is_valid'] ) { |
|
47 | 47 | return; |
48 | 48 | } |
49 | - if ($this->field['is_raw']) { |
|
50 | - return glsr(Builder::class)->{$this->field['type']}($this->field); |
|
49 | + if( $this->field['is_raw'] ) { |
|
50 | + return glsr( Builder::class )->{$this->field['type']}($this->field); |
|
51 | 51 | } |
52 | - if (!$this->field['is_setting']) { |
|
52 | + if( !$this->field['is_setting'] ) { |
|
53 | 53 | return $this->buildField(); |
54 | 54 | } |
55 | - if (!$this->field['is_multi']) { |
|
55 | + if( !$this->field['is_multi'] ) { |
|
56 | 56 | return $this->buildSettingField(); |
57 | 57 | } |
58 | 58 | return $this->buildSettingMultiField(); |
@@ -71,22 +71,22 @@ discard block |
||
71 | 71 | */ |
72 | 72 | protected function buildField() |
73 | 73 | { |
74 | - $field = glsr(Template::class)->build('templates/form/field_'.$this->field['type'], [ |
|
74 | + $field = glsr( Template::class )->build( 'templates/form/field_'.$this->field['type'], [ |
|
75 | 75 | 'context' => [ |
76 | 76 | 'class' => $this->getFieldClass(), |
77 | 77 | 'errors' => $this->getFieldErrors(), |
78 | - 'field' => glsr(Builder::class)->raw($this->field), |
|
79 | - 'label' => glsr(Builder::class)->label([ |
|
78 | + 'field' => glsr( Builder::class )->raw( $this->field ), |
|
79 | + 'label' => glsr( Builder::class )->label( [ |
|
80 | 80 | 'class' => 'glsr-'.$this->field['type'].'-label', |
81 | 81 | 'for' => $this->field['id'], |
82 | 82 | 'is_public' => $this->field['is_public'], |
83 | 83 | 'text' => $this->field['label'].'<span></span>', |
84 | 84 | 'type' => $this->field['type'], |
85 | - ]), |
|
85 | + ] ), |
|
86 | 86 | ], |
87 | 87 | 'field' => $this->field, |
88 | - ]); |
|
89 | - return apply_filters('site-reviews/rendered/field', $field, $this->field['type'], $this->field); |
|
88 | + ] ); |
|
89 | + return apply_filters( 'site-reviews/rendered/field', $field, $this->field['type'], $this->field ); |
|
90 | 90 | } |
91 | 91 | |
92 | 92 | /** |
@@ -94,14 +94,14 @@ discard block |
||
94 | 94 | */ |
95 | 95 | protected function buildSettingField() |
96 | 96 | { |
97 | - return glsr(Template::class)->build('partials/form/table-row', [ |
|
97 | + return glsr( Template::class )->build( 'partials/form/table-row', [ |
|
98 | 98 | 'context' => [ |
99 | 99 | 'class' => $this->getFieldClass(), |
100 | - 'field' => glsr(Builder::class)->{$this->field['type']}($this->field), |
|
101 | - 'label' => glsr(Builder::class)->label($this->field['legend'], ['for' => $this->field['id']]), |
|
100 | + 'field' => glsr( Builder::class )->{$this->field['type']}($this->field), |
|
101 | + 'label' => glsr( Builder::class )->label( $this->field['legend'], ['for' => $this->field['id']] ), |
|
102 | 102 | ], |
103 | 103 | 'field' => $this->field, |
104 | - ]); |
|
104 | + ] ); |
|
105 | 105 | } |
106 | 106 | |
107 | 107 | /** |
@@ -111,16 +111,16 @@ discard block |
||
111 | 111 | { |
112 | 112 | $dependsOn = $this->getFieldDependsOn(); |
113 | 113 | unset($this->field['data-depends']); |
114 | - return glsr(Template::class)->build('partials/form/table-row-multiple', [ |
|
114 | + return glsr( Template::class )->build( 'partials/form/table-row-multiple', [ |
|
115 | 115 | 'context' => [ |
116 | 116 | 'class' => $this->getFieldClass(), |
117 | 117 | 'depends_on' => $dependsOn, |
118 | - 'field' => glsr(Builder::class)->{$this->field['type']}($this->field), |
|
119 | - 'label' => glsr(Builder::class)->label($this->field['legend'], ['for' => $this->field['id']]), |
|
118 | + 'field' => glsr( Builder::class )->{$this->field['type']}($this->field), |
|
119 | + 'label' => glsr( Builder::class )->label( $this->field['legend'], ['for' => $this->field['id']] ), |
|
120 | 120 | 'legend' => $this->field['legend'], |
121 | 121 | ], |
122 | 122 | 'field' => $this->field, |
123 | - ]); |
|
123 | + ] ); |
|
124 | 124 | } |
125 | 125 | |
126 | 126 | /** |
@@ -129,17 +129,17 @@ discard block |
||
129 | 129 | protected function getFieldClass() |
130 | 130 | { |
131 | 131 | $classes = []; |
132 | - if (!empty($this->field['errors'])) { |
|
132 | + if( !empty($this->field['errors']) ) { |
|
133 | 133 | $classes[] = 'glsr-has-error'; |
134 | 134 | } |
135 | - if ($this->field['is_hidden']) { |
|
135 | + if( $this->field['is_hidden'] ) { |
|
136 | 136 | $classes[] = 'hidden'; |
137 | 137 | } |
138 | - if (!empty($this->field['required'])) { |
|
138 | + if( !empty($this->field['required']) ) { |
|
139 | 139 | $classes[] = 'glsr-required'; |
140 | 140 | } |
141 | - $classes = apply_filters('site-reviews/rendered/field/classes', $classes, $this->field); |
|
142 | - return implode(' ', $classes); |
|
141 | + $classes = apply_filters( 'site-reviews/rendered/field/classes', $classes, $this->field ); |
|
142 | + return implode( ' ', $classes ); |
|
143 | 143 | } |
144 | 144 | |
145 | 145 | /** |
@@ -157,18 +157,18 @@ discard block |
||
157 | 157 | */ |
158 | 158 | protected function getFieldErrors() |
159 | 159 | { |
160 | - if (empty($this->field['errors']) || !is_array($this->field['errors'])) { |
|
160 | + if( empty($this->field['errors']) || !is_array( $this->field['errors'] ) ) { |
|
161 | 161 | return; |
162 | 162 | } |
163 | - $errors = array_reduce($this->field['errors'], function ($carry, $error) { |
|
164 | - return $carry.glsr(Builder::class)->span($error, ['class' => 'glsr-field-error']); |
|
163 | + $errors = array_reduce( $this->field['errors'], function( $carry, $error ) { |
|
164 | + return $carry.glsr( Builder::class )->span( $error, ['class' => 'glsr-field-error'] ); |
|
165 | 165 | }); |
166 | - return glsr(Template::class)->build('templates/form/field-errors', [ |
|
166 | + return glsr( Template::class )->build( 'templates/form/field-errors', [ |
|
167 | 167 | 'context' => [ |
168 | 168 | 'errors' => $errors, |
169 | 169 | ], |
170 | 170 | 'field' => $this->field, |
171 | - ]); |
|
171 | + ] ); |
|
172 | 172 | } |
173 | 173 | |
174 | 174 | /** |
@@ -190,17 +190,17 @@ discard block |
||
190 | 190 | $requiredValues = [ |
191 | 191 | 'name', 'type', |
192 | 192 | ]; |
193 | - foreach ($requiredValues as $value) { |
|
194 | - if (isset($this->field[$value])) { |
|
193 | + foreach( $requiredValues as $value ) { |
|
194 | + if( isset($this->field[$value]) ) { |
|
195 | 195 | continue; |
196 | 196 | } |
197 | 197 | $missingValues[] = $value; |
198 | 198 | $this->field['is_valid'] = false; |
199 | 199 | } |
200 | - if (!empty($missingValues)) { |
|
200 | + if( !empty($missingValues) ) { |
|
201 | 201 | glsr_log() |
202 | - ->warning('Field is missing: '.implode(', ', $missingValues)) |
|
203 | - ->debug($this->field); |
|
202 | + ->warning( 'Field is missing: '.implode( ', ', $missingValues ) ) |
|
203 | + ->debug( $this->field ); |
|
204 | 204 | } |
205 | 205 | return $this->field['is_valid']; |
206 | 206 | } |
@@ -210,13 +210,13 @@ discard block |
||
210 | 210 | */ |
211 | 211 | protected function normalize() |
212 | 212 | { |
213 | - if (!$this->isFieldValid()) { |
|
213 | + if( !$this->isFieldValid() ) { |
|
214 | 214 | return; |
215 | 215 | } |
216 | 216 | $this->field['path'] = $this->field['name']; |
217 | - $className = Helper::buildClassName($this->field['type'], __NAMESPACE__.'\Fields'); |
|
218 | - if (class_exists($className)) { |
|
219 | - $this->field = $className::merge($this->field); |
|
217 | + $className = Helper::buildClassName( $this->field['type'], __NAMESPACE__.'\Fields' ); |
|
218 | + if( class_exists( $className ) ) { |
|
219 | + $this->field = $className::merge( $this->field ); |
|
220 | 220 | } |
221 | 221 | $this->normalizeFieldId(); |
222 | 222 | $this->normalizeFieldName(); |
@@ -227,7 +227,7 @@ discard block |
||
227 | 227 | */ |
228 | 228 | protected function normalizeFieldId() |
229 | 229 | { |
230 | - if (isset($this->field['id']) || $this->field['is_raw']) { |
|
230 | + if( isset($this->field['id']) || $this->field['is_raw'] ) { |
|
231 | 231 | return; |
232 | 232 | } |
233 | 233 | $this->field['id'] = Str::convertPathToId( |
@@ -6,285 +6,285 @@ |
||
6 | 6 | |
7 | 7 | class Attributes |
8 | 8 | { |
9 | - const ATTRIBUTES_A = [ |
|
10 | - 'download', 'href', 'hreflang', 'ping', 'referrerpolicy', 'rel', 'target', 'type', |
|
11 | - ]; |
|
9 | + const ATTRIBUTES_A = [ |
|
10 | + 'download', 'href', 'hreflang', 'ping', 'referrerpolicy', 'rel', 'target', 'type', |
|
11 | + ]; |
|
12 | 12 | |
13 | - const ATTRIBUTES_BUTTON = [ |
|
14 | - 'autofocus', 'disabled', 'form', 'formaction', 'formenctype', 'formmethod', |
|
15 | - 'formnovalidate', 'formtarget', 'name', 'type', 'value', |
|
16 | - ]; |
|
13 | + const ATTRIBUTES_BUTTON = [ |
|
14 | + 'autofocus', 'disabled', 'form', 'formaction', 'formenctype', 'formmethod', |
|
15 | + 'formnovalidate', 'formtarget', 'name', 'type', 'value', |
|
16 | + ]; |
|
17 | 17 | |
18 | - const ATTRIBUTES_FORM = [ |
|
19 | - 'accept', 'accept-charset', 'action', 'autocapitalize', 'autocomplete', 'enctype', 'method', |
|
20 | - 'name', 'novalidate', 'target', |
|
21 | - ]; |
|
18 | + const ATTRIBUTES_FORM = [ |
|
19 | + 'accept', 'accept-charset', 'action', 'autocapitalize', 'autocomplete', 'enctype', 'method', |
|
20 | + 'name', 'novalidate', 'target', |
|
21 | + ]; |
|
22 | 22 | |
23 | - const ATTRIBUTES_IMG = [ |
|
24 | - 'alt', 'crossorigin', 'decoding', 'height', 'ismap', 'referrerpolicy', 'sizes', 'src', |
|
25 | - 'srcset', 'width', 'usemap', |
|
26 | - ]; |
|
23 | + const ATTRIBUTES_IMG = [ |
|
24 | + 'alt', 'crossorigin', 'decoding', 'height', 'ismap', 'referrerpolicy', 'sizes', 'src', |
|
25 | + 'srcset', 'width', 'usemap', |
|
26 | + ]; |
|
27 | 27 | |
28 | - const ATTRIBUTES_INPUT = [ |
|
29 | - 'accept', 'autocomplete', 'autocorrect', 'autofocus', 'capture', 'checked', 'disabled', |
|
30 | - 'form', 'formaction', 'formenctype', 'formmethod', 'formnovalidate', 'formtarget', 'height', |
|
31 | - 'incremental', 'inputmode', 'list', 'max', 'maxlength', 'min', 'minlength', 'multiple', |
|
32 | - 'name', 'pattern', 'placeholder', 'readonly', 'results', 'required', 'selectionDirection', |
|
33 | - 'selectionEnd', 'selectionStart', 'size', 'spellcheck', 'src', 'step', 'tabindex', 'type', |
|
34 | - 'value', 'webkitdirectory', 'width', |
|
35 | - ]; |
|
28 | + const ATTRIBUTES_INPUT = [ |
|
29 | + 'accept', 'autocomplete', 'autocorrect', 'autofocus', 'capture', 'checked', 'disabled', |
|
30 | + 'form', 'formaction', 'formenctype', 'formmethod', 'formnovalidate', 'formtarget', 'height', |
|
31 | + 'incremental', 'inputmode', 'list', 'max', 'maxlength', 'min', 'minlength', 'multiple', |
|
32 | + 'name', 'pattern', 'placeholder', 'readonly', 'results', 'required', 'selectionDirection', |
|
33 | + 'selectionEnd', 'selectionStart', 'size', 'spellcheck', 'src', 'step', 'tabindex', 'type', |
|
34 | + 'value', 'webkitdirectory', 'width', |
|
35 | + ]; |
|
36 | 36 | |
37 | - const ATTRIBUTES_LABEL = [ |
|
38 | - 'for', |
|
39 | - ]; |
|
37 | + const ATTRIBUTES_LABEL = [ |
|
38 | + 'for', |
|
39 | + ]; |
|
40 | 40 | |
41 | - const ATTRIBUTES_OPTION = [ |
|
42 | - 'disabled', 'label', 'selected', 'value', |
|
43 | - ]; |
|
41 | + const ATTRIBUTES_OPTION = [ |
|
42 | + 'disabled', 'label', 'selected', 'value', |
|
43 | + ]; |
|
44 | 44 | |
45 | - const ATTRIBUTES_SELECT = [ |
|
46 | - 'autofocus', 'disabled', 'form', 'multiple', 'name', 'required', 'size', |
|
47 | - ]; |
|
45 | + const ATTRIBUTES_SELECT = [ |
|
46 | + 'autofocus', 'disabled', 'form', 'multiple', 'name', 'required', 'size', |
|
47 | + ]; |
|
48 | 48 | |
49 | - const ATTRIBUTES_TEXTAREA = [ |
|
50 | - 'autocapitalize', 'autocomplete', 'autofocus', 'cols', 'disabled', 'form', 'maxlength', |
|
51 | - 'minlength', 'name', 'placeholder', 'readonly', 'required', 'rows', 'spellcheck', 'wrap', |
|
52 | - ]; |
|
49 | + const ATTRIBUTES_TEXTAREA = [ |
|
50 | + 'autocapitalize', 'autocomplete', 'autofocus', 'cols', 'disabled', 'form', 'maxlength', |
|
51 | + 'minlength', 'name', 'placeholder', 'readonly', 'required', 'rows', 'spellcheck', 'wrap', |
|
52 | + ]; |
|
53 | 53 | |
54 | - const BOOLEAN_ATTRIBUTES = [ |
|
55 | - 'autofocus', 'capture', 'checked', 'disabled', 'draggable', 'formnovalidate', 'hidden', |
|
56 | - 'multiple', 'novalidate', 'readonly', 'required', 'selected', 'spellcheck', |
|
57 | - 'webkitdirectory', |
|
58 | - ]; |
|
54 | + const BOOLEAN_ATTRIBUTES = [ |
|
55 | + 'autofocus', 'capture', 'checked', 'disabled', 'draggable', 'formnovalidate', 'hidden', |
|
56 | + 'multiple', 'novalidate', 'readonly', 'required', 'selected', 'spellcheck', |
|
57 | + 'webkitdirectory', |
|
58 | + ]; |
|
59 | 59 | |
60 | - const GLOBAL_ATTRIBUTES = [ |
|
61 | - 'accesskey', 'class', 'contenteditable', 'contextmenu', 'dir', 'draggable', 'dropzone', |
|
62 | - 'hidden', 'id', 'lang', 'spellcheck', 'style', 'tabindex', 'title', |
|
63 | - ]; |
|
60 | + const GLOBAL_ATTRIBUTES = [ |
|
61 | + 'accesskey', 'class', 'contenteditable', 'contextmenu', 'dir', 'draggable', 'dropzone', |
|
62 | + 'hidden', 'id', 'lang', 'spellcheck', 'style', 'tabindex', 'title', |
|
63 | + ]; |
|
64 | 64 | |
65 | - const GLOBAL_WILDCARD_ATTRIBUTES = [ |
|
66 | - 'aria-', 'data-', 'item', 'on', |
|
67 | - ]; |
|
65 | + const GLOBAL_WILDCARD_ATTRIBUTES = [ |
|
66 | + 'aria-', 'data-', 'item', 'on', |
|
67 | + ]; |
|
68 | 68 | |
69 | - const INPUT_TYPES = [ |
|
70 | - 'button', 'checkbox', 'color', 'date', 'datetime-local', 'email', 'file', 'hidden', 'image', |
|
71 | - 'month', 'number', 'password', 'radio', 'range', 'reset', 'search', 'submit', 'tel', 'text', |
|
72 | - 'time', 'url', 'week', |
|
73 | - ]; |
|
69 | + const INPUT_TYPES = [ |
|
70 | + 'button', 'checkbox', 'color', 'date', 'datetime-local', 'email', 'file', 'hidden', 'image', |
|
71 | + 'month', 'number', 'password', 'radio', 'range', 'reset', 'search', 'submit', 'tel', 'text', |
|
72 | + 'time', 'url', 'week', |
|
73 | + ]; |
|
74 | 74 | |
75 | - /** |
|
76 | - * @var array |
|
77 | - */ |
|
78 | - protected $attributes = []; |
|
75 | + /** |
|
76 | + * @var array |
|
77 | + */ |
|
78 | + protected $attributes = []; |
|
79 | 79 | |
80 | - /** |
|
81 | - * @param string $method |
|
82 | - * @param array $args |
|
83 | - * @return static |
|
84 | - */ |
|
85 | - public function __call($method, $args) |
|
86 | - { |
|
87 | - $args += [[], false]; |
|
88 | - $constant = 'static::ATTRIBUTES_'.strtoupper($method); |
|
89 | - $allowedAttributeKeys = defined($constant) |
|
90 | - ? constant($constant) |
|
91 | - : []; |
|
92 | - $this->normalize((array) $args[0], $allowedAttributeKeys); |
|
93 | - $this->normalizeInputType($method); |
|
94 | - return $this; |
|
95 | - } |
|
80 | + /** |
|
81 | + * @param string $method |
|
82 | + * @param array $args |
|
83 | + * @return static |
|
84 | + */ |
|
85 | + public function __call($method, $args) |
|
86 | + { |
|
87 | + $args += [[], false]; |
|
88 | + $constant = 'static::ATTRIBUTES_'.strtoupper($method); |
|
89 | + $allowedAttributeKeys = defined($constant) |
|
90 | + ? constant($constant) |
|
91 | + : []; |
|
92 | + $this->normalize((array) $args[0], $allowedAttributeKeys); |
|
93 | + $this->normalizeInputType($method); |
|
94 | + return $this; |
|
95 | + } |
|
96 | 96 | |
97 | - /** |
|
98 | - * @return array |
|
99 | - */ |
|
100 | - public function toArray() |
|
101 | - { |
|
102 | - return $this->attributes; |
|
103 | - } |
|
97 | + /** |
|
98 | + * @return array |
|
99 | + */ |
|
100 | + public function toArray() |
|
101 | + { |
|
102 | + return $this->attributes; |
|
103 | + } |
|
104 | 104 | |
105 | - /** |
|
106 | - * @return string |
|
107 | - */ |
|
108 | - public function toString() |
|
109 | - { |
|
110 | - $attributes = []; |
|
111 | - foreach ($this->attributes as $attribute => $value) { |
|
112 | - $quote = $this->getQuoteChar($attribute); |
|
113 | - $attributes[] = in_array($attribute, static::BOOLEAN_ATTRIBUTES) |
|
114 | - ? $attribute |
|
115 | - : $attribute.'='.$quote.implode(',', (array) $value).$quote; |
|
116 | - } |
|
117 | - return implode(' ', $attributes); |
|
118 | - } |
|
105 | + /** |
|
106 | + * @return string |
|
107 | + */ |
|
108 | + public function toString() |
|
109 | + { |
|
110 | + $attributes = []; |
|
111 | + foreach ($this->attributes as $attribute => $value) { |
|
112 | + $quote = $this->getQuoteChar($attribute); |
|
113 | + $attributes[] = in_array($attribute, static::BOOLEAN_ATTRIBUTES) |
|
114 | + ? $attribute |
|
115 | + : $attribute.'='.$quote.implode(',', (array) $value).$quote; |
|
116 | + } |
|
117 | + return implode(' ', $attributes); |
|
118 | + } |
|
119 | 119 | |
120 | - /** |
|
121 | - * @return array |
|
122 | - */ |
|
123 | - protected function filterAttributes(array $allowedAttributeKeys) |
|
124 | - { |
|
125 | - return array_intersect_key($this->attributes, array_flip($allowedAttributeKeys)); |
|
126 | - } |
|
120 | + /** |
|
121 | + * @return array |
|
122 | + */ |
|
123 | + protected function filterAttributes(array $allowedAttributeKeys) |
|
124 | + { |
|
125 | + return array_intersect_key($this->attributes, array_flip($allowedAttributeKeys)); |
|
126 | + } |
|
127 | 127 | |
128 | - /** |
|
129 | - * @return array |
|
130 | - */ |
|
131 | - protected function filterGlobalAttributes() |
|
132 | - { |
|
133 | - $globalAttributes = $this->filterAttributes(static::GLOBAL_ATTRIBUTES); |
|
134 | - $wildcards = []; |
|
135 | - foreach (static::GLOBAL_WILDCARD_ATTRIBUTES as $wildcard) { |
|
136 | - $newWildcards = array_filter($this->attributes, function ($key) use ($wildcard) { |
|
137 | - return Str::startsWith($wildcard, $key); |
|
138 | - }, ARRAY_FILTER_USE_KEY); |
|
139 | - $wildcards = array_merge($wildcards, $newWildcards); |
|
140 | - } |
|
141 | - return array_merge($globalAttributes, $wildcards); |
|
142 | - } |
|
128 | + /** |
|
129 | + * @return array |
|
130 | + */ |
|
131 | + protected function filterGlobalAttributes() |
|
132 | + { |
|
133 | + $globalAttributes = $this->filterAttributes(static::GLOBAL_ATTRIBUTES); |
|
134 | + $wildcards = []; |
|
135 | + foreach (static::GLOBAL_WILDCARD_ATTRIBUTES as $wildcard) { |
|
136 | + $newWildcards = array_filter($this->attributes, function ($key) use ($wildcard) { |
|
137 | + return Str::startsWith($wildcard, $key); |
|
138 | + }, ARRAY_FILTER_USE_KEY); |
|
139 | + $wildcards = array_merge($wildcards, $newWildcards); |
|
140 | + } |
|
141 | + return array_merge($globalAttributes, $wildcards); |
|
142 | + } |
|
143 | 143 | |
144 | - /** |
|
145 | - * @return array |
|
146 | - */ |
|
147 | - protected function getPermanentAttributes() |
|
148 | - { |
|
149 | - $permanentAttributes = []; |
|
150 | - if (array_key_exists('value', $this->attributes)) { |
|
151 | - $permanentAttributes['value'] = $this->attributes['value']; |
|
152 | - } |
|
153 | - return $permanentAttributes; |
|
154 | - } |
|
144 | + /** |
|
145 | + * @return array |
|
146 | + */ |
|
147 | + protected function getPermanentAttributes() |
|
148 | + { |
|
149 | + $permanentAttributes = []; |
|
150 | + if (array_key_exists('value', $this->attributes)) { |
|
151 | + $permanentAttributes['value'] = $this->attributes['value']; |
|
152 | + } |
|
153 | + return $permanentAttributes; |
|
154 | + } |
|
155 | 155 | |
156 | - /** |
|
157 | - * @param string $attribute |
|
158 | - * @return string |
|
159 | - */ |
|
160 | - protected function getQuoteChar($attribute) |
|
161 | - { |
|
162 | - return Str::startsWith('data-', $attribute) |
|
163 | - ? '\'' |
|
164 | - : '"'; |
|
165 | - } |
|
156 | + /** |
|
157 | + * @param string $attribute |
|
158 | + * @return string |
|
159 | + */ |
|
160 | + protected function getQuoteChar($attribute) |
|
161 | + { |
|
162 | + return Str::startsWith('data-', $attribute) |
|
163 | + ? '\'' |
|
164 | + : '"'; |
|
165 | + } |
|
166 | 166 | |
167 | - /** |
|
168 | - * @param string $key |
|
169 | - * @param mixed $value |
|
170 | - * @return bool |
|
171 | - */ |
|
172 | - protected function isAttributeKeyNumeric($key, $value) |
|
173 | - { |
|
174 | - return is_string($value) |
|
175 | - && is_numeric($key) |
|
176 | - && !array_key_exists($value, $this->attributes); |
|
177 | - } |
|
167 | + /** |
|
168 | + * @param string $key |
|
169 | + * @param mixed $value |
|
170 | + * @return bool |
|
171 | + */ |
|
172 | + protected function isAttributeKeyNumeric($key, $value) |
|
173 | + { |
|
174 | + return is_string($value) |
|
175 | + && is_numeric($key) |
|
176 | + && !array_key_exists($value, $this->attributes); |
|
177 | + } |
|
178 | 178 | |
179 | - /** |
|
180 | - * @return void |
|
181 | - */ |
|
182 | - protected function normalize(array $args, array $allowedAttributeKeys) |
|
183 | - { |
|
184 | - $this->attributes = array_change_key_case($args, CASE_LOWER); |
|
185 | - $this->normalizeBooleanAttributes(); |
|
186 | - $this->normalizeDataAttributes(); |
|
187 | - $this->normalizeStringAttributes(); |
|
188 | - $this->removeEmptyAttributes(); |
|
189 | - $this->removeIndexedAttributes(); |
|
190 | - $this->attributes = array_merge( |
|
191 | - $this->filterGlobalAttributes(), |
|
192 | - $this->filterAttributes($allowedAttributeKeys) |
|
193 | - ); |
|
194 | - } |
|
179 | + /** |
|
180 | + * @return void |
|
181 | + */ |
|
182 | + protected function normalize(array $args, array $allowedAttributeKeys) |
|
183 | + { |
|
184 | + $this->attributes = array_change_key_case($args, CASE_LOWER); |
|
185 | + $this->normalizeBooleanAttributes(); |
|
186 | + $this->normalizeDataAttributes(); |
|
187 | + $this->normalizeStringAttributes(); |
|
188 | + $this->removeEmptyAttributes(); |
|
189 | + $this->removeIndexedAttributes(); |
|
190 | + $this->attributes = array_merge( |
|
191 | + $this->filterGlobalAttributes(), |
|
192 | + $this->filterAttributes($allowedAttributeKeys) |
|
193 | + ); |
|
194 | + } |
|
195 | 195 | |
196 | - /** |
|
197 | - * @return void |
|
198 | - */ |
|
199 | - protected function normalizeBooleanAttributes() |
|
200 | - { |
|
201 | - foreach ($this->attributes as $key => $value) { |
|
202 | - if ($this->isAttributeKeyNumeric($key, $value)) { |
|
203 | - $key = $value; |
|
204 | - $value = true; |
|
205 | - } |
|
206 | - if (!in_array($key, static::BOOLEAN_ATTRIBUTES)) { |
|
207 | - continue; |
|
208 | - } |
|
209 | - $this->attributes[$key] = wp_validate_boolean($value); |
|
210 | - } |
|
211 | - } |
|
196 | + /** |
|
197 | + * @return void |
|
198 | + */ |
|
199 | + protected function normalizeBooleanAttributes() |
|
200 | + { |
|
201 | + foreach ($this->attributes as $key => $value) { |
|
202 | + if ($this->isAttributeKeyNumeric($key, $value)) { |
|
203 | + $key = $value; |
|
204 | + $value = true; |
|
205 | + } |
|
206 | + if (!in_array($key, static::BOOLEAN_ATTRIBUTES)) { |
|
207 | + continue; |
|
208 | + } |
|
209 | + $this->attributes[$key] = wp_validate_boolean($value); |
|
210 | + } |
|
211 | + } |
|
212 | 212 | |
213 | - /** |
|
214 | - * @return void |
|
215 | - */ |
|
216 | - protected function normalizeDataAttributes() |
|
217 | - { |
|
218 | - foreach ($this->attributes as $key => $value) { |
|
219 | - if ($this->isAttributeKeyNumeric($key, $value)) { |
|
220 | - $key = $value; |
|
221 | - $value = ''; |
|
222 | - } |
|
223 | - if (!Str::startsWith('data-', $key)) { |
|
224 | - continue; |
|
225 | - } |
|
226 | - if (is_array($value)) { |
|
227 | - $value = json_encode($value, JSON_HEX_APOS | JSON_NUMERIC_CHECK | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); |
|
228 | - } |
|
229 | - $this->attributes[$key] = $value; |
|
230 | - } |
|
231 | - } |
|
213 | + /** |
|
214 | + * @return void |
|
215 | + */ |
|
216 | + protected function normalizeDataAttributes() |
|
217 | + { |
|
218 | + foreach ($this->attributes as $key => $value) { |
|
219 | + if ($this->isAttributeKeyNumeric($key, $value)) { |
|
220 | + $key = $value; |
|
221 | + $value = ''; |
|
222 | + } |
|
223 | + if (!Str::startsWith('data-', $key)) { |
|
224 | + continue; |
|
225 | + } |
|
226 | + if (is_array($value)) { |
|
227 | + $value = json_encode($value, JSON_HEX_APOS | JSON_NUMERIC_CHECK | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); |
|
228 | + } |
|
229 | + $this->attributes[$key] = $value; |
|
230 | + } |
|
231 | + } |
|
232 | 232 | |
233 | - /** |
|
234 | - * @return void |
|
235 | - */ |
|
236 | - protected function normalizeStringAttributes() |
|
237 | - { |
|
238 | - foreach ($this->attributes as $key => $value) { |
|
239 | - if (!is_string($value)) { |
|
240 | - continue; |
|
241 | - } |
|
242 | - $this->attributes[$key] = trim($value); |
|
243 | - } |
|
244 | - } |
|
233 | + /** |
|
234 | + * @return void |
|
235 | + */ |
|
236 | + protected function normalizeStringAttributes() |
|
237 | + { |
|
238 | + foreach ($this->attributes as $key => $value) { |
|
239 | + if (!is_string($value)) { |
|
240 | + continue; |
|
241 | + } |
|
242 | + $this->attributes[$key] = trim($value); |
|
243 | + } |
|
244 | + } |
|
245 | 245 | |
246 | - /** |
|
247 | - * @param string $method |
|
248 | - * @return void |
|
249 | - */ |
|
250 | - protected function normalizeInputType($method) |
|
251 | - { |
|
252 | - if ('input' != $method) { |
|
253 | - return; |
|
254 | - } |
|
255 | - $attributes = wp_parse_args($this->attributes, ['type' => '']); |
|
256 | - if (!in_array($attributes['type'], static::INPUT_TYPES)) { |
|
257 | - $this->attributes['type'] = 'text'; |
|
258 | - } |
|
259 | - } |
|
246 | + /** |
|
247 | + * @param string $method |
|
248 | + * @return void |
|
249 | + */ |
|
250 | + protected function normalizeInputType($method) |
|
251 | + { |
|
252 | + if ('input' != $method) { |
|
253 | + return; |
|
254 | + } |
|
255 | + $attributes = wp_parse_args($this->attributes, ['type' => '']); |
|
256 | + if (!in_array($attributes['type'], static::INPUT_TYPES)) { |
|
257 | + $this->attributes['type'] = 'text'; |
|
258 | + } |
|
259 | + } |
|
260 | 260 | |
261 | - /** |
|
262 | - * @return void |
|
263 | - */ |
|
264 | - protected function removeEmptyAttributes() |
|
265 | - { |
|
266 | - $attributes = $this->attributes; |
|
267 | - $permanentAttributes = $this->getPermanentAttributes(); |
|
268 | - foreach ($this->attributes as $key => $value) { |
|
269 | - if (in_array($key, static::BOOLEAN_ATTRIBUTES) && !$value) { |
|
270 | - unset($attributes[$key]); |
|
271 | - } |
|
272 | - if (Str::startsWith('data-', $key)) { |
|
273 | - $permanentAttributes[$key] = $value; |
|
274 | - unset($attributes[$key]); |
|
275 | - } |
|
276 | - } |
|
277 | - $this->attributes = array_merge(array_filter($attributes), $permanentAttributes); |
|
278 | - } |
|
261 | + /** |
|
262 | + * @return void |
|
263 | + */ |
|
264 | + protected function removeEmptyAttributes() |
|
265 | + { |
|
266 | + $attributes = $this->attributes; |
|
267 | + $permanentAttributes = $this->getPermanentAttributes(); |
|
268 | + foreach ($this->attributes as $key => $value) { |
|
269 | + if (in_array($key, static::BOOLEAN_ATTRIBUTES) && !$value) { |
|
270 | + unset($attributes[$key]); |
|
271 | + } |
|
272 | + if (Str::startsWith('data-', $key)) { |
|
273 | + $permanentAttributes[$key] = $value; |
|
274 | + unset($attributes[$key]); |
|
275 | + } |
|
276 | + } |
|
277 | + $this->attributes = array_merge(array_filter($attributes), $permanentAttributes); |
|
278 | + } |
|
279 | 279 | |
280 | - /** |
|
281 | - * @return void |
|
282 | - */ |
|
283 | - protected function removeIndexedAttributes() |
|
284 | - { |
|
285 | - $this->attributes = array_diff_key( |
|
286 | - $this->attributes, |
|
287 | - array_filter($this->attributes, 'is_numeric', ARRAY_FILTER_USE_KEY) |
|
288 | - ); |
|
289 | - } |
|
280 | + /** |
|
281 | + * @return void |
|
282 | + */ |
|
283 | + protected function removeIndexedAttributes() |
|
284 | + { |
|
285 | + $this->attributes = array_diff_key( |
|
286 | + $this->attributes, |
|
287 | + array_filter($this->attributes, 'is_numeric', ARRAY_FILTER_USE_KEY) |
|
288 | + ); |
|
289 | + } |
|
290 | 290 | } |
@@ -82,15 +82,15 @@ discard block |
||
82 | 82 | * @param array $args |
83 | 83 | * @return static |
84 | 84 | */ |
85 | - public function __call($method, $args) |
|
85 | + public function __call( $method, $args ) |
|
86 | 86 | { |
87 | 87 | $args += [[], false]; |
88 | - $constant = 'static::ATTRIBUTES_'.strtoupper($method); |
|
89 | - $allowedAttributeKeys = defined($constant) |
|
90 | - ? constant($constant) |
|
88 | + $constant = 'static::ATTRIBUTES_'.strtoupper( $method ); |
|
89 | + $allowedAttributeKeys = defined( $constant ) |
|
90 | + ? constant( $constant ) |
|
91 | 91 | : []; |
92 | - $this->normalize((array) $args[0], $allowedAttributeKeys); |
|
93 | - $this->normalizeInputType($method); |
|
92 | + $this->normalize( (array)$args[0], $allowedAttributeKeys ); |
|
93 | + $this->normalizeInputType( $method ); |
|
94 | 94 | return $this; |
95 | 95 | } |
96 | 96 | |
@@ -108,21 +108,21 @@ discard block |
||
108 | 108 | public function toString() |
109 | 109 | { |
110 | 110 | $attributes = []; |
111 | - foreach ($this->attributes as $attribute => $value) { |
|
112 | - $quote = $this->getQuoteChar($attribute); |
|
113 | - $attributes[] = in_array($attribute, static::BOOLEAN_ATTRIBUTES) |
|
111 | + foreach( $this->attributes as $attribute => $value ) { |
|
112 | + $quote = $this->getQuoteChar( $attribute ); |
|
113 | + $attributes[] = in_array( $attribute, static::BOOLEAN_ATTRIBUTES ) |
|
114 | 114 | ? $attribute |
115 | - : $attribute.'='.$quote.implode(',', (array) $value).$quote; |
|
115 | + : $attribute.'='.$quote.implode( ',', (array)$value ).$quote; |
|
116 | 116 | } |
117 | - return implode(' ', $attributes); |
|
117 | + return implode( ' ', $attributes ); |
|
118 | 118 | } |
119 | 119 | |
120 | 120 | /** |
121 | 121 | * @return array |
122 | 122 | */ |
123 | - protected function filterAttributes(array $allowedAttributeKeys) |
|
123 | + protected function filterAttributes( array $allowedAttributeKeys ) |
|
124 | 124 | { |
125 | - return array_intersect_key($this->attributes, array_flip($allowedAttributeKeys)); |
|
125 | + return array_intersect_key( $this->attributes, array_flip( $allowedAttributeKeys ) ); |
|
126 | 126 | } |
127 | 127 | |
128 | 128 | /** |
@@ -130,15 +130,15 @@ discard block |
||
130 | 130 | */ |
131 | 131 | protected function filterGlobalAttributes() |
132 | 132 | { |
133 | - $globalAttributes = $this->filterAttributes(static::GLOBAL_ATTRIBUTES); |
|
133 | + $globalAttributes = $this->filterAttributes( static::GLOBAL_ATTRIBUTES ); |
|
134 | 134 | $wildcards = []; |
135 | - foreach (static::GLOBAL_WILDCARD_ATTRIBUTES as $wildcard) { |
|
136 | - $newWildcards = array_filter($this->attributes, function ($key) use ($wildcard) { |
|
137 | - return Str::startsWith($wildcard, $key); |
|
138 | - }, ARRAY_FILTER_USE_KEY); |
|
139 | - $wildcards = array_merge($wildcards, $newWildcards); |
|
135 | + foreach( static::GLOBAL_WILDCARD_ATTRIBUTES as $wildcard ) { |
|
136 | + $newWildcards = array_filter( $this->attributes, function( $key ) use ($wildcard) { |
|
137 | + return Str::startsWith( $wildcard, $key ); |
|
138 | + }, ARRAY_FILTER_USE_KEY ); |
|
139 | + $wildcards = array_merge( $wildcards, $newWildcards ); |
|
140 | 140 | } |
141 | - return array_merge($globalAttributes, $wildcards); |
|
141 | + return array_merge( $globalAttributes, $wildcards ); |
|
142 | 142 | } |
143 | 143 | |
144 | 144 | /** |
@@ -147,7 +147,7 @@ discard block |
||
147 | 147 | protected function getPermanentAttributes() |
148 | 148 | { |
149 | 149 | $permanentAttributes = []; |
150 | - if (array_key_exists('value', $this->attributes)) { |
|
150 | + if( array_key_exists( 'value', $this->attributes ) ) { |
|
151 | 151 | $permanentAttributes['value'] = $this->attributes['value']; |
152 | 152 | } |
153 | 153 | return $permanentAttributes; |
@@ -157,9 +157,9 @@ discard block |
||
157 | 157 | * @param string $attribute |
158 | 158 | * @return string |
159 | 159 | */ |
160 | - protected function getQuoteChar($attribute) |
|
160 | + protected function getQuoteChar( $attribute ) |
|
161 | 161 | { |
162 | - return Str::startsWith('data-', $attribute) |
|
162 | + return Str::startsWith( 'data-', $attribute ) |
|
163 | 163 | ? '\'' |
164 | 164 | : '"'; |
165 | 165 | } |
@@ -169,19 +169,19 @@ discard block |
||
169 | 169 | * @param mixed $value |
170 | 170 | * @return bool |
171 | 171 | */ |
172 | - protected function isAttributeKeyNumeric($key, $value) |
|
172 | + protected function isAttributeKeyNumeric( $key, $value ) |
|
173 | 173 | { |
174 | - return is_string($value) |
|
175 | - && is_numeric($key) |
|
176 | - && !array_key_exists($value, $this->attributes); |
|
174 | + return is_string( $value ) |
|
175 | + && is_numeric( $key ) |
|
176 | + && !array_key_exists( $value, $this->attributes ); |
|
177 | 177 | } |
178 | 178 | |
179 | 179 | /** |
180 | 180 | * @return void |
181 | 181 | */ |
182 | - protected function normalize(array $args, array $allowedAttributeKeys) |
|
182 | + protected function normalize( array $args, array $allowedAttributeKeys ) |
|
183 | 183 | { |
184 | - $this->attributes = array_change_key_case($args, CASE_LOWER); |
|
184 | + $this->attributes = array_change_key_case( $args, CASE_LOWER ); |
|
185 | 185 | $this->normalizeBooleanAttributes(); |
186 | 186 | $this->normalizeDataAttributes(); |
187 | 187 | $this->normalizeStringAttributes(); |
@@ -189,7 +189,7 @@ discard block |
||
189 | 189 | $this->removeIndexedAttributes(); |
190 | 190 | $this->attributes = array_merge( |
191 | 191 | $this->filterGlobalAttributes(), |
192 | - $this->filterAttributes($allowedAttributeKeys) |
|
192 | + $this->filterAttributes( $allowedAttributeKeys ) |
|
193 | 193 | ); |
194 | 194 | } |
195 | 195 | |
@@ -198,15 +198,15 @@ discard block |
||
198 | 198 | */ |
199 | 199 | protected function normalizeBooleanAttributes() |
200 | 200 | { |
201 | - foreach ($this->attributes as $key => $value) { |
|
202 | - if ($this->isAttributeKeyNumeric($key, $value)) { |
|
201 | + foreach( $this->attributes as $key => $value ) { |
|
202 | + if( $this->isAttributeKeyNumeric( $key, $value ) ) { |
|
203 | 203 | $key = $value; |
204 | 204 | $value = true; |
205 | 205 | } |
206 | - if (!in_array($key, static::BOOLEAN_ATTRIBUTES)) { |
|
206 | + if( !in_array( $key, static::BOOLEAN_ATTRIBUTES ) ) { |
|
207 | 207 | continue; |
208 | 208 | } |
209 | - $this->attributes[$key] = wp_validate_boolean($value); |
|
209 | + $this->attributes[$key] = wp_validate_boolean( $value ); |
|
210 | 210 | } |
211 | 211 | } |
212 | 212 | |
@@ -215,16 +215,16 @@ discard block |
||
215 | 215 | */ |
216 | 216 | protected function normalizeDataAttributes() |
217 | 217 | { |
218 | - foreach ($this->attributes as $key => $value) { |
|
219 | - if ($this->isAttributeKeyNumeric($key, $value)) { |
|
218 | + foreach( $this->attributes as $key => $value ) { |
|
219 | + if( $this->isAttributeKeyNumeric( $key, $value ) ) { |
|
220 | 220 | $key = $value; |
221 | 221 | $value = ''; |
222 | 222 | } |
223 | - if (!Str::startsWith('data-', $key)) { |
|
223 | + if( !Str::startsWith( 'data-', $key ) ) { |
|
224 | 224 | continue; |
225 | 225 | } |
226 | - if (is_array($value)) { |
|
227 | - $value = json_encode($value, JSON_HEX_APOS | JSON_NUMERIC_CHECK | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); |
|
226 | + if( is_array( $value ) ) { |
|
227 | + $value = json_encode( $value, JSON_HEX_APOS | JSON_NUMERIC_CHECK | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE ); |
|
228 | 228 | } |
229 | 229 | $this->attributes[$key] = $value; |
230 | 230 | } |
@@ -235,11 +235,11 @@ discard block |
||
235 | 235 | */ |
236 | 236 | protected function normalizeStringAttributes() |
237 | 237 | { |
238 | - foreach ($this->attributes as $key => $value) { |
|
239 | - if (!is_string($value)) { |
|
238 | + foreach( $this->attributes as $key => $value ) { |
|
239 | + if( !is_string( $value ) ) { |
|
240 | 240 | continue; |
241 | 241 | } |
242 | - $this->attributes[$key] = trim($value); |
|
242 | + $this->attributes[$key] = trim( $value ); |
|
243 | 243 | } |
244 | 244 | } |
245 | 245 | |
@@ -247,13 +247,13 @@ discard block |
||
247 | 247 | * @param string $method |
248 | 248 | * @return void |
249 | 249 | */ |
250 | - protected function normalizeInputType($method) |
|
250 | + protected function normalizeInputType( $method ) |
|
251 | 251 | { |
252 | - if ('input' != $method) { |
|
252 | + if( 'input' != $method ) { |
|
253 | 253 | return; |
254 | 254 | } |
255 | - $attributes = wp_parse_args($this->attributes, ['type' => '']); |
|
256 | - if (!in_array($attributes['type'], static::INPUT_TYPES)) { |
|
255 | + $attributes = wp_parse_args( $this->attributes, ['type' => ''] ); |
|
256 | + if( !in_array( $attributes['type'], static::INPUT_TYPES ) ) { |
|
257 | 257 | $this->attributes['type'] = 'text'; |
258 | 258 | } |
259 | 259 | } |
@@ -265,16 +265,16 @@ discard block |
||
265 | 265 | { |
266 | 266 | $attributes = $this->attributes; |
267 | 267 | $permanentAttributes = $this->getPermanentAttributes(); |
268 | - foreach ($this->attributes as $key => $value) { |
|
269 | - if (in_array($key, static::BOOLEAN_ATTRIBUTES) && !$value) { |
|
268 | + foreach( $this->attributes as $key => $value ) { |
|
269 | + if( in_array( $key, static::BOOLEAN_ATTRIBUTES ) && !$value ) { |
|
270 | 270 | unset($attributes[$key]); |
271 | 271 | } |
272 | - if (Str::startsWith('data-', $key)) { |
|
272 | + if( Str::startsWith( 'data-', $key ) ) { |
|
273 | 273 | $permanentAttributes[$key] = $value; |
274 | 274 | unset($attributes[$key]); |
275 | 275 | } |
276 | 276 | } |
277 | - $this->attributes = array_merge(array_filter($attributes), $permanentAttributes); |
|
277 | + $this->attributes = array_merge( array_filter( $attributes ), $permanentAttributes ); |
|
278 | 278 | } |
279 | 279 | |
280 | 280 | /** |
@@ -284,7 +284,7 @@ discard block |
||
284 | 284 | { |
285 | 285 | $this->attributes = array_diff_key( |
286 | 286 | $this->attributes, |
287 | - array_filter($this->attributes, 'is_numeric', ARRAY_FILTER_USE_KEY) |
|
287 | + array_filter( $this->attributes, 'is_numeric', ARRAY_FILTER_USE_KEY ) |
|
288 | 288 | ); |
289 | 289 | } |
290 | 290 | } |
@@ -6,30 +6,30 @@ |
||
6 | 6 | |
7 | 7 | class Partial |
8 | 8 | { |
9 | - /** |
|
10 | - * @param string $partialPath |
|
11 | - * @return string |
|
12 | - */ |
|
13 | - public function build($partialPath, array $args = []) |
|
14 | - { |
|
15 | - $className = Helper::buildClassName($partialPath, 'Modules\Html\Partials'); |
|
16 | - if (!class_exists($className)) { |
|
17 | - glsr_log()->error('Partial missing: '.$className); |
|
18 | - return; |
|
19 | - } |
|
20 | - $args = apply_filters('site-reviews/partial/args/'.$partialPath, $args); |
|
21 | - $partial = glsr($className)->build($args); |
|
22 | - $partial = apply_filters('site-reviews/rendered/partial', $partial, $partialPath, $args); |
|
23 | - $partial = apply_filters('site-reviews/rendered/partial/'.$partialPath, $partial, $args); |
|
24 | - return $partial; |
|
25 | - } |
|
9 | + /** |
|
10 | + * @param string $partialPath |
|
11 | + * @return string |
|
12 | + */ |
|
13 | + public function build($partialPath, array $args = []) |
|
14 | + { |
|
15 | + $className = Helper::buildClassName($partialPath, 'Modules\Html\Partials'); |
|
16 | + if (!class_exists($className)) { |
|
17 | + glsr_log()->error('Partial missing: '.$className); |
|
18 | + return; |
|
19 | + } |
|
20 | + $args = apply_filters('site-reviews/partial/args/'.$partialPath, $args); |
|
21 | + $partial = glsr($className)->build($args); |
|
22 | + $partial = apply_filters('site-reviews/rendered/partial', $partial, $partialPath, $args); |
|
23 | + $partial = apply_filters('site-reviews/rendered/partial/'.$partialPath, $partial, $args); |
|
24 | + return $partial; |
|
25 | + } |
|
26 | 26 | |
27 | - /** |
|
28 | - * @param string $partialPath |
|
29 | - * @return void |
|
30 | - */ |
|
31 | - public function render($partialPath, array $args = []) |
|
32 | - { |
|
33 | - echo $this->build($partialPath, $args); |
|
34 | - } |
|
27 | + /** |
|
28 | + * @param string $partialPath |
|
29 | + * @return void |
|
30 | + */ |
|
31 | + public function render($partialPath, array $args = []) |
|
32 | + { |
|
33 | + echo $this->build($partialPath, $args); |
|
34 | + } |
|
35 | 35 | } |
@@ -10,17 +10,17 @@ discard block |
||
10 | 10 | * @param string $partialPath |
11 | 11 | * @return string |
12 | 12 | */ |
13 | - public function build($partialPath, array $args = []) |
|
13 | + public function build( $partialPath, array $args = [] ) |
|
14 | 14 | { |
15 | - $className = Helper::buildClassName($partialPath, 'Modules\Html\Partials'); |
|
16 | - if (!class_exists($className)) { |
|
17 | - glsr_log()->error('Partial missing: '.$className); |
|
15 | + $className = Helper::buildClassName( $partialPath, 'Modules\Html\Partials' ); |
|
16 | + if( !class_exists( $className ) ) { |
|
17 | + glsr_log()->error( 'Partial missing: '.$className ); |
|
18 | 18 | return; |
19 | 19 | } |
20 | - $args = apply_filters('site-reviews/partial/args/'.$partialPath, $args); |
|
21 | - $partial = glsr($className)->build($args); |
|
22 | - $partial = apply_filters('site-reviews/rendered/partial', $partial, $partialPath, $args); |
|
23 | - $partial = apply_filters('site-reviews/rendered/partial/'.$partialPath, $partial, $args); |
|
20 | + $args = apply_filters( 'site-reviews/partial/args/'.$partialPath, $args ); |
|
21 | + $partial = glsr( $className )->build( $args ); |
|
22 | + $partial = apply_filters( 'site-reviews/rendered/partial', $partial, $partialPath, $args ); |
|
23 | + $partial = apply_filters( 'site-reviews/rendered/partial/'.$partialPath, $partial, $args ); |
|
24 | 24 | return $partial; |
25 | 25 | } |
26 | 26 | |
@@ -28,8 +28,8 @@ discard block |
||
28 | 28 | * @param string $partialPath |
29 | 29 | * @return void |
30 | 30 | */ |
31 | - public function render($partialPath, array $args = []) |
|
31 | + public function render( $partialPath, array $args = [] ) |
|
32 | 32 | { |
33 | - echo $this->build($partialPath, $args); |
|
33 | + echo $this->build( $partialPath, $args ); |
|
34 | 34 | } |
35 | 35 | } |