Jake Vanderwerf
2026-05-01 48721c85ebcfa973ee81719d2467ca80e4253dc9
base/SchemaHelper.php
File was renamed from base/seo.php
@@ -295,116 +295,3 @@
      return $class;
   }
}
/**
 * JVB_SCHEMA: Site-wide schema configuration
 *
 * Structure:
 *   - business: LocalBusiness/Organization for home page
 *   - website: WebSite schema configuration
 *   - actions: PotentialAction definitions
 *   - attribution: Developer/maintainer info
 */
/**
JVB_CONTENT['artwork'] = [
   'singular' => 'Artwork',
   'plural' => 'Artworks',
   // ... other config
   'seo' => [
      'meta' => [
         'title' => '{{post_title}} by {{linked_user.display_name}} | {{site_title}}',
         'description' => '{{style.primary.name}} artwork by {{linked_user.display_name}}. {{short_bio|default:View this piece and more.}}',
         'archive_title' => 'Artwork Gallery',
         'archive_description' => 'Browse our collection of tattoo artwork and designs.',
      ],
      'schema' => [
         'type' => 'VisualArtwork',
         'mappings' => [
            'artform' => 'style.primary',           // DefinedTerm from taxonomy
            'creator' => 'linked_user',             // Person from linked user
            'image' => 'featured_image',            // ImageObject
            'artMedium' => 'medium.names:3',        // Comma-separated term names
         ],
         'overrides' => [
            'inLanguage' => 'en',
         ]
      ]
   ]
];
JVB_CONTENT['artist'] = [
   'singular' => 'Artist',
   'plural' => 'Artists',
   'seo' => [
      'meta' => [
         'title' => '{{post_title}} - {{artist_type|default:Tattoo Artist}} in {{city.primary.name|default:Edmonton}}',
         'description' => '{{short_bio|truncate:155}}',
      ],
      'schema' => [
         'type' => 'Person',
         'mappings' => [
            'image' => 'image_portrait',
            'jobTitle' => 'artist_type',
            'worksFor' => 'shop.primary',           // LocalBusiness reference
            'knowsAbout' => 'style.names',          // Array of style names
            'areaServed' => 'city.primary.name',
         ]
      ]
   ]
];
JVB_TAXONOMY['shop'] = [
   'singular' => 'Shop',
   'plural' => 'Shops',
   'seo' => [
      'meta' => [
         'title' => '{{term_name}} - Tattoo Shop in {{city.primary.name|default:Edmonton}}',
         'description' => '{{tagline|default:Visit}} {{term_name}}. {{short_bio|truncate:120}}',
      ],
      'schema' => [
         'type' => 'TattooParlor',  // or LocalBusiness
         'mappings' => [
            'address' => 'location',
            'telephone' => 'phone',
            'email' => 'email',
            'openingHoursSpecification' => 'hours',
            'image' => 'image',
            'priceRange' => 'price_range',
            'paymentAccepted' => 'payment_accepted',
         ],
         'overrides' => [
            'additionalTypeTrait' => 'https://schema.org/TattooParlor',
         ]
      ]
   ]
];
JVB_TAXONOMY['style'] = [
   'singular' => 'Style',
   'plural' => 'Styles',
   'seo' => [
      'meta' => [
         'title' => '{{term_name}} Tattoos in Edmonton | {{site_title}}',
         'description' => '{{tagline|default:Explore}} {{term_name}} tattoo artists and designs. {{characteristics|strip|truncate:100}}',
      ],
      'schema' => [
         'type' => 'DefinedTerm',
         'mappings' => [
            'alternateName' => 'alternate_name',
         ]
      ]
   ]
];
**/