From 4089ba01e0881c89a72332e13bc3a80b6bddec2a Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Mon, 29 Jun 2026 22:15:55 +0000
Subject: [PATCH] =DashboardManager overhaul. A bit easier to modify the output of pages. Still have to get the account pages to work as expected, as well as verify the integrations and others are working - but registrar/content pages work as expected. Also fixed up the table generation in CRUD.js and CRUDSkeleton.php
---
inc/registrar/helpers/AddIntegrationFields.php | 23 ++++++++++++++---------
1 files changed, 14 insertions(+), 9 deletions(-)
diff --git a/inc/registrar/helpers/AddIntegrationFields.php b/inc/registrar/helpers/AddIntegrationFields.php
index fde540d..bf615e7 100644
--- a/inc/registrar/helpers/AddIntegrationFields.php
+++ b/inc/registrar/helpers/AddIntegrationFields.php
@@ -3,7 +3,7 @@
use JVBase\registrar\config\Integration;
use JVBase\registrar\Registrar;
-use JVBase\utility\Features;
+use JVBase\base\Site;
if (!defined('ABSPATH')) {
exit;
@@ -11,13 +11,13 @@
class AddIntegrationFields {
protected string $service_name;
- protected Registrar $registrar;
+ private Registrar $registrar;
protected Integration $config;
protected array $allowed;
public function __construct(string $service_name, ?Registrar $registrar = null) {
$this->initAllowed();
- if (!in_array($service_name, $this->allowed)) {
+ if (!array_key_exists($service_name, $this->allowed)) {
return;
}
@@ -28,26 +28,27 @@
$this->config = $registrar->getIntegration($service_name);
+ add_action('jvb_define_integrations', [$this, 'addIntegrationFields'],20);
}
protected function initAllowed():void
{
$allowed = [];
- if (Features::hasIntegration('gmb')) {
+ if (Site::hasIntegration('gmb')) {
$allowed['gmb'] = 'Google My Business';
}
- if (Features::hasIntegration('facebook')) {
+ if (Site::hasIntegration('facebook')) {
$allowed['facebook'] = 'Facebook';
}
- if (Features::hasIntegration('square')) {
+ if (Site::hasIntegration('square')) {
$allowed['square'] = 'Square';
}
- if (Features::hasIntegration('instagram')) {
+ if (Site::hasIntegration('instagram')) {
$allowed['instagram'] = 'Instagram';
}
- if (Features::hasIntegration('bluesky')) {
+ if (Site::hasIntegration('bluesky')) {
$allowed['bluesky'] = 'BlueSky';
}
- if (Features::hasIntegration('helcim')) {
+ if (Site::hasIntegration('helcim')) {
$allowed['helcim'] = 'Helcim';
}
$this->allowed = $allowed;
@@ -56,6 +57,7 @@
public function addIntegrationFields():void
{
$fields = $this->getIntegrationFields();
+// error_log('[AddIntegrationFields] adding fields for '.$this->service_name.': '.print_r($fields, true));
foreach ($fields as $fieldName => $fieldConfig) {
$this->registrar->fields()->addField($fieldName, $fieldConfig);
}
@@ -63,6 +65,9 @@
public function getIntegrationFields():array
{
+ if ($this->registrar && $this->registrar->getType() === 'user' && $this->config->isCustomer()) {
+ return JVB()->connect($this->service_name)->getAdditionalFields('customer');
+ }
$fields = [
'share_to_'.$this->service_name => [
'type' => 'true_false',
--
Gitblit v1.10.0