Jake Vanderwerf
2025-11-10 3241a281b1f854dd848156cd9ca54de0e607f08c
content/faq.php
@@ -1,14 +1,16 @@
<?php
// /content/art.php
// /content/faq.php
function altr_faq():array
{
    return [
        'singular'       => 'Frequently Asked Question',
        'plural'       => 'Frequently Asked Questions',
        'dash_description' => 'Manage your answers',
        'capability_type' => ['faq', 'faqs'],
        'breadcrumb'    => 'FAQ',
        'hide_single'  => true,
        'dash_title'    => 'FAQs',
        'icon'         => 'question',
        'rewrite_taxonomy' => 'section',
        'rewrite'      => [
            'slug'       => 'faq',
            'with_front' => false,
@@ -18,7 +20,18 @@
                'type'  => 'text',
                'label' => 'Question',
            ],
            'answer'        => [
            'post_status'         => [
                'type'      => 'radio',
                'label'     => 'Status',
                'hidden'    => true,
                'options'   => [
                    'publish'   => 'Show',
                    'draft'     => 'Hide',
                    'trash'     => 'Scrap',
                    'delete'    => 'Permanently Delete'
                ]
            ],
            'post_content'        => [
                'type'  => 'textarea',
                'label' => 'Answer',
                'quill' => true,
@@ -28,3 +41,103 @@
        'upload_title' => 'Upload Before & Afters',
    ];
}
add_action('wp_enqueue_scripts', 'nebDashScripts', 9999);
function nebDashScripts() {
    global $wp;
    $page = str_replace('dash/', '', $wp->request);
    if ($page === 'settings') {
        wp_enqueue_script('jvb-form');
        wp_enqueue_script('jvb-tabs');
        wp_enqueue_script('jvb-populate-form');
        wp_enqueue_script('jvb-copy-hours');
        wp_enqueue_script('jvb-quill');
        wp_enqueue_script('jvb-store');
        $script = 'function loadSettingsPage() {
            let tabs = new window.jvbTabs(document.querySelector(".replace"));
                  let store = new window.jvbStore({
                     name: "options",
                     endpoint: "options",
                     headers: {
                            "action_nonce": jvbSettings.dash,
                            }
                  });
                  let form = new window.jvbForm(store);
                  let forms = [ "#hours", "#menu-sections"];
                  let setForms = {};
                  forms.forEach(f => {
                      let gotF = document.querySelector(`form${f}`);
                      setForms[f] = form.registerForm(gotF);
                  });
                  form.subscribe((event, data) => {
                            switch (event) {
                                case "form-submit":
                                case "form-autosave":
                                    window.jvbQueue.addToQueue({
                                        endpoint: "options",
                                        headers: {
                                            "action_nonce": jvbSettings.dash,
                                        },
                                        data: data.changes,
                                        popup: `Saving options...`,
                                        title: "Saving Options"
                                    });
                                    break;
                            }
                        });
               }
               document.addEventListener("DOMContentLoaded", ()=>{
                       loadSettingsPage()
                    });
               ';
        $output = wp_add_inline_script('jvb-form', $script, 'after');
    } elseif ($page === 'dash') {
        wp_enqueue_script('jvb-form');
        wp_enqueue_script('jvb-store');
        $script = 'function loadDashPage() {
                let store = new window.jvbStore({
                    name: "options",
                    endpoint: "options",
                    headers: {
                        "action_nonce": jvbSettings.dash,
                    }
                });
                let form = new window.jvbForm(store);
                let forms = [ "#options"];
                let setForms = {};
                forms.forEach(f => {
                    let gotF = document.querySelector(`form${f}`);
                    setForms[f] = form.registerForm(gotF);
                });
                form.subscribe((event, data) => {
                    switch (event) {
                        case "form-submit":
                        case "form-autosave":
                            window.jvbQueue.addToQueue({
                                endpoint: "options",
                                headers: {
                                    "action_nonce": jvbSettings.dash,
                                },
                                data: data.changes,
                                popup: `Saving options...`,
                                title: "Saving Options"
                            });
                            break;
                    }
                });
            }
            document.addEventListener("DOMContentLoaded", ()=>{
               loadDashPage()
            });
            ';
//        $output = wp_add_inline_script('jvb-form', $script, 'after');
    }
}