From 8dd01194444bbb0dd23a93862a8b7fa5559e516c Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Tue, 02 Jun 2026 00:49:23 +0000
Subject: [PATCH] =finalizing schema output for timeline et all

---
 alegacy.php |  286 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 280 insertions(+), 6 deletions(-)

diff --git a/alegacy.php b/alegacy.php
index cc46d58..575087f 100644
--- a/alegacy.php
+++ b/alegacy.php
@@ -43,7 +43,8 @@
     exit;
 }
 
-use JVBase\managers\CacheManager;
+use JVBase\base\Site;
+use JVBase\registrar\Registrar;
 
 add_filter('jvb_base', function () {
     return 'altr_';
@@ -53,15 +54,85 @@
 const AJV_DIR = WP_PLUGIN_DIR . '/alegacy';
 define('AJV_URL', plugin_dir_url(__FILE__));
 
+add_filter('jvbChildDir', function() {
+    return AJV_DIR;
+});
+add_filter('jvbChildUrl', function() {
+    return AJV_URL;
+});
+
 require(AJV_DIR . '/content/_setup.php');
-//require(AJV_DIR . '/dashboard/_setup.php');
-//require(AJV_DIR . '/forms/_setup.php');
+require(AJV_DIR . '/dashboard/_setup.php');
+require(AJV_DIR . '/email/_setup.php');
+require(AJV_DIR . '/forms/_setup.php');
 require(AJV_DIR . '/login/_setup.php');
 require(AJV_DIR . '/taxonomies/_setup.php');
-//require(AJV_DIR . '/users/_setup.php');
+require(AJV_DIR . '/users/_setup.php');
+require(AJV_DIR . '/blocks/_setup.php');
+require(AJV_DIR . '/seo.php');
 //require(AJV_DIR . '/files/fileManagement.php');
 
 
+add_action('plugins_loaded', 'aei_siteDefinition', 2);
+add_action('jvbLoadDefinitions', 'aei_siteDefinition');
+function aei_siteDefinition():void
+{
+    if (!class_exists('JVBase\base\Site')) {
+        return;
+    }
+    $site = Site::getInstance();
+    $site->set('icons', 'light');
+    $site->setAll([
+        'is_directory',
+        'dashboard',
+        'magic_link',
+        'feed_block',
+//        'faq',
+        'referrals'
+//        'has_map',
+//        'referrals',
+    ]);
+    $site->setIntegrations([
+        'cloudflare',
+        'facebook',
+        'gmb',
+        'maps',
+        'helcim',
+        'postmark',
+        'instagram',
+        'umami'
+    ]);
+
+    $login = $site->login();
+    $site->setDirectorySingular('List');
+    $site->setDirectoryPlural('Lists');
+
+
+}
+
+//add_action('plugins_loaded', 'aei_membership_settings', 10);
+//function aei_membership_settings():void
+//{
+//    if (!class_exists('JVBase\base\Site')) {
+//        return;
+//    }
+//    $site = Site::getInstance();
+//    $membership = $site->membership();
+//    $membership->setAll([
+//        'invitable',
+//        'term_approval',
+//        'member_verified'
+//    ]);
+//
+//    $membership->setInvitable([
+//        'artist'    => ['artist', 'enthusiast'],
+//        'enthusiast' => ['enthusiast']
+//    ]);
+//
+//    $membership->setApprovers(['artist']);
+//    $membership->setCanSeeForum(['artist']);
+//}
+
 /**
  * Defines base options like:
  *         - directory & Membership
@@ -78,18 +149,22 @@
  *         - rewrite rules
  *         - archive title
  */
-add_filter('jvb_site', 'altr_setup_site');
+//add_filter('jvb_site', 'altr_setup_site');
 function altr_setup_site():array
 {
     return [
         'icons'               => 'light',
         'is_directory'        => true,        //as in, a membership directory
+        'directory_label'     => ['List', 'Lists'],
         'has_membership'      => false,
         'has_map'             => true,
         'dashboard'           => true,
+        'faq'                 => true,
+        'referrals'           => true,
+        'magicLink'           => true,
         'support'         => false,
         'feed_block'      => true,
-        'email_notifications' => false,
+        'email_notifications' => true,
         'integrations'  => [
             'bluesky'     => true,
             'cloudflare'  => true,
@@ -97,6 +172,7 @@
             'maps'        => true,
             'gmb'         => true,
             'helcim'      => false,
+            'postmark'    => true,
             'instagram'   => true,
             'square'      => false,
             'umami'       => true,
@@ -140,3 +216,201 @@
 //{
 //    return [];
 //}
+
+
+add_filter('jvbAboveHeader', 'altr_legacy_header');
+function altr_legacy_header(string $header):string
+{
+    return '<p><b>WED - SUN</b> <span class="hide-small">&emsp;</span>11<span class="hide-small">:00</span>AM - 6<span class="hide-small">:00</span>PM</p><p>By Appointment<span class="hide-small"> Only</span></p>';
+}
+
+
+
+add_filter('jvbMenuExtra', 'altr_contact_nav', 10, 3);
+function altr_contact_nav(string $nav, string $menuName, array $block):string
+{
+    if (array_key_exists('attrs', $block)
+        && array_key_exists('className', $block['attrs'])
+        && $block['attrs']['className'] === 'is-style-fixed'
+        && $nav === '') {
+        $call = '<li class="call"><a href="'.jvbPhoneLink(8259257398).'" title="Call Us">'.jvbIcon('phone').'<span class="screen-reader-text">Call Us</span></a></li>';
+        $text = '<li><a href="'.jvbTextLink(8259257398).'" title="Text Us">'.jvbIcon('chat').'<span class="hide-small">825.925.7398</span><sup class="hide-small">PEWU</sup></a></li>';
+        $email = '<li><a href="'.jvbMailToLink(
+            'info@legacytattooremoval.ca',
+                'Contact from Our Website'
+            ).'" title="Email Us">'.jvbIcon('envelope').'<span class="hide-small">info@legacytattooremoval.ca</span></a></li>';
+
+        return $call.$text.$email;
+    }
+    if (array_key_exists('attrs', $block)
+        && array_key_exists('className', $block['attrs'])
+        && $block['attrs']['className'] === 'is-style-floating'
+    ) {
+        return $nav.'<li><ul class="socials">
+            <li>
+                <a href="https://www.facebook.com/LegacyTattooRemoval/" target="_blank" rel="nofollow" title="Find us on Facebook">
+                    '.jvbIcon('facebook-logo').'
+                    <span class="screen-reader-text">
+                        Find us on Facebook
+                    </span>
+                </a>
+            </li>
+            <li>
+                <a href="https://www.instagram.com/LegacyTattooRemoval/" target="_blank" rel="nofollow" title="Find us on Instagram">
+                    '.jvbIcon('instagram-logo').'
+                    <span class="screen-reader-text">
+                        Find us on Instagram
+                    </span>
+                </a>
+            </li>
+            <li>
+                <a href="https://bsky.app/profile/legacytattooremoval.ca" target="_blank" rel="nofollow" title="Find us on Bluesky">
+                    '.jvbIcon('butterfly').'
+                    <span class="screen-reader-text">
+                        Find us on Bluesky
+                    </span>
+                </a>
+            </li>
+        </ul></li>';
+    }
+
+    return $nav;
+}
+
+add_filter('jvbBeforeFooter', 'altr_acknowledgement');
+function altr_acknowledgement():string
+{
+
+    return '<p>amiskwacîwâskahikan ᐊᒥᐢᑲᐧᒋᐋᐧᐢᑲᐦᐃᑲᐣ</p><p><a href="https://www.treatysix.org/#comp-lkljqlw1" title="Learn More">Treaty 6 territory</a></p><p>Edmonton, Alberta, Canada</p>';
+}
+
+
+add_action('jvbBlockStyles', 'altr_blockStyles');
+function altr_blockStyles()
+{
+    register_block_style(
+        'core/list',
+        [
+            'name'=>'blocky',
+            'label' => __('Blocky', 'altr')
+        ]
+    );
+    register_block_style(
+        'core/group',
+        [
+            'name'=>'triangle',
+            'label' => __('Triangle', 'altr')
+        ]
+    );
+}
+
+
+
+
+add_action( 'init', 'altr_add_excerpts_to_pages' );
+function altr_add_excerpts_to_pages() {
+    add_post_type_support( 'page', 'excerpt' );
+}
+
+add_filter('jvbRegisterCustomIcons', 'altr_custom_icons');
+function altr_custom_icons(array $icons):array
+{
+    $icons['logo-triangle'] = AJV_DIR . '/assets/icons/triangle.svg';
+    $icons['logo-triangle-fill'] = AJV_DIR . '/assets/icons/triangle-fill.svg';
+    $icons['logo-text'] = AJV_DIR . '/assets/icons/text.svg';
+    $icons['logo-text-only'] = AJV_DIR . '/assets/icons/text-only.svg';
+    $icons['logo-complete'] = AJV_DIR . '/assets/icons/triangle text back.svg';
+    return $icons;
+}
+
+add_filter('jvbLoadingIcon', 'altr_loading_icon');
+function altr_loading_icon():string
+{
+    return 'logo-triangle';
+}
+
+
+add_filter('jvbSummaryHeader', 'altr_progress_summary_header', 10, 2);
+
+function altr_progress_summary_header(string $title, string $type):string
+{
+    switch ($type) {
+        case 'progress':
+            return Registrar::getInstance($type)->getPlural();
+        default:
+            $singular = Registrar::getInstance($type)->getSingular();
+            return '<small>Before & After Laser Tattoo Removal</small><small>'.$singular.':</small>'.str_replace($singular.': ','',$title);
+    }
+}
+add_filter('jvbSummaryHeaderExtra', 'altr_progress_summary_header_extra', 10, 2);
+
+function altr_progress_summary_header_extra(string $title, string $type):string
+{
+    switch ($type) {
+        case 'progress':
+            return '<p>See real results of tattoos before and after laser tattoo removal.</p><p>Filter results by number of treatments, age of original tattoo, location on body, fading goal, skin type, timeline between treatments, tattoo style, or tattoo subject matter.</p>';
+    }
+    return $title;
+}
+
+//add_filter('jvbSummaryDetails', 'altr_summary_details', 10, 2);
+//function altr_summary_details(array $sections, string $type):array
+//{
+//    switch ($type) {
+//        case 'progress':
+//            $sections = [
+//                'summary' => '<p>We recommend spacing treatments out at least 12 weeks apart for best results.</p><p>See the difference at Legacy.</p>'
+//            ];
+//            break;
+//    }
+//    return $sections;
+//}
+
+add_filter('the_seo_framework_meta_render_data', 'altr_no_next_archive', 10, 1);
+function altr_no_next_archive($tags) {
+    if (is_tax() || is_post_type_archive('altr_progress') || is_post_type_archive('altr_terms') || is_post_type_archive('altr_faq')) {
+        if (array_key_exists('next', $tags)) {
+            unset($tags['next']);
+        }
+    }
+    return $tags; // Keep the link for other pages
+}
+
+add_filter('jvb_referral_booking_url', 'altr_consult_link');
+function altr_consult_link(string $link):string
+{
+    return 'https://legacytattooremoval.janeapp.com/#/staff_member/2/treatment/15/';
+}
+
+add_filter('jvb_referral_estimate_url', 'altr_estimate_link');
+function altr_estimate_link(string $link):string
+{
+    return 'https://legacytattooremoval.ca/get-an-estimate/';
+}
+
+add_filter('jvbLogoIcon', 'altr_logostring');
+function altr_logostring():string
+{
+    return 'logo-triangle';
+}
+
+add_filter('jvbDefaultIcon', 'altr_default_icon');
+function altr_default_icon():string
+{
+    return 'triangle';
+}
+
+add_action('init', 'altr_RegisterScripts', 5);
+
+function altr_RegisterScripts() {
+    wp_enqueue_script(
+        'altr-base',
+        AJV_URL.'assets/js/legacy.js',
+       [],
+        '1.0',
+        [
+            'strategy'	=> 'defer',
+            'in_footer'	=> true
+        ]
+    );
+}
\ No newline at end of file

--
Gitblit v1.10.0