Compare commits

..

No commits in common. "main" and "js-02" have entirely different histories.
main ... js-02

1 changed files with 83 additions and 106 deletions

View File

@ -18,8 +18,9 @@
* @package Oficina_de_Suport_theme * @package Oficina_de_Suport_theme
*/ */
?> ?>
<?php <?php
if( ! function_exists( 'ofisuport_ajuts_filters_form') ) { if( ! function_exists( 'ofisuport_ajuts_filters_form' ) ):
function ofisuport_ajuts_filters_form() { function ofisuport_ajuts_filters_form() {
?> ?>
<div id="archive-filters" class="ofisuport-filters"> <div id="archive-filters" class="ofisuport-filters">
@ -46,24 +47,28 @@ if( ! function_exists( 'ofisuport_ajuts_filters_form') ) {
// check for values in url and get value if available // check for values in url and get value if available
if( isset($_GET[ $fieldname ]) ) { if( isset($_GET[ $fieldname ]) ) {
$filteredvalues['value'] = explode(',', $_GET[ $fieldname ]); $filteredvalues['value'] = explode(',', $_GET[ $fieldname ]);
} else { };
$filteredvalues['value'] = []; //end check for values in url
};
//end check for values in url
// construct the checkboxes // construct the checkboxes
if( $fieldname == $fields['name']) { if( $fieldname == $fields['name']) {
?> ?>
<section id="fund-filter fund-filter-<?php echo $fields['name']; ?>" class="<?php echo $fields['name']; ?>"> <section id="fund-filter-<?php echo $fields['name']; ?>" class="<?php echo $fields['name']; ?>">
<h5 class="oficinasuport-titol-opcions"><?php echo $fields['label'];?></h5> <h5><?php echo $fields['label'];?></h5>
<?php foreach( $fields['choices'] as $choicevalue => $choicelabel ) { ?> <?php foreach( $fields['choices'] as $choicevalue => $choicelabel ) { ?>
<div class="filter" data-filter="<?php echo $fields['name'];?>"> <div class="filter" data-filter="<?php echo $fields['name'];?>">
<input class="ofisuport-filter" type="checkbox" name="<?php echo $fields['name'];?>" <?php if( in_array( $choicevalue, $filteredvalues['value']) ) { echo 'checked'; } ?> value="<?php echo $choicevalue; ?>" /> <input
<label for="<?php echo $choicevalue; ?>"><?php echo $choicelabel;?></label> class="ofisuport-filter"
</div> type="checkbox"
<?php if( in_array($choicevalue,$filteredvalues['value']) ) { echo 'checked';}; ?>
value="<?php echo $choicevalue ?>"
name="<?php echo $fields['name'];?>" />
<label for="<?php echo $choicevalue; ?>"><?php echo $choicelabel;?></label>
</div>
<?php };//end foreach fields['choices'] ?> <?php };//end foreach fields['choices'] ?>
@ -79,94 +84,66 @@ if( ! function_exists( 'ofisuport_ajuts_filters_form') ) {
<?php }; //end if type checkbox ?> <?php }; //end if type checkbox ?>
<?php }; //end foreach groupkey field ?> <?php }; //end foreach groupkey field ?>
<?php //echo '<p><span id="filterlink"></span></p>';?> <p><b>Results:</b> <span id="results"></span></p>
<p><a id="submitfilteredlink" name="submit-ajut" class="button button-more" href="">enviar</a> </p> <button type="button" name="submit-ajut" class="button-more">enviar</button>
</form> </form>
<?php //close the form and subit ?> <?php //close the form and subit ?>
<?php }; //end if groupkey ?>
<?php }; //end if groupkey ?>
<aside id="search-form-ajuts" class="ofisuport-search-ajuts">
<?php
// search form for custom post type 'oficinasuport-ajut'
// <input type="hidden" value="ofisuport-ajut" name="post_type" id="post_type" />
// https://developer.wordpress.org/reference/functions/get_search_form/#comment-369
// https://wordpress.stackexchange.com/questions/313037/restrict-a-sear ch-to-a-custom-post-type
?>
<form class="ofisuport-search-form" role="search" method="get" action="/">
<label class="screen-reader-text" for="search">Search in ajuts</label>
<input type="search" id="search" class="search-field" placeholder="cerca amb paraula clau..." value="<?php the_search_query(); ?>" name="s" />
<input type="submit" id="searchsubmit" class="search-submit" value="cerca">
<span class="ofisuport-search-submit ofisuport-icon-search"></span>
<input type="hidden" value="ofisuport-ajut" name="post_type" id="post_type" />
</form>
</aside>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
(function($) { (function($) {
// change // change
$('#archive-filters').on('click', 'input', function(){ //$('#archive-filters').on('change', 'input[type="checkbox"]', function(){
$('#archive-filters').on('click', 'button', function(){
// vars // vars
var url = '<?php echo home_url('ajuts/'); ?>'; var url = '<?php echo home_url('ajuts/'); ?>';
args = {}; args = {};
var appendtoURL = '';
var eachfiltered = '';
var valueschecked = '';
// loop over filters // loop over filters
$('#archive-filters .filter').each(function(){ $('#archive-filters .filter').each(function(){
// check if is first appearance of each urldos = url;
if( eachfiltered != $(this).data('filter') ){ // vars
// save already calculated field=val01,val02,val03 var filteredajuts = $(this).data('filter'),
if( eachfiltered != '' && valueschecked != '' ){ vals = [],
// remove last ',' allvalueschecked = [];
valueschecked = valueschecked.slice(0, -1); // find checked inputs
appendtoURL += eachfiltered +'=' +valueschecked +'&'; $(this).find('input:checked').each(function(){
}; vals.push( $(this).val() );
// start new fieldname filtered var thisvaluechecked = $(this).val();
eachfiltered = $(this).data('filter'); urldos += filteredajuts;
// reset values });
valueschecked = '';
// find checked inputs // append to args
$(this).find('input:checked').each(function(){ args[ filteredajuts ] = vals.join(',');
// if not empty save value and , alert( filteredajuts +'=' +args[ filteredajuts ]);
if( $(this).val() != '' ){
valueschecked += $(this).val() + ',';
};
});
//alert( appendtoURL +":" +eachfiltered +"=" +valuescheked);
} else {
// we have previous values checked
// find checked inputs
//if( $(this).val() != '' ){
// if not empty append value and ,
$(this).find('input:checked').each(function(){
valueschecked += $(this).val() + ',';
});
//alert( appendtoURL +":not:" +eachfiltered +"=" +valuescheked);
//};
};
}); });
// remove last ',' // update url
valueschecked = valueschecked.slice(0, -1); url += '?';
// save last cycled filtered value already calculated field=val01,val02,val03
appendtoURL += eachfiltered +'=' +valueschecked +'&'; // loop over args
$.each(args, function( name, value ){
url += name + '=' + value + '&';
});
// remove last & // remove last &
appendtoURL = appendtoURL.slice(0, -1); url = url.slice(0, -1);
// update url // reload page
url += '?' +appendtoURL; //$('#archive-filters button').on('click', function () {
alert( "estoy en: " +url );
// show or modify the url //window.location.replace( url );
//alert( url ); //});
//$('#filterlink').text(url);
// convert a href url to new value
$('#submitfilteredlink').attr('href',url);
}); });
@ -174,6 +151,6 @@ if( ! function_exists( 'ofisuport_ajuts_filters_form') ) {
</script> </script>
<?php <?php
}; //end ofisuport_ajuts_filters_form }; //end ofisuport_display_filters()
}; // end if ! functions_exists endif; // end if ! functionexists
?> ?>