PluginProbe
Extendify / trunk
Extendify vtrunk
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/Agent/Admin.php +30 -0 3.2.0 → trunk View file →
@@ -20,8 +20,9 @@
20 20 use Extendify\Agent\AbilitiesDiscovery;
21 21 use Extendify\Agent\Controllers\SiteNavigationController;
22 22 use Extendify\PartnerData;
23 23 use Extendify\Shared\DataProvider\ProductsData;
24 +use Extendify\SiteVisibility;
24 25
25 26 /**
26 27 * This class handles any file loading for the admin area.
27 28 */
@@ -139,8 +140,10 @@
139 140 }, $pluginRecommendations));
140 141 $agentContext = [
141 142 'availableAdminPages' => get_option('_transient_extendify_admin_pages_menu', []),
142 143 'pluginRecommendations' => $mappedPluginRecommendations,
144 + 'sitePublished' => SiteVisibility::isPublished(),
145 + 'comingSoonEnabled' => (bool) PartnerData::setting('useComingSoon'),
143 146 ];
144 147 $abilities = [
145 148 'canEditPost' => (bool) \current_user_can('edit_post', \get_queried_object_id()),
146 149 // TODO: this may be true for a user, while they still can't edit every post
@@ -311,12 +314,39 @@
311 314 $typography = \wp_get_global_settings(['typography']);
312 315
313 316 return [
314 317 'color' => $this->originSlugs($color, 'palette', 'defaultPalette'),
318 + 'colorValues' => $this->originValues($color, 'palette', 'defaultPalette', 'color'),
315 319 'gradient' => $this->originSlugs($color, 'gradients', 'defaultGradients'),
316 320 'fontSize' => $this->originSlugs($typography, 'fontSizes', 'defaultFontSizes'),
317 321 'fontFamily' => $this->originSlugs($typography, 'fontFamilies', 'defaultFontFamilies'),
318 322 ];
323 + }
324 +
325 + /**
326 + * Slug => value, so a colour written as its own hex finds the token naming it.
327 + *
328 + * @return array<string, string>
329 + */
330 + private function originValues($node, $listKey, $defaultKey, $valueKey)
331 + {
332 + $list = $node[$listKey] ?? [];
333 +
334 + $origins = ['custom', 'theme'];
335 + if (($node[$defaultKey] ?? true) !== false) {
336 + $origins[] = 'default';
337 + }
338 +
339 + $values = [];
340 + foreach ($origins as $origin) {
341 + foreach ($list[$origin] ?? [] as $item) {
342 + if (isset($item['slug'], $item[$valueKey])) {
343 + $values[(string) $item['slug']] = (string) $item[$valueKey];
344 + }
345 + }
346 + }
347 +
348 + return $values;
319 349 }
320 350
321 351 /**
322 352 * Preset slugs from a settings node's origin buckets; drops the `default`