From 1027291d3af570aab2de3aeb779759b15fe3d3ec Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Tue, 30 Sep 2025 04:59:58 +0000
Subject: [PATCH] Initial Setup

---
 temp.php                 |   90 ++++----
 forms/_setup.php         |    0 
 users/_setup.php         |   20 +-
 taxonomies/theme.php     |   10 
 taxonomies/_setup.php    |   28 +-
 files/fileManagement.php |   52 ++--
 login/_setup.php         |    4 
 taxonomies/body-part.php |   33 +++
 content/faq.php          |   30 +++
 taxonomies/goal.php      |   29 ++
 users/enthusiast.php     |    2 
 /dev/null                |   32 ---
 taxonomies/age.php       |   29 ++
 taxonomies/timeline.php  |   27 ++
 content/progress.php     |   20 +-
 taxonomies/style.php     |    8 
 content/_setup.php       |   23 -
 alegacy.php              |   64 +++---
 dashboard/_setup.php     |    0 
 taxonomies/skin-type.php |   30 +++
 content/terms.php        |   31 +++
 users/client.php         |    2 
 22 files changed, 363 insertions(+), 201 deletions(-)

diff --git a/ajakevan.php b/alegacy.php
similarity index 71%
rename from ajakevan.php
rename to alegacy.php
index 34f71b6..cc46d58 100644
--- a/ajakevan.php
+++ b/alegacy.php
@@ -1,12 +1,12 @@
 <?php
 /*
-Plugin Name: JakeVan Extension
-Plugin URI: https://jakevan.ca/
-Description: An Extension of JakeVan Base, for jakevan.
+Plugin Name: Legacy Extension
+Plugin URI: https://legacytattooremoval.ca/
+Description: An Extension of JakeVan Base, for Legacy Tattoo Removal.
 Author: Jake Vanderwerf
 Version: 1.0.0
 Author URI: https://jakevan.ca/
-Textdomain: ajv
+Textdomain: altr
 */
 
 //PLUGIN STRUCTURE
@@ -14,29 +14,29 @@
 //      art.php
 //      design.php
 //      development.php
-//      setup.php
+//      _setup.php
 //      strategy.php
 //      writing.php
 // /dashboard/
-//      setup.php
+//      _setup.php
 // /files/
 //      fileManagement.php
 // /forms/
-//      setup.php
+//      _setup.php
 // /login/
-//      setup.php
+//      _setup.php
 // /taxonomies/
 //      city.php
 //      form.php
 //      media.php
 //      progress.php
-//      setup.php
+//      _setup.php
 //      style.php
 //      target.php
 //      theme.php
 // /users/
 //      client.php
-//      setup.php
+//      _setup.php
 // ajakevan.php     <-- main plugin file
 
 if (!defined('ABSPATH')) {
@@ -46,19 +46,19 @@
 use JVBase\managers\CacheManager;
 
 add_filter('jvb_base', function () {
-    return 'ajv_';
+    return 'altr_';
 });
 
 
-const AJV_DIR = WP_PLUGIN_DIR . '/ajakevan';
+const AJV_DIR = WP_PLUGIN_DIR . '/alegacy';
 define('AJV_URL', plugin_dir_url(__FILE__));
 
-require(AJV_DIR . '/content/setup.php');
-//require(AJV_DIR . '/dashboard/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 . '/content/_setup.php');
+//require(AJV_DIR . '/dashboard/_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 . '/files/fileManagement.php');
 
 
@@ -78,33 +78,33 @@
  *         - rewrite rules
  *         - archive title
  */
-add_filter('jvb_site', 'ajv_setup_site');
-function ajv_setup_site():array
+add_filter('jvb_site', 'altr_setup_site');
+function altr_setup_site():array
 {
     return [
         'icons'               => 'light',
-        'is_directory'        => false,        //as in, a membership directory
+        'is_directory'        => true,        //as in, a membership directory
         'has_membership'      => false,
         'has_map'             => true,
         'dashboard'           => true,
-        'support'         => true,
+        'support'         => false,
         'feed_block'      => true,
-        'email_notifications' => true,
+        'email_notifications' => false,
         'integrations'  => [
             'bluesky'     => true,
             'cloudflare'  => true,
-            'facebook'    => false,
+            'facebook'    => true,
             'maps'        => true,
             'gmb'         => true,
             'helcim'      => false,
-            'instagram'   => false,
-            'square'      => true,
+            'instagram'   => true,
+            'square'      => false,
             'umami'       => true,
         ],
         'is_restaurant'       => false,
         'limit_hours'         => false,
-        'enthusiast'          => true,
-        'favourites'          => true,    //optional flag to allow enthusiasts, but not favourites
+        'enthusiast'          => false,
+        'favourites'          => false,    //optional flag to allow enthusiasts, but not favourites
     ];
 }
 /**
@@ -117,8 +117,8 @@
  *         - term_approval              = (bool) verified users can create new terms, but needs approval
  *          - member_only              = (array) if empty, open to any registered user. otherwise an array of registered user roles
  */
-//add_filter('jvb_membership', 'ajv_setup_membership');
-//function ajv_setup_membership():array
+//add_filter('jvb_membership', 'altr_setup_membership');
+//function altr_setup_membership():array
 //{
 //    return [
 //        'member_content'  => true,
@@ -135,8 +135,8 @@
 //    ];
 //}
 //
-//add_filter('jvbLoadingQuips', 'ajv_loading_quips');
-//function ajv_loading_quips(array $quips):array
+//add_filter('jvbLoadingQuips', 'altr_loading_quips');
+//function altr_loading_quips(array $quips):array
 //{
 //    return [];
 //}
diff --git a/content/setup.php b/content/_setup.php
similarity index 75%
rename from content/setup.php
rename to content/_setup.php
index 069e0d3..604f962 100644
--- a/content/setup.php
+++ b/content/_setup.php
@@ -28,22 +28,17 @@
  *  - 'section' => (string) the slug of the section, as defined above
  */
 
-require(AJV_DIR . '/content/art.php');
-require(AJV_DIR . '/content/design.php');
-require(AJV_DIR . '/content/development.php');
-require(AJV_DIR . '/content/strategy.php');
-require(AJV_DIR . '/content/support.php');
-require(AJV_DIR . '/content/writing.php');
 
-add_filter('jvb_content', 'ajv_content');
-function ajv_content($content):array
+require(AJV_DIR . '/content/faq.php');
+require(AJV_DIR . '/content/progress.php');
+require(AJV_DIR . '/content/terms.php');
+
+add_filter('jvb_content', 'altr_content');
+function altr_content($content):array
 {
     return [
-        'design'        => ajv_design(),
-        'development'   => ajv_development(),
-        'strategy'      => ajv_strategy(),
-        'art'           => ajv_art(),
-        'writing'       => ajv_writing(),
-        'support'       => ajv_support(),
+        'faq'       => altr_faq(),
+        'progress'  => altr_progress(),
+        'terms'     => altr_terms(),
     ];
 }
\ No newline at end of file
diff --git a/content/design.php b/content/design.php
deleted file mode 100644
index a4a1fb5..0000000
--- a/content/design.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-// /content/design.php
-function ajv_design():array
-{
-    return [
-        'singular'       => 'Graphic Design',
-        'plural'       => 'Designs',
-        'hide_single'  => false,
-        'redirectToAuthor'=> false,
-        'show_feed'    => true,
-        'favouritable' => true,
-        'karma'        => false,
-        'icon'         => 'artwork',
-        'rewrite'      => [
-            'slug'       => 'design',
-            'with_front' => false,
-        ],
-        'fields'       => [
-            'post_title'     => [
-                'type'  => 'text',
-                'label' => 'Title',
-            ],
-            'featured_image' => [
-                'type'  => 'image',
-                'label' => 'Image',
-            ],
-            'gallery'        => [
-                'type'  => 'gallery',
-                'label' => 'Gallery',
-            ],
-            'price'          => [
-                'type'  => 'number',
-                'label' => 'Price',
-            ],
-            'post_content'   => [
-                'type'  => 'textarea',
-                'quill' => true,
-                'label' => 'Notes'
-            ]
-        ],
-        'single_image' => false,
-        'upload_title' => 'Upload Artwork',
-    ];
-}
diff --git a/content/development.php b/content/development.php
deleted file mode 100644
index 2067b95..0000000
--- a/content/development.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-// /content/development.php
-function ajv_development():array
-{
-    return [
-        'singular'       => 'Development',
-        'plural'       => 'Developments',
-        'hide_single'  => false,
-        'redirectToAuthor'=> false,
-        'show_feed'    => true,
-        'favouritable' => true,
-        'karma'        => false,
-        'icon'         => 'brackets-angle',
-        'rewrite'      => [
-            'slug'       => 'development',
-            'with_front' => false,
-        ],
-        'fields'       => [
-            'post_title'     => [
-                'type'  => 'text',
-                'label' => 'Title',
-            ],
-            'featured_image' => [
-                'type'  => 'image',
-                'label' => 'Image',
-            ],
-            'gallery'        => [
-                'type'  => 'gallery',
-                'label' => 'Gallery',
-            ],
-            'price'          => [
-                'type'  => 'number',
-                'label' => 'Price',
-            ],
-            'post_content'   => [
-                'type'  => 'textarea',
-                'quill' => true,
-                'label' => 'Notes'
-            ]
-        ],
-        'single_image' => false,
-        'upload_title' => 'Upload Artwork',
-    ];
-}
diff --git a/content/faq.php b/content/faq.php
new file mode 100644
index 0000000..645ed34
--- /dev/null
+++ b/content/faq.php
@@ -0,0 +1,30 @@
+<?php
+// /content/art.php
+function altr_faq():array
+{
+    return [
+        'singular'       => 'Frequently Asked Question',
+        'plural'       => 'Frequently Asked Questions',
+        'dash_description' => 'Manage your answers',
+        'breadcrumb'    => 'FAQ',
+        'hide_single'  => true,
+        'icon'         => 'question',
+        'rewrite'      => [
+            'slug'       => 'faq',
+            'with_front' => false,
+        ],
+        'fields'       => [
+            'post_title'     => [
+                'type'  => 'text',
+                'label' => 'Question',
+            ],
+            'answer'        => [
+                'type'  => 'textarea',
+                'label' => 'Answer',
+                'quill' => true,
+            ],
+        ],
+        'single_image' => false,
+        'upload_title' => 'Upload Before & Afters',
+    ];
+}
diff --git a/content/art.php b/content/progress.php
similarity index 66%
rename from content/art.php
rename to content/progress.php
index 1d308c4..e06ef9b 100644
--- a/content/art.php
+++ b/content/progress.php
@@ -1,20 +1,20 @@
 <?php
 // /content/art.php
-function ajv_art():array
+function altr_progress():array
 {
     return [
-        'singular'       => 'Art',
-        'plural'       => 'Art',
-        'dash_title'    => 'Art',
-        'dash_description' => 'Manage your art posts',
-        'breadcrumb'    => 'Art',
+        'singular'       => 'Before & After',
+        'plural'       => 'Before & Afters',
+        'dash_title'    => 'Before & Afters',
+        'dash_description' => 'Manage your before and after posts',
+        'breadcrumb'    => 'Before & Afters',
         'hide_single'  => false,
         'show_feed'    => true,
-        'favouritable' => true,
+        'favouritable' => false,
         'karma'        => false,
-        'icon'         => 'palette',
+        'icon'         => 'arrows-left-right',
         'rewrite'      => [
-            'slug'       => 'art',
+            'slug'       => 'before-and-after',
             'with_front' => false,
         ],
         'fields'       => [
@@ -41,6 +41,6 @@
             ]
         ],
         'single_image' => false,
-        'upload_title' => 'Upload Artwork',
+        'upload_title' => 'Upload Before & Afters',
     ];
 }
diff --git a/content/strategy.php b/content/strategy.php
deleted file mode 100644
index bc1092a..0000000
--- a/content/strategy.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-// /content/strategy.php
-function ajv_strategy():array
-{
-    return [
-        'singular'       => 'Strategy',
-        'plural'       => 'Strategies',
-        'hide_single'  => false,
-        'redirectToAuthor'=> false,
-        'show_feed'    => true,
-        'favouritable' => true,
-        'karma'        => false,
-        'icon'         => 'brain',
-        'rewrite'      => [
-            'slug'       => 'strategy',
-            'with_front' => false,
-        ],
-        'fields'       => [
-            'post_title'     => [
-                'type'  => 'text',
-                'label' => 'Title',
-            ],
-            'featured_image' => [
-                'type'  => 'image',
-                'label' => 'Image',
-            ],
-            'gallery'        => [
-                'type'  => 'gallery',
-                'label' => 'Gallery',
-            ],
-            'price'          => [
-                'type'  => 'number',
-                'label' => 'Price',
-            ],
-            'post_content'   => [
-                'type'  => 'textarea',
-                'quill' => true,
-                'label' => 'Notes'
-            ]
-        ],
-        'single_image' => false,
-        'upload_title' => 'Upload Artwork',
-    ];
-}
diff --git a/content/support.php b/content/support.php
deleted file mode 100644
index 3ea1c3e..0000000
--- a/content/support.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-// /content/support.php
-function ajv_support(): array
-{
-    return [
-        'singular' => 'Support',
-        'plural' => 'Support',
-        'hide_single' => false,
-        'show_feed' => false,
-        'icon' => 'question',
-        'rewrite' => [
-            'slug' => 'support',
-            'with_front' => false,
-        ],
-        'fields' => [
-            'post_title' => [
-                'type' => 'text',
-                'label' => 'Title',
-            ],
-            'post_content' => [
-                'type' => 'textarea',
-                'quill' => true,
-                'label' => 'Content'
-            ]
-        ],
-    ];
-}
\ No newline at end of file
diff --git a/content/terms.php b/content/terms.php
new file mode 100644
index 0000000..10e0e0f
--- /dev/null
+++ b/content/terms.php
@@ -0,0 +1,31 @@
+<?php
+// /content/art.php
+function altr_terms():array
+{
+    return [
+        'singular'       => 'Term',
+        'plural'       => 'Terms',
+        'dash_title'    => 'Glossary Terms',
+        'dash_description' => 'Manage your terms',
+        'breadcrumb'    => 'Glossary',
+        'hide_single'  => true,
+        'icon'         => 'asterisk',
+        'rewrite'      => [
+            'slug'       => 'glossary-of-terms',
+            'with_front' => false,
+        ],
+        'fields'       => [
+            'post_title'     => [
+                'type'  => 'text',
+                'label' => 'Title',
+            ],
+            'definition'        => [
+                'type'  => 'textarea',
+                'label' => 'Definition',
+                'quill' => true,
+            ],
+        ],
+        'single_image' => false,
+        'upload_title' => 'Upload Before & Afters',
+    ];
+}
diff --git a/content/writing.php b/content/writing.php
deleted file mode 100644
index 7039d9c..0000000
--- a/content/writing.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-// /content/writing.php
-function ajv_writing():array
-{
-    return [
-        'singular'       => 'Writing',
-        'plural'       => 'Writings',
-        'hide_single'  => false,
-        'redirectToAuthor'=> false,
-        'show_feed'    => true,
-        'favouritable' => true,
-        'karma'        => false,
-        'icon'         => 'pen-nib',
-        'rewrite'      => [
-            'slug'       => 'writing',
-            'with_front' => false,
-        ],
-        'fields'       => [
-            'post_title'     => [
-                'type'  => 'text',
-                'label' => 'Title',
-            ],
-            'featured_image' => [
-                'type'  => 'image',
-                'label' => 'Image',
-            ],
-            'gallery'        => [
-                'type'  => 'gallery',
-                'label' => 'Gallery',
-            ],
-            'price'          => [
-                'type'  => 'number',
-                'label' => 'Price',
-            ],
-            'post_content'   => [
-                'type'  => 'textarea',
-                'quill' => true,
-                'label' => 'Notes'
-            ]
-        ],
-        'single_image' => false,
-        'upload_title' => 'Upload Artwork',
-    ];
-}
diff --git a/dashboard/setup.php b/dashboard/_setup.php
similarity index 100%
rename from dashboard/setup.php
rename to dashboard/_setup.php
diff --git a/files/fileManagement.php b/files/fileManagement.php
index 312d3aa..9b20763 100644
--- a/files/fileManagement.php
+++ b/files/fileManagement.php
@@ -4,8 +4,8 @@
  * Custom upload directory structure for edmonton.ink
  * Recreates the original directory logic with shops, artists, partners, etc.
  */
-add_filter('jvb_upload_directory', 'ajv_upload_directory', 10, 4);
-function ajv_upload_directory($path, $post_type, $user_id, $term_id)
+add_filter('jvb_upload_directory', 'altr_upload_directory', 10, 4);
+function altr_upload_directory($path, $post_type, $user_id, $term_id)
 {
     switch ($post_type) {
         case 'shop':
@@ -37,8 +37,8 @@
  * Custom filename generation for edmonton.ink
  * Recreates the original SEO-friendly filename logic
  */
-add_filter('jvb_upload_filename', 'ajv_filename', 10, 6);
-function ajv_filename($filename, $original_name, $user_data, $post_type, $user_id, $term_id)
+add_filter('jvb_upload_filename', 'altr_filename', 10, 6);
+function altr_filename($filename, $original_name, $user_data, $post_type, $user_id, $term_id)
 {
     // Get artist/shop/partner details
     $post = (int)get_user_meta($user_id, BASE . 'link', true);
@@ -61,13 +61,13 @@
                 '%s-best-tattoo-shop-%s-%s',
                 sanitize_title($city),
                 sanitize_title($shop_term->name),
-                ajv_get_counter($user_id, $post_type)
+                altr_get_counter($user_id, $post_type)
             );
 
         case 'artist':
             // Profile images: {city}-best-{type}-{specialties}-{name}
             $type = jvbArtistType($post);
-            $specialties = ajv_get_artist_top_styles($post);
+            $specialties = altr_get_artist_top_styles($post);
 
             return sprintf(
                 '%s-best-%s-%s-%s-%s',
@@ -75,7 +75,7 @@
                 sanitize_title($type),
                 sanitize_title($specialties),
                 sanitize_title($user_data->display_name),
-                ajv_get_counter($user_id, $post_type)
+                altr_get_counter($user_id, $post_type)
             );
 
         case 'partner':
@@ -87,13 +87,13 @@
                 sanitize_title($city),
                 sanitize_title($service_type),
                 sanitize_title($user_data->display_name),
-                ajv_get_counter($user_id, $post_type)
+                altr_get_counter($user_id, $post_type)
             );
 
         case 'tattoo':
             // Get style and subject if available
-            $style = ajv_get_primary_taxonomy($post, BASE . 'style');
-            $subject = ajv_get_primary_taxonomy($post, BASE . 'theme');
+            $style = altr_get_primary_taxonomy($post, BASE . 'style');
+            $subject = altr_get_primary_taxonomy($post, BASE . 'theme');
 
             return sprintf(
                 '%s-%s-%s-tattoo-by-%s-%s',
@@ -101,13 +101,13 @@
                 sanitize_title($style),
                 sanitize_title($subject),
                 sanitize_title($user_data->display_name),
-                ajv_get_counter($user_id, $post_type)
+                altr_get_counter($user_id, $post_type)
             );
 
         case 'artwork':
             // Get style and subject if available
-            $style = ajv_get_primary_taxonomy($post, BASE . 'artstyle');
-            $subject = ajv_get_primary_taxonomy($post, BASE . 'arttheme');
+            $style = altr_get_primary_taxonomy($post, BASE . 'artstyle');
+            $subject = altr_get_primary_taxonomy($post, BASE . 'arttheme');
 
             return sprintf(
                 '%s-%s-%s-artwork-by-%s-%s',
@@ -115,19 +115,19 @@
                 sanitize_title($style),
                 sanitize_title($subject),
                 sanitize_title($user_data->display_name),
-                ajv_get_counter($user_id, $post_type)
+                altr_get_counter($user_id, $post_type)
             );
 
         case 'piercing':
             // Get style if available
-            $style = ajv_get_primary_taxonomy($post, BASE . 'pstyle');
+            $style = altr_get_primary_taxonomy($post, BASE . 'pstyle');
 
             return sprintf(
                 '%s-%s-piercing-by-%s-%s',
                 sanitize_title($city),
                 sanitize_title($style),
                 sanitize_title($user_data->display_name),
-                ajv_get_counter($user_id, $post_type)
+                altr_get_counter($user_id, $post_type)
             );
 
         default:
@@ -139,7 +139,7 @@
                 sanitize_title($city),
                 sanitize_title($content_type),
                 sanitize_title($user_data->display_name),
-                ajv_get_counter($user_id, $post_type)
+                altr_get_counter($user_id, $post_type)
             );
     }
 }
@@ -148,8 +148,8 @@
  * Custom alt text generation for edmonton.ink
  * Recreates the original detailed alt text logic
  */
-add_filter('jvb_upload_alt_text', 'ajv_alt_text', 10, 7);
-function ajv_alt_text($alt_text, $file, $user_data, $post_id, $post_type, $user_id, $term_id)
+add_filter('jvb_upload_alt_text', 'altr_alt_text', 10, 7);
+function altr_alt_text($alt_text, $file, $user_data, $post_id, $post_type, $user_id, $term_id)
 {
     $post = get_user_meta($user_id, BASE . 'link', true);
 
@@ -174,7 +174,7 @@
             );
 
         case 'artist':
-            $specialties = ajv_get_artist_top_styles($post);
+            $specialties = altr_get_artist_top_styles($post);
 
             return sprintf(
                 'A photo of %s %s %s, specializing in %s tattoos',
@@ -237,8 +237,8 @@
  * Custom image title generation for edmonton.ink
  * Recreates the original SEO-friendly title logic
  */
-add_filter('jvb_upload_image_title', 'ajv_image_title', 10, 7);
-function ajv_image_title($title, $file, $user_data, $post_id, $post_type, $user_id, $term_id)
+add_filter('jvb_upload_image_title', 'altr_image_title', 10, 7);
+function altr_image_title($title, $file, $user_data, $post_id, $post_type, $user_id, $term_id)
 {
     $post = get_user_meta($user_id, BASE . 'link', true);
 
@@ -342,7 +342,7 @@
 /**
  * Get the next file counter for edmonton.ink style counters
  */
-function ajv_get_counter($user_id, $post_type)
+function altr_get_counter($user_id, $post_type)
 {
     // Get counter key for this post type
     $counter_key = BASE . str_replace(BASE, '', $post_type) . '_counter';
@@ -363,7 +363,7 @@
 /**
  * Get artist's top styles for filename generation
  */
-function ajv_get_artist_top_styles($post_id)
+function altr_get_artist_top_styles($post_id)
 {
     if (!function_exists('JVBase\\meta\\MetaManager')) {
         // Fallback if MetaManager not available
@@ -403,7 +403,7 @@
 /**
  * Get primary taxonomy term for content
  */
-function ajv_get_primary_taxonomy($post_id, $taxonomy)
+function altr_get_primary_taxonomy($post_id, $taxonomy)
 {
     $terms = wp_get_post_terms($post_id, $taxonomy, array('fields' => 'names'));
     if (is_wp_error($terms) || empty($terms)) {
@@ -416,7 +416,7 @@
  * Get partner type (placeholder - implement based on your edmonton.ink logic)
  * This function was referenced in the original but not provided
  */
-function ajv_partner_type($post_id)
+function altr_partner_type($post_id)
 {
     // Implement based on your edmonton.ink logic
     // This might look at a taxonomy or meta field
diff --git a/forms/setup.php b/forms/_setup.php
similarity index 100%
rename from forms/setup.php
rename to forms/_setup.php
diff --git a/login/setup.php b/login/_setup.php
similarity index 86%
rename from login/setup.php
rename to login/_setup.php
index b2932d9..3cc76a7 100644
--- a/login/setup.php
+++ b/login/_setup.php
@@ -1,7 +1,7 @@
 <?php
 // /login/setup.php
-add_filter('jvb_login', 'ajv_setup_login');
-function ajv_setup_login():array
+add_filter('jvb_login', 'altr_setup_login');
+function altr_setup_login():array
 {
     return [
         'login_from_favourite_header' => 'Join the scene; <small>keep your collection.</small>',
diff --git a/taxonomies/setup.php b/taxonomies/_setup.php
similarity index 71%
rename from taxonomies/setup.php
rename to taxonomies/_setup.php
index fb46b2e..8979a2b 100644
--- a/taxonomies/setup.php
+++ b/taxonomies/_setup.php
@@ -20,24 +20,24 @@
  *             -> add use_in_stats (bool) to use the field in user statistics
  */
 
-require(AJV_DIR . '/taxonomies/city.php');
-require(AJV_DIR . '/taxonomies/form.php');
-require(AJV_DIR . '/taxonomies/media.php');
-require(AJV_DIR . '/taxonomies/progress.php');
+require(AJV_DIR . '/taxonomies/age.php');
+require(AJV_DIR . '/taxonomies/body-part.php');
+require(AJV_DIR . '/taxonomies/goal.php');
+require(AJV_DIR . '/taxonomies/skin-type.php');
 require(AJV_DIR . '/taxonomies/style.php');
-require(AJV_DIR . '/taxonomies/target.php');
 require(AJV_DIR . '/taxonomies/theme.php');
+require(AJV_DIR . '/taxonomies/timeline.php');
 
-//add_filter('jvb_taxonomy', 'ajv_taxonomy');
-function ajv_taxonomy():array
+add_filter('jvb_taxonomy', 'altr_taxonomy');
+function altr_taxonomy():array
 {
     return [
-        'city'      => ajv_city(),
-        'style'     => ajv_style(),
-        'theme'     => ajv_theme(),
-        'form'      => ajv_form(),
-        'medium'    => ajv_media(),
-        'target'    => ajv_target(),
-        'progress'  => ajv_progress(),
+        'age'       => altr_age(),
+        'body-part' => altr_body_part(),
+        'goal'      => altr_goal(),
+        'skin-type' => altr_skin_type(),
+        'timeline'  => altr_timeline(),
+        'style'     => altr_style(),
+        'theme'     => altr_theme(),
     ];
 }
\ No newline at end of file
diff --git a/taxonomies/age.php b/taxonomies/age.php
new file mode 100644
index 0000000..0db9ae6
--- /dev/null
+++ b/taxonomies/age.php
@@ -0,0 +1,29 @@
+<?php
+// /taxonomies/target.php
+function altr_age():array
+{
+    return [
+        'singular'     => 'Age of Tattoo',
+        'plural'       => 'Ages of Tattoo',
+        'icon'         => 'cake',
+        'show_feed'    => true,
+        'rewrite'      => [
+            'slug'         => 'age',
+            'with_front'   => false,
+            'hierarchical' => false,
+        ],
+        'hierarchical' => false,
+        'for_content'  => [
+            'progress',
+        ],
+        'fields'       => [
+            'term_name' => [
+                'label'     => 'Name',
+                'type'      => 'text',
+                'subtype'   => 'number',
+                'quickEdit' => true,
+            ],
+            'common'    => [ 'wiki' ]
+        ]
+    ];
+}
diff --git a/taxonomies/body-part.php b/taxonomies/body-part.php
new file mode 100644
index 0000000..3529009
--- /dev/null
+++ b/taxonomies/body-part.php
@@ -0,0 +1,33 @@
+<?php
+// /taxonomies/form.php
+function altr_body_part():array
+{
+    return [
+        'singular'       => 'Location',
+        'plural'         => 'Locations',
+        'description'    => [
+            'Location of the tattoo on body.'
+        ],
+        'icon'           => 'person',
+        'show_feed'      => true,
+        'show_directory' => true,
+        'approve_new'    => false,
+        'rewrite'        => [
+            'slug'       => 'location',
+            'with_front' => false,
+            'hierarchical' => true,
+        ],
+        'hierarchical'   => true,
+        'for_content'    => [
+            'progress',
+        ],
+        'fields'         => [
+            'term_name' => [
+                'label'     => 'Name',
+                'type'      => 'text',
+                'quickEdit' => true,
+            ],
+            'common'    => [ 'wiki' ]
+        ]
+    ];
+}
diff --git a/taxonomies/city.php b/taxonomies/city.php
deleted file mode 100644
index 3604bf6..0000000
--- a/taxonomies/city.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-// /taxonomies/city.php
-function ajv_city():array
-{
-    return [
-        'singular'       => 'City',
-        'plural'         => 'Cities',
-        'icon'           => 'city',
-        'description'    => [
-            'From Edmonton, yes - but also throughout Alberta.'
-        ],
-        'show_feed'      => true,
-        'show_directory' => true,
-        'approve_new'    => false,
-        'rewrite'        => [
-            'slug'         => 'in',
-            'with_front'   => false,
-            'hierarchical' => true,
-        ],
-        'hierarchical'   => true,
-        'for_content'    => [
-            'art',
-            'design',
-            'development',
-            'strategy',
-            'writing',
-        ],
-        'fields'         => [
-            'term_name' => [
-                'label'     => 'Name',
-                'type'      => 'text',
-                'quickEdit' => true,
-            ],
-            'common'    => [ 'wiki' ]
-        ]
-    ];
-}
diff --git a/taxonomies/form.php b/taxonomies/form.php
deleted file mode 100644
index 7f50b8e..0000000
--- a/taxonomies/form.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-// /taxonomies/form.php
-function ajv_form():array
-{
-    return [
-        'singular'       => 'Form',
-        'plural'         => 'Forms',
-        'description'    => [
-            'From paintings to sculptures.'
-        ],
-        'icon'           => 'shapes',
-        'show_feed'      => true,
-        'show_directory' => false,
-        'approve_new'    => false,
-        'rewrite'        => [
-            'slug'       => 'form',
-            'with_front' => false,
-        ],
-        'for_content'    => [
-            'art',
-            'design',
-        ],
-        'fields'         => [
-            'term_name' => [
-                'label'     => 'Name',
-                'type'      => 'text',
-                'quickEdit' => true,
-            ],
-            'common'    => [ 'wiki' ]
-        ]
-    ];
-}
diff --git a/taxonomies/goal.php b/taxonomies/goal.php
new file mode 100644
index 0000000..7ce9dcd
--- /dev/null
+++ b/taxonomies/goal.php
@@ -0,0 +1,29 @@
+<?php
+// /taxonomies/goal.php
+function altr_goal():array
+{
+    return [
+        'singular'       => 'Goal',
+        'plural'         => 'Goals',
+        'icon'           => 'crosshair',
+        'description'    => [
+            'Complete tattoo removal or fading for a cover up tattoo (or unknown)'
+        ],
+        'show_feed'      => true,
+        'rewrite'        => [
+            'slug'         => 'goal',
+            'with_front'   => false,
+        ],
+        'for_content'    => [
+            'progress',
+        ],
+        'fields'         => [
+            'term_name' => [
+                'label'     => 'Name',
+                'type'      => 'text',
+                'quickEdit' => true,
+            ],
+            'common'    => [ 'wiki' ]
+        ]
+    ];
+}
diff --git a/taxonomies/media.php b/taxonomies/media.php
deleted file mode 100644
index 1bf734c..0000000
--- a/taxonomies/media.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-// /taxonomies/media.php
-function ajv_media():array
-{
-    return [
-        'singular'       => 'Medium',
-        'plural'         => 'Media',
-        'description'    => [
-            '<b>What it\'s made of.</b>',
-            'From clay to oil paints'
-        ],
-        'icon'           => 'media',
-        'show_feed'      => true,
-        'show_directory' => true,
-        'approve_new'    => true,
-        'rewrite'        => [
-            'slug'         => 'media',
-            'with_front'   => false,
-            'hierarchical' => true,
-        ],
-        'hierarchical'   => true,
-        'for_content'    => [
-            'art'
-        ],
-        'fields'         => [
-            'term_name' => [
-                'label'     => 'Name',
-                'type'      => 'text',
-                'quickEdit' => true,
-            ],
-            'common'    => [ 'wiki' ]
-        ]
-    ];
-}
diff --git a/taxonomies/progress.php b/taxonomies/progress.php
deleted file mode 100644
index 6c6e290..0000000
--- a/taxonomies/progress.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-// /taxonomies/progress.php
-function ajv_progress():array
-{
-    return [
-        'singular'       => 'Progress',
-        'plural'         => 'Progress',
-        'icon'           => 'circle-notch',
-        'show_feed'      => true,
-        'show_directory' => true,
-        'approve_new'    => false,
-        'rewrite'        => [
-            'slug'         => 'progress',
-            'with_front'   => false,
-            'hierarchical' => true,
-        ],
-        'hierarchical'   => true,
-        'for_content'    => [
-            'art',
-            'design',
-            'development',
-            'strategy',
-            'writing',
-        ],
-        'fields'         => [
-            'term_name' => [
-                'label'     => 'Name',
-                'type'      => 'text',
-                'quickEdit' => true,
-            ],
-            'common'    => [ 'wiki' ]
-        ]
-    ];
-}
diff --git a/taxonomies/skin-type.php b/taxonomies/skin-type.php
new file mode 100644
index 0000000..ab7e09d
--- /dev/null
+++ b/taxonomies/skin-type.php
@@ -0,0 +1,30 @@
+<?php
+// /taxonomies/media.php
+function altr_skin_type():array
+{
+    return [
+        'singular'       => 'Skin Type',
+        'plural'         => 'Skin Types',
+        'description'    => [
+            'According to the FitzPatrick Scale (1 - 6)',
+        ],
+        'icon'           => 'dots-six',
+        'show_feed'      => true,
+        'show_directory' => true,
+        'rewrite'        => [
+            'slug'         => 'skin-type',
+            'with_front'   => false,
+        ],
+        'for_content'    => [
+            'progress'
+        ],
+        'fields'         => [
+            'term_name' => [
+                'label'     => 'Name',
+                'type'      => 'text',
+                'quickEdit' => true,
+            ],
+            'common'    => [ 'wiki' ]
+        ]
+    ];
+}
diff --git a/taxonomies/style.php b/taxonomies/style.php
index bf4475d..63a05ca 100644
--- a/taxonomies/style.php
+++ b/taxonomies/style.php
@@ -1,6 +1,6 @@
 <?php
 // /taxonomies/style.php
-function ajv_style():array
+function altr_style():array
 {
     return [
         'directory'    => 'Styles',
@@ -21,11 +21,7 @@
         ],
         'hierarchical' => true,
         'for_content'  => [
-            'art',
-            'design',
-            'development',
-            'strategy',
-            'writing',
+            'progress',
         ],
         'fields'       => [
             'term_name'       => [
diff --git a/taxonomies/target.php b/taxonomies/target.php
deleted file mode 100644
index 2fd2a07..0000000
--- a/taxonomies/target.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-// /taxonomies/target.php
-function ajv_target():array
-{
-    return [
-        'singular'     => 'Target Audience',
-        'plural'       => 'Target Audiences',
-        'icon'         => 'crosshair-simple',
-        'show_feed'    => false,
-        'rewrite'      => [
-            'slug'         => 'target',
-            'with_front'   => false,
-            'hierarchical' => true,
-        ],
-        'hierarchical' => true,
-        'for_content'  => [
-            'art',
-            'design',
-            'development',
-            'strategy',
-            'writing',
-        ],
-        'fields'       => [
-            'term_name' => [
-                'label'     => 'Name',
-                'type'      => 'text',
-                'quickEdit' => true,
-            ],
-            'common'    => [ 'wiki' ]
-        ]
-    ];
-}
diff --git a/taxonomies/theme.php b/taxonomies/theme.php
index 9c8583c..64c6807 100644
--- a/taxonomies/theme.php
+++ b/taxonomies/theme.php
@@ -1,6 +1,6 @@
 <?php
 // /taxonomies/theme.php
-function ajv_theme():array
+function altr_theme():array
 {
     return [
         'directory'    => 'Themes',
@@ -13,9 +13,7 @@
         'singular'     => 'Theme',
         'plural'       => 'Themes',
         'icon'         => 'hashtag',
-        'favouritable' => true,
         'show_feed'    => true,
-        'approve_new'  => false,
         'rewrite'      => [
             'slug'         => 'themes',
             'with_front'   => false,
@@ -23,11 +21,7 @@
         ],
         'hierarchical' => true,
         'for_content'  => [
-            'art',
-            'design',
-            'development',
-            'strategy',
-            'writing',
+            'progress',
         ],
         'fields'       => [
             'term_name'       => [
diff --git a/taxonomies/timeline.php b/taxonomies/timeline.php
new file mode 100644
index 0000000..84f6b05
--- /dev/null
+++ b/taxonomies/timeline.php
@@ -0,0 +1,27 @@
+<?php
+// /taxonomies/progress.php
+function altr_timeline():array
+{
+    return [
+        'singular'       => 'Timeline',
+        'plural'         => 'Timelines',
+        'icon'           => 'hourglass',
+        'show_feed'      => true,
+        'show_directory' => true,
+        'rewrite'        => [
+            'slug'         => 'timeline',
+            'with_front'   => false,
+        ],
+        'for_content'    => [
+            'progress',
+        ],
+        'fields'         => [
+            'term_name' => [
+                'label'     => 'Name',
+                'type'      => 'text',
+                'quickEdit' => true,
+            ],
+            'common'    => [ 'wiki' ]
+        ]
+    ];
+}
diff --git a/temp.php b/temp.php
index f2591b7..131fbc2 100644
--- a/temp.php
+++ b/temp.php
@@ -36,7 +36,7 @@
 use JVBase\managers\CacheManager;
 
 add_filter('jvb_base', function () {
-    return 'ajv_';
+    return 'altr_';
 });
 
 
@@ -68,8 +68,8 @@
  *         - rewrite rules
  *         - archive title
  */
-add_filter('jvb_site', 'ajv_setup_site');
-function ajv_setup_site(): array
+add_filter('jvb_site', 'altr_setup_site');
+function altr_setup_site(): array
 {
     return [
         'icons' => 'light',
@@ -108,8 +108,8 @@
  *         - term_approval              = (bool) verified users can create new terms, but needs approval
  *          - member_only              = (array) if empty, open to any registered user. otherwise an array of registered user roles
  */
-//add_filter('jvb_membership', 'ajv_setup_membership');
-//function ajv_setup_membership():array
+//add_filter('jvb_membership', 'altr_setup_membership');
+//function altr_setup_membership():array
 //{
 //    return [
 //        'member_content'  => true,
@@ -126,15 +126,15 @@
 //    ];
 //}
 
-add_filter('jvbLoadingQuips', 'ajv_loading_quips');
-function ajv_loading_quips(array $quips): array
+add_filter('jvbLoadingQuips', 'altr_loading_quips');
+function altr_loading_quips(array $quips): array
 {
     return [];
 }
 
 
 // /content/art.php
-function ajv_art(): array
+function altr_art(): array
 {
     return [
         'singular' => 'Art',
@@ -181,7 +181,7 @@
 
 
 // /content/design.php
-function ajv_design(): array
+function altr_design(): array
 {
     return [
         'singular' => 'Graphic Design',
@@ -226,7 +226,7 @@
 
 
 // /content/development.php
-function ajv_development(): array
+function altr_development(): array
 {
     return [
         'singular' => 'Development',
@@ -306,22 +306,22 @@
 require(AJV_DIR . '/content/support.php');
 require(AJV_DIR . '/content/writing.php');
 
-add_filter('jvb_content', 'ajv_content');
-function ajv_content($content): array
+add_filter('jvb_content', 'altr_content');
+function altr_content($content): array
 {
     return [
-        'design' => ajv_design(),
-        'development' => ajv_development(),
-        'strategy' => ajv_strategy(),
-        'art' => ajv_art(),
-        'writing' => ajv_writing(),
-        'support' => ajv_support(),
+        'design' => altr_design(),
+        'development' => altr_development(),
+        'strategy' => altr_strategy(),
+        'art' => altr_art(),
+        'writing' => altr_writing(),
+        'support' => altr_support(),
     ];
 }
 
 
 // /content/strategy.php
-function ajv_strategy(): array
+function altr_strategy(): array
 {
     return [
         'singular' => 'Strategy',
@@ -366,7 +366,7 @@
 
 
 // /content/support.php
-function ajv_support(): array
+function altr_support(): array
 {
     return [
         'singular' => 'Support',
@@ -394,7 +394,7 @@
 
 
 // /content/writing.php
-function ajv_writing(): array
+function altr_writing(): array
 {
     return [
         'singular' => 'Writing',
@@ -439,8 +439,8 @@
 
 
 // /login/setup.php
-add_filter('jvb_login', 'ajv_setup_login');
-function ajv_setup_login(): array
+add_filter('jvb_login', 'altr_setup_login');
+function altr_setup_login(): array
 {
     return [
         'login_from_favourite_header' => 'Join the scene; <small>keep your collection.</small>',
@@ -458,7 +458,7 @@
 
 
 // /taxonomies/city.php
-function ajv_city(): array
+function altr_city(): array
 {
     return [
         'singular' => 'City',
@@ -495,7 +495,7 @@
 }
 
 // /taxonomies/form.php
-function ajv_form(): array
+function altr_form(): array
 {
     return [
         'singular' => 'Form',
@@ -527,7 +527,7 @@
 }
 
 // /taxonomies/media.php
-function ajv_media(): array
+function altr_media(): array
 {
     return [
         'singular' => 'Medium',
@@ -561,7 +561,7 @@
 }
 
 // /taxonomies/progress.php
-function ajv_progress(): array
+function altr_progress(): array
 {
     return [
         'singular' => 'Progress',
@@ -623,22 +623,22 @@
 require(AJV_DIR . '/taxonomies/target.php');
 require(AJV_DIR . '/taxonomies/theme.php');
 
-add_filter('jvb_taxonomy', 'ajv_taxonomy');
-function ajv_taxonomy(): array
+add_filter('jvb_taxonomy', 'altr_taxonomy');
+function altr_taxonomy(): array
 {
     return [
-        'city' => ajv_city(),
-        'style' => ajv_style(),
-        'theme' => ajv_theme(),
-        'form' => ajv_form(),
-        'medium' => ajv_media(),
-        'target' => ajv_target(),
-        'progress' => ajv_progress(),
+        'city' => altr_city(),
+        'style' => altr_style(),
+        'theme' => altr_theme(),
+        'form' => altr_form(),
+        'medium' => altr_media(),
+        'target' => altr_target(),
+        'progress' => altr_progress(),
     ];
 }
 
 // /taxonomies/style.php
-function ajv_style(): array
+function altr_style(): array
 {
     return [
         'directory' => 'Styles',
@@ -677,7 +677,7 @@
 }
 
 // /taxonomies/target.php
-function ajv_target(): array
+function altr_target(): array
 {
     return [
         'singular' => 'Target Audience',
@@ -709,7 +709,7 @@
 }
 
 // /taxonomies/theme.php
-function ajv_theme(): array
+function altr_theme(): array
 {
     return [
         'directory' => 'Themes',
@@ -767,7 +767,7 @@
 
 
 // /users/client.php
-function ajv_user_client(): array
+function altr_user_client(): array
 {
     return [
         'label' => 'Client',
@@ -788,7 +788,7 @@
 }
 
 // /users/enthusiast.php
-function ajv_user_enthusiast(): array
+function altr_user_enthusiast(): array
 {
     return [
         'label' => 'Enthusiast',
@@ -838,12 +838,12 @@
 require(AJV_DIR . '/users/client.php');
 require(AJV_DIR . '/users/enthusiast.php');
 
-add_filter('jvb_user', 'ajv_user');
+add_filter('jvb_user', 'altr_user');
 
-function ajv_user():array
+function altr_user():array
 {
     return [
-        'enthusiast'    => ajv_user_enthusiast(),
-        'client'        => ajv_user_client(),
+        'enthusiast'    => altr_user_enthusiast(),
+        'client'        => altr_user_client(),
     ];
 }
\ No newline at end of file
diff --git a/users/setup.php b/users/_setup.php
similarity index 89%
rename from users/setup.php
rename to users/_setup.php
index 56f6490..beb2c0f 100644
--- a/users/setup.php
+++ b/users/_setup.php
@@ -25,15 +25,15 @@
  *                             -> description of the user role. Used in the registration page
  */
 
-//require(AJV_DIR . '/users/client.php');
+require(AJV_DIR . '/users/client.php');
 //require(AJV_DIR . '/users/enthusiast.php');
 
-//add_filter('jvb_user', 'ajv_user');
-//
-//function ajv_user():array
-//{
-//    return [
-////        'enthusiast'    => ajv_user_enthusiast(),
-//        'client'        => ajv_user_client(),
-//    ];
-//}
\ No newline at end of file
+add_filter('jvb_user', 'altr_user');
+function altr_user():array
+{
+    return [
+//        'enthusiast'    => altr_user_enthusiast(),
+        'client'        => altr_user_client(),
+    ];
+}
+
diff --git a/users/client.php b/users/client.php
index 9820ccb..4fae2d3 100644
--- a/users/client.php
+++ b/users/client.php
@@ -1,6 +1,6 @@
 <?php
 // /users/client.php
-function ajv_user_client():array
+function altr_user_client():array
 {
     return [
         'label'            => 'Client',
diff --git a/users/enthusiast.php b/users/enthusiast.php
index cbe165d..ee326b5 100644
--- a/users/enthusiast.php
+++ b/users/enthusiast.php
@@ -1,6 +1,6 @@
 <?php
 // /users/enthusiast.php
-function ajv_user_enthusiast():array
+function altr_user_enthusiast():array
 {
     return [
         'label'            => 'Enthusiast',

--
Gitblit v1.10.0