| | |
| | | const AJV_DIR = WP_PLUGIN_DIR . '/ajakevan'; |
| | | define('AJV_URL', plugin_dir_url(__FILE__)); |
| | | |
| | | require(AJV_DIR . '/content/setup.php'); |
| | | require(AJV_DIR . '/blocks/_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 . '/forms/_setup.php'); |
| | | require(AJV_DIR . '/email/_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'); |
| | | require(AJV_DIR . '/seo.php'); |
| | | |
| | | |
| | | /** |
| | |
| | | { |
| | | return [ |
| | | 'icons' => 'light', |
| | | 'is_directory' => false, //as in, a membership directory |
| | | 'is_directory' => true, //as in, a membership directory |
| | | 'directory_label' => ['List', 'Lists'], |
| | | 'has_membership' => false, |
| | | 'has_map' => true, |
| | | // 'has_map' => true, |
| | | 'dashboard' => true, |
| | | 'support' => true, |
| | | 'feed_block' => true, |
| | |
| | | 'facebook' => false, |
| | | 'maps' => true, |
| | | 'gmb' => true, |
| | | 'helcim' => false, |
| | | 'helcim' => true, |
| | | 'instagram' => false, |
| | | 'square' => true, |
| | | 'square' => false, |
| | | 'umami' => true, |
| | | 'postmark' => true, |
| | | ], |
| | | 'is_restaurant' => false, |
| | | 'limit_hours' => false, |
| | | 'enthusiast' => true, |
| | | 'favourites' => true, //optional flag to allow enthusiasts, but not favourites |
| | | 'favourites' => false, //optional flag to allow enthusiasts, but not favourites |
| | | ]; |
| | | } |
| | | /** |
| | |
| | | //{ |
| | | // return []; |
| | | //} |
| | | |
| | | add_filter('jvbLoadingIcon', 'ajv_loading_icon', 999999); |
| | | function ajv_loading_icon():string |
| | | { |
| | | return 'loading'; |
| | | } |
| | | |
| | | add_filter('jvbDrawerItems', 'jvDrawerItems', 10, 2); |
| | | function jvDrawerItems(array $items, string $menuID):array |
| | | { |
| | | if ($menuID !== 'main') { |
| | | return $items; |
| | | } |
| | | $items = [ |
| | | [ |
| | | 'text' => 'About Jake', |
| | | 'url' => home_url('/about'), |
| | | 'icon' => 'user-square', |
| | | ] |
| | | ]; |
| | | foreach (JVB_CONTENT as $slug => $config) { |
| | | if (array_key_exists('public', $config) && !$config['public']) { |
| | | continue; |
| | | } |
| | | $items[] = [ |
| | | 'text' => $config['singular'], |
| | | 'url' => get_post_type_archive_link(BASE.$slug), |
| | | 'icon' => $config['icon'], |
| | | 'class' => $slug, |
| | | ]; |
| | | } |
| | | $items[] = [ |
| | | 'text' => 'Contact', |
| | | 'icon' => 'chat-teardrop', |
| | | 'url' => home_url('/contact'), |
| | | ]; |
| | | // $items[] = [ |
| | | // 'text' => 'Account', |
| | | // 'url' => home_url('/dash'), |
| | | // 'icon' => 'user-circle', |
| | | // ]; |
| | | return $items; |
| | | } |
| | | |
| | | add_filter('jvbBeforeFooter', 'ajv_acknowledgement'); |
| | | function ajv_acknowledgement():string |
| | | { |
| | | |
| | | return '<p>I live and work in 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_filter('jvbRegisterCustomIcons', 'jv_custom_icons'); |
| | | function jv_custom_icons(array $icons):array |
| | | { |
| | | $icons['logo'] = AJV_DIR . '/assets/icons/logo-concentric.svg'; |
| | | $icons['logo-jakevan'] = AJV_DIR . '/assets/icons/logo-concentric-jakevan.svg'; |
| | | $icons['logo-right'] = AJV_DIR . '/assets/icons/logo-right-aligned.svg'; |
| | | $icons['logo-right-jakevan'] = AJV_DIR . '/assets/icons/logo-right-aligned-jakevan.svg'; |
| | | $icons['jakevan'] = AJV_DIR . '/assets/icons/jakevan.svg'; |
| | | $icons['loading'] = AJV_DIR . '/assets/icons/loading.svg'; |
| | | return $icons; |
| | | } |
| | | |
| | | |
| | | |
| | | add_filter('jvbMenuExtra', 'ajv_contact_nav', 10, 3); |
| | | function ajv_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 === '') { |
| | | $text = '<li><a href="'.jvbTextLink(8258239916,'I have an idea - can you help bring it to life?').'" title="Text Me">'.jvbIcon('chat').'<span class="hide-small">825.823.9916</span></a></li>'; |
| | | $email = '<li><a href="'.jvbMailToLink( |
| | | 'get@jakevan.ca', |
| | | '[JakeVan] I have an idea - can you help bring it to life?','Be sure to as much detail as possible, including what your idea is about, when you need it done by, and budget.' |
| | | ).'" title="Email Me">'.jvbIcon('envelope').'<span class="hide-small">get@jakevan.ca</span></a></li>'; |
| | | |
| | | return $text.$email; |
| | | } |
| | | |
| | | return $nav; |
| | | } |
| | | |
| | | add_filter('jvbRandomFooterText', 'ajv_footer_text'); |
| | | function ajv_footer_text(string $text):string |
| | | { |
| | | $privacy = get_privacy_policy_url(); |
| | | $privacy = ($privacy === '') ? '' : ' | <a href="'.$privacy.'">Privacy Policy</a>'; |
| | | return '<p class="font-small">©'.date('Y').' <a href="'.get_home_url().'">'.get_bloginfo('name').'</a>'.$privacy.' | <a href="'.get_home_url(null, '/legal/terms-of-service/').'" title="Terms of Service">Terms of Service</a></p><p class="font-small">Built with ♡ by <a href="https://jakevan.ca">Jake Van</a> <small>(of course!)</small></p>'; |
| | | } |
| | | |
| | | |
| | | add_filter('jvbSummaryHeader', 'ajv_summary_header', 10, 2); |
| | | function ajv_summary_header(string $return, string $type):string |
| | | { |
| | | $extra = match($type) { |
| | | 'strategy' => 'Edmonton-focused brand', |
| | | default => 'Edmonton made' |
| | | }; |
| | | $title = ($type === 'directory') ? 'Directory' : JVB_CONTENT[$type]['singular']; |
| | | return '<small>'.$extra.'</small>'.$title.'.'; |
| | | } |
| | | |
| | | add_filter('jvbSummaryHeaderExtra', 'altr_summary_extra', 10, 2); |
| | | function altr_summary_extra(string $return, string $type):string |
| | | { |
| | | return ($type === 'directory') ? '' : '<p>Or see <a href="'.JVB()->directories()->getDirectoryList()[$type]['url'].'">alphabetical list</a>.</p>'; |
| | | } |
| | | |
| | | function ajv_render_core_post_content(array $block, string $content = ''):string |
| | | { |
| | | if(!is_singular(array_map(function($item) { return BASE.$item; }, array_keys(JVB_CONTENT)))) { |
| | | return JVB()->blocks()->render_core_post_content($block, $content); |
| | | } |
| | | $postType = jvbNoBase(get_post_type()); |
| | | $function = "ajv_render_{$postType}_content"; |
| | | $base = ''; |
| | | if (function_exists($function)) { |
| | | $base = call_user_func($function, $block, $content); |
| | | } |
| | | return $base.JVB()->blocks()->render_core_post_content($block, $content); |
| | | } |