PluginProbe
Extendify / 3.2.1
Extendify v3.2.1
3.2.1 3.2.0 3.1.6 3.1.5 3.1.4 3.1.3 3.1.2 3.1.1 3.1.0 3.0.6 3.0.5 3.0.4 trunk 0.1.0 0.10.0 0.10.1 0.10.2 0.11.0 0.11.1 0.2.0 0.3.0 0.3.1 0.4.0 0.5.0 0.6.0 All 127 releases
← All changes | app/Library/Frontend.php +222 -27 0.11.13.2.1 View file →
@@ -1,5 +1,6 @@
1 1 <?php
2 +
2 3 /**
3 4 * Manage any frontend related tasks here.
4 5 */
5 6
@@ -4,59 +5,253 @@
4 5 */
5 6
6 7 namespace Extendify\Library;
7 8
8 -use Extendify\Config;
9 +defined('ABSPATH') || die('No direct access.');
9 10
10 11 /**
11 12 * This class handles any file loading for the frontend of the site.
12 13 */
14 +
13 15 class Frontend
14 16 {
15 -
16 17 /**
17 - * The instance
18 - *
19 - * @var $instance
20 - */
21 - public static $instance = null;
22 -
23 - /**
24 18 * Adds various actions to set up the page
25 19 *
26 - * @return self|void
20 + * @return void
27 21 */
28 22 public function __construct()
29 23 {
30 - if (self::$instance) {
31 - return self::$instance;
32 - }
33 -
34 - self::$instance = $this;
35 - $this->loadScripts();
24 + \add_action('wp_enqueue_scripts', [$this, 'enqueueUtilityStyles']);
25 + \add_action('admin_init', [$this, 'enqueueUtilityStyles']);
36 26 }
37 27
38 28 /**
39 - * Adds scripts and styles to every page is enabled
29 + * Enqueue utility styles if the extendify pattern was imported
40 30 *
41 31 * @return void
42 32 */
43 - public function loadScripts()
33 + public function enqueueUtilityStyles()
44 34 {
45 - \add_action(
46 - 'wp_enqueue_scripts',
47 - function () {
48 - // TODO: Determine a way to conditionally load assets (https://github.com/extendify/company-product/issues/72).
49 - $this->addStylesheets();
50 - }
51 - );
35 + // This only is in the database in older versions of the plugin that require these styles.
36 + if (\get_option('extendify_pattern_was_imported', false)) {
37 + $this->themeCompatInlineStyles();
38 + // phpcs:ignore WordPress.WP.EnqueuedResourceParameters.MissingVersion
39 + \wp_enqueue_style(
40 + 'extendify-utility-styles',
41 + EXTENDIFY_BASE_URL . 'public/build/utility-minimum.css'
42 + );
43 + }
52 44 }
53 45
54 46 /**
55 - * Adds stylesheets as needed
47 + * Inline styles to be applied for compatible themes
56 48 *
57 49 * @return void
58 50 */
59 - public function addStylesheets()
51 + // phpcs:ignore
52 + public function themeCompatInlineStyles()
60 53 {
54 + $css = '';
55 + $theme = get_option('template');
56 +
57 + if ($theme === 'kadence') {
58 + $css = 'body, .editor-styles-wrapper {
59 + --wp--preset--color--background: var(--global-palette8);
60 + --wp--preset--color--foreground: var(--global-palette4);
61 + --wp--preset--color--primary: var(--global-palette1);
62 + --wp--preset--color--secondary: var(--global-palette2);
63 + --wp--preset--color--tertiary: var(--global-palette7);
64 + --wp--custom--spacing--large: clamp(var(--global-sm-spacing), 5vw, var(--global-xxl-spacing));
65 + --wp--preset--font-size--large: var(--h2FontSize);
66 + --wp--preset--font-size--huge: var(--h1FontSize);
67 + }';
68 + }
69 +
70 + if ($theme === 'neve') {
71 + $css = 'body, .editor-styles-wrapper {
72 + --wp--preset--color--background: var(--nv-site-bg);
73 + --wp--preset--color--foreground: var(--nv-text-color);
74 + --wp--preset--color--primary: var(--nv-primary-accent);
75 + --wp--preset--color--secondary: var(--nv-secondary-accent);
76 + --wp--preset--color--tertiary: var(--nv-light-bg);
77 + --wp--custom--spacing--large: clamp(15px, 5vw, 80px);
78 + --wp--preset--font-size--large: var(--h2FontSize);
79 + --wp--preset--font-size--huge: var(--h1FontSize);
80 + }';
81 + }
82 +
83 + if ($theme === 'blocksy') {
84 + $css = 'body, .editor-styles-wrapper {
85 + --wp--preset--color--background: var(--paletteColor7);
86 + --wp--preset--color--foreground: var(--color);
87 + --wp--preset--color--primary: var(--paletteColor1);
88 + --wp--preset--color--secondary: var(--paletteColor4);
89 + }';
90 + }
91 +
92 + if ($theme === 'go') {
93 + $css = 'body, .editor-styles-wrapper {
94 + --wp--preset--color--background: var(--go--color--background);
95 + --wp--preset--color--foreground: var(--go--color--text);
96 + }';
97 + }
98 +
99 + if ($theme === 'astra') {
100 + $css = 'body, .editor-styles-wrapper {
101 + --wp--preset--color--background: #ffffff;
102 + --wp--preset--color--foreground: var(--ast-global-color-2);
103 + --wp--preset--color--primary: var(--ast-global-color-0);
104 + --wp--preset--color--secondary: var(--ast-global-color-2);
105 + }';
106 + }
107 +
108 + if ($theme === 'oceanwp') {
109 + $background = get_theme_mod('ocean_background_color', '#ffffff');
110 + $primary = get_theme_mod('ocean_primary_color', '#13aff0');
111 + $secondary = get_theme_mod('ocean_hover_primary_color', '#0b7cac');
112 + $gap = get_theme_mod('ocean_separate_content_padding', '30px');
113 +
114 + $css = 'body, .editor-styles-wrapper {
115 + --wp--preset--color--background: ' . $background . ';
116 + --wp--preset--color--foreground: #1B1B1B;
117 + --wp--preset--color--primary: ' . $primary . ';
118 + --wp--preset--color--secondary: ' . $secondary . ';
119 + --wp--style--block-gap: ' . $gap . ';
120 + --wp--custom--spacing--large: clamp(2rem, 7vw, 8rem);
121 + }';
122 + }
123 +
124 + if ($theme === 'generatepress') {
125 + $settings = (array) get_option('generate_settings', []);
126 +
127 + if (! array_key_exists('background_color', $settings)) {
128 + $background = '#f7f8f9';
129 + } else {
130 + $background = $settings['background_color'];
131 + }
132 +
133 + if (! array_key_exists('text_color', $settings)) {
134 + $foreground = '#222222';
135 + } else {
136 + $foreground = $settings['text_color'];
137 + }
138 +
139 + if (! array_key_exists('link_color', $settings)) {
140 + $primary = '#1e73be';
141 + } else {
142 + $primary = $settings['link_color'];
143 + }
144 +
145 + if (! array_key_exists('link_color', $settings)) {
146 + $primary = '#1e73be';
147 + } else {
148 + $primary = $settings['link_color'];
149 + }
150 +
151 + $css = 'body, .editor-styles-wrapper {
152 + --wp--preset--color--background: ' . $background . ';
153 + --wp--preset--color--foreground: ' . $foreground . ';
154 + --wp--preset--color--primary: ' . $primary . ';
155 + --wp--preset--color--secondary: #636363;
156 + --wp--style--block-gap: 3rem;
157 + --wp--custom--spacing--large: clamp(2rem, 7vw, 8rem);
158 + --responsive--alignwide-width: 1120px;
159 + }';
160 + }//end if
161 +
162 + if ($theme === 'twentytwentytwo') {
163 + $css = 'body, .editor-styles-wrapper {
164 + --extendify--spacing--large: clamp(2rem,8vw,8rem);
165 + }';
166 + }
167 +
168 + if ($theme === 'twentytwentyone') {
169 + $css = 'body, .editor-styles-wrapper {
170 + --wp--preset--color--background: var(--global--color-background);
171 + --wp--preset--color--foreground: var(--global--color-primary);
172 + --wp--preset--color--primary: var(--global--color-gray);
173 + --wp--preset--color--secondary: #464b56;
174 + --wp--preset--color--tertiary: var(--global--color-light-gray);
175 + --wp--style--block-gap: var(--global--spacing-unit);
176 + --wp--preset--font-size--large: 2.5rem;
177 + --wp--preset--font-size--huge: var(--global--font-size-xxl);
178 + }
179 + .has-foreground-background-color,
180 + .has-primary-background-color,
181 + .has-secondary-background-color {
182 + --local--color-primary: var(--wp--preset--color--background);
183 + --local--color-background: var(--wp--preset--color--primary);
184 + }';
185 + }
186 +
187 + if ($theme === 'twentytwenty') {
188 + $background = sanitize_hex_color_no_hash(get_theme_mod('background_color', 'f5efe0'));
189 + $primary = get_theme_mod(
190 + 'accent_accessible_colors',
191 + [
192 + 'content' => [ 'accent' => '#cd2653' ],
193 + ]
194 + );
195 + $primary = $primary['content']['accent'];
196 + $css = 'body, .editor-styles-wrapper {
197 + --wp--preset--color--background: #' . $background . ';
198 + --wp--preset--color--foreground: #000;
199 + --wp--preset--color--primary: ' . $primary . ';
200 + --wp--preset--color--secondary: #69603e;
201 + --wp--style--block-gap: 3rem;
202 + --wp--custom--spacing--large: clamp(2rem, 7vw, 8rem);
203 + --responsive--alignwide-width: 120rem;
204 + }';
205 + }//end if
206 +
207 + if ($theme === 'twentynineteen') {
208 + /**
209 + * Use the color from Twenty Nineteen's customizer value.
210 + */
211 + $primary = 199;
212 + if (get_theme_mod('primary_color', 'default') !== 'default') {
213 + $primary = absint(get_theme_mod('primary_color_hue', 199));
214 + }
215 +
216 + /**
217 + * Filters Twenty Nineteen default saturation level.
218 + *
219 + * @since Twenty Nineteen 1.0
220 + *
221 + * @param int $saturation Color saturation level.
222 + */
223 + // phpcs:ignore
224 + $saturation = apply_filters('twentynineteen_custom_colors_saturation', 100);
225 + $saturation = absint($saturation) . '%';
226 +
227 + /**
228 + * Filters Twenty Nineteen default lightness level.
229 + *
230 + * @since Twenty Nineteen 1.0
231 + *
232 + * @param int $lightness Color lightness level.
233 + */
234 + // phpcs:ignore
235 + $lightness = apply_filters('twentynineteen_custom_colors_lightness', 33);
236 + $lightness = absint($lightness) . '%';
237 +
238 + $css = 'body, .editor-styles-wrapper {
239 + --wp--preset--color--foreground: #111;
240 + --wp--preset--color--primary: hsl( ' . $primary . ', ' . $saturation . ', ' . $lightness . ' );
241 + --wp--preset--color--secondary: #767676;
242 + --wp--preset--color--tertiary: #f7f7f7;
243 + }';
244 + }//end if
245 +
246 + if (!$css) {
247 + return;
248 + }
249 +
250 + // phpcs:ignore WordPress.WP.EnqueuedResourceParameters.MissingVersion
251 + \wp_register_style('extendify-utility-extras', false);
252 + \wp_enqueue_style('extendify-utility-extras');
253 + \wp_add_inline_style('extendify-utility-extras', $css);
254 + // Adds inline to the live preview.
255 + \wp_add_inline_style('wp-components', $css);
61 256 }
62 257 }