bireme / wordpress-themes

Themes and templates for Virtual Health Library sites published on WordPress
3 stars 8 forks source link

Criar campo de busca com múltiplos filtros #177

Closed marcioalvessilva closed 1 year ago

marcioalvessilva commented 1 year ago

Criar campo de busca com botões de seleção para: 1 - Todas as bases 2 - Base especifica da instância

ex: image

image

wilsonmoura commented 1 year ago

@marcioalvessilva ajustes realizados. Favor validar.

wilsonmoura commented 1 year ago

Segue bloco com o modelo de estrutura da caixa de pesquisa:

<?php
    $site_language = strtolower(get_bloginfo('language'));
    $lang = substr($site_language,0,2);

    if ( 'en' != $lang ) {
        $locale = get_locale();
        load_textdomain('vhl-costa-rica', get_template_directory() . '/languages/vhl-costa-rica-'. $locale . '.mo');
    }
?>

<section id="search" class="padding1" style="margin-bottom:30px;">
    <div class="container">
        <form id="formHome" method="get" action="https://pesquisa.bvsalud.org/costarica">
            <div class="row g-3">
                <div class="col-10 col-md-8 offset-md-2">
                    <input name="lang" type="hidden" value="<?php echo $lang; ?>">
                    <input name="home_url" type="hidden" value="<?php echo home_url('/'); ?>" />
                    <input name="home_text" type="hidden" value="<?php echo get_bloginfo('name'); ?>" />
                    <input name="filter[collection_costarica][]" type="hidden" id="input-filter" value="SaludCR">
                    <label for="fieldSearch" style="display: none;"><?php _e('Search', 'vhl-costa-rica'); ?></label>
                    <input type="text" id="fieldSearch" class="form-control" placeholder="<?php _e('Search', 'vhl-costa-rica'); ?>" autocomplete="off" name="q" value="<?php echo get_search_query(); ?>">
                    <div id="formText">
                        <input type="radio" name="engine" class="form-check-input" checked="checked" value="op1">
                        <label for="search-op1"> <?php _e('All databases', 'vhl-costa-rica'); ?></label>
                        <input type="radio" name="engine" class="form-check-input" value="op2">
                        <label for="search-op2"><?php _e('SaludCR - Costa Rica Health Database', 'vhl-costa-rica'); ?></label>
                    </div>
                </div>
                <div class="col-1 float-end">
                    <button type="submit" id="submitHome" class="btn btn-primary search-submit">
                        <i class="fas fa-search"></i>
                    </button>
                </div>
            </div>
        </form>
    </div>
</section>

<script type="text/javascript">
    jQuery(function($){
        $(".form-check-input").click(function () {
            var val = $(this).val();
            if ( 'op1' == val ) {
                $('#input-filter').attr('disabled', true);
            } else {
                $('#input-filter').attr('disabled', false);
            }
        });
    });
</script>
marcoslmori commented 1 year ago

Importante que ao configurar o filtro vc deve saber o nome lógico do cluster, no exemplo, da base de dados image

e nome lógico da base de dados a ser filtrada

image

Esses dados podem ser encontrados nos arquivos texts.ini ou simulando uma pesquisa filtrada

https://pesquisa.bvsalud.org/costarica/?u_filter%5B%5D=collection_costarica&u_filter%5B%5D=mj_cluster&u_filter%5B%5D=la&u_filter%5B%5D=pais_assunto&u_filter%5B%5D=year_cluster&u_filter%5B%5D=jd&fb=&lang=es&skfp=true&where=&filter%5Bcollection_costarica%5D%5B%5D=SaludCR&range_year_start=&range_year_end=

marcioalvessilva commented 1 year ago

Validado, Grato!