Jump to content

Simon_S.

Newbie
  • Posts

    4
  • Joined

  • Last visited

Simon_S.'s Achievements

Explorer

Explorer (1/14)

0

Reputation

  1. Не, так форма оставалась открытой, но что бы она становилась активной, всё равно надо было жать кнопку. Я добавил в css .enhanced_search_options {display: block !important;} и в коде все "disabled" заменил на "enabled" И кусок изменил: Заработало
  2. 3d_max_9 Как ни странно, это я сделал первым делом. Не помогло. Да я бы рад, но ничего не понимаю в JS, поэтому и спрашиваю совета. Как скажете: <?php add_filter('request', 'esf_set_array_var'); function esf_set_array_var($vars) { if( empty($vars['s']) ) return $vars; if( isset($vars['cat']) && strtolower($vars['cat']) == "array" ) unset($vars['cat']); if( isset($vars['tag']) && strtolower($vars['tag']) == "array" ) unset($vars['tag']); $cat = false; if( is_array($_POST['cat']) ) $cat = array_map('intval', $_POST['cat']); elseif( is_array($_GET['cat']) ) $cat = array_map('intval', $_GET['cat']); if( $cat && !in_array(0, $cat) ) // o means all categories $vars['cat'] = implode(',', $cat); $tag = false; //var_dump($_GET['tag']);die(); if( is_array($_POST['tag']) ) $tag = $_POST['tag']; elseif( is_array($_GET['tag']) ) $tag = $_GET['tag']; if( $tag && !in_array("", $tag) ) $vars['tag'] = implode(',', $tag); return $vars; } add_filter('get_search_form', 'esf_search_form'); function esf_search_form($form) { return preg_replace('/((<\/div\s*>\s*)?<\/form\s*>)/', esf_add_form_field(true) . '\\1', $form, 1); } function esf_add_form_field($return = false) { $show_advanced_options_when_loading = is_search() //&& ( get_query_var('cat') || get_query_var('m') || get_query_var('tag') ) ; $dom_id = 'enhanced_search_options'; global $wpdb, $wp_locale; $r = ''; $r .= '<input type="button" class="enhanced_search_options_advanced_button" value="Поиск вариантов" onclick="esf_div=document.getElementById(\'' . $dom_id . '\');if(esf_div.style.display==\'none\') esf_div.style.display=\'block\';else esf_div.style.display=\'none\';document.getElementById(\'' . $dom_id . '_cat\').disabled=!document.getElementById(\'' . $dom_id . '_cat\').disabled;document.getElementById(\'' . $dom_id . '_m\').disabled=!document.getElementById(\'' . $dom_id . '_m\').disabled;esf_tag=document.getElementById(\'' . $dom_id . '_tag\');if(esf_tag) esf_tag.disabled=!esf_tag.disabled;return false;" />'; $r .= '<div class="enhanced_search_options" id="' . $dom_id . '" style="display:' . ( $show_advanced_options_when_loading ? 'block' : 'none' ) . ';">'; //categories /* $cats = wp_dropdown_categories('hierarchical=1&echo=0&show_option_all=ALL'); if( !empty($cats) ) { $r .= '<label for="' . $dom_id . '_cat">Search In Category: </label>'; $r .= str_replace("<select name='cat' id='cat'", "<select name='cat' id='" . $dom_id . "_cat'", $cats); $r .= '<br />'; } */ $current_cats = (array) preg_split('/[,\s]+/', get_query_var('cat')); $r .= '<label for="' . $dom_id . '_cat">Search In Category(s): </label>'; $r .= '<select id="' . $dom_id . '_cat" name="cat[]" value="" multiple="multiple" size="5"' . ( $show_advanced_options_when_loading ? '' : ' disabled="disabled"' ) . '>'; $cats = get_categories(); $r .= '<option value=""' . ( get_query_var('cat') ? '' : ' selected="selected"' ) . '>ALL</option>'; foreach($cats as $cat) $r .= '<option value="' . $cat->term_id . '"' . ( in_array($cat->term_id, $current_cats) ? ' selected="selected"' : '' ) . '>' . $cat->name . '</option>'; $r .= '</select><br />'; // months, part of codes from Wordpress Core code $query = "SELECT YEAR(post_date) AS `year`, MONTH(post_date) AS `month`, count(ID) as posts FROM $wpdb->posts $join $where GROUP BY YEAR(post_date), MONTH(post_date) ORDER BY post_date DESC "; $key = md5($query); $cache = wp_cache_get( 'wp_get_archives' , 'general'); if ( !isset( $cache[ $key ] ) ) { $arcresults = $wpdb->get_results($query); $cache[ $key ] = $arcresults; wp_cache_add( 'wp_get_archives', $cache, 'general' ); } else { $arcresults = $cache[ $key ]; } if($arcresults) { $r .= '<label for="' . $dom_id . '_m">Search In Month: </label>'; $r .= '<select id="' . $dom_id . '_m" name="m" value=""' . ( $show_advanced_options_when_loading ? '' : ' disabled="disabled"' ) . '>'; $r .= '<option value=""' . ( get_query_var('m') ? '' : ' selected="selected"' ) . '>ALL</option>'; foreach( (array)$arcresults as $arcresult ) { if( $arcresult->year == 0 || $arcresult->month == 0 ) continue; //I don't know why, but sometimes happen, maybe a bug. $text = sprintf(__('%1$s %2$d'), $wp_locale->get_month($arcresult->month), $arcresult->year); $r .= '<option value="' . $arcresult->year . zeroise($arcresult->month, 2) . '"' . ( get_query_var('m') == ( $arcresult->year . zeroise($arcresult->month, 2) ) ? ' selected="selected"' : '' ) . '>' . $text . '</option>'; } $r .= '</select><br />'; } //tags $tags = get_terms('post_tag', array( 'number' => 45, 'orderby' => 'count', 'order' => 'DESC' ) ); $current_tags = (array) preg_split('/[,\s]+/', get_query_var('tag')); if ( !empty( $tags ) ) { $r .= '<label for="' . $dom_id . '_tag">Поиск: </label>'; $r .= '<select multiple="multiple" size="5" id="' . $dom_id . '_tag" name="tag[]" value=""' . ( $show_advanced_options_when_loading ? '' : ' disabled="disabled"' ) . '>'; $r .= '<option value=""' . ( get_query_var('tag') ? '' : ' selected="selected"' ) . '> All </option>'; $tags_slugs = array(); foreach ( $tags as $tag ) { $r .= '<option value="' . urldecode($tag->slug) . '"' . ( in_array($tag->slug, $current_tags) ? ' selected="selected"' : '' ) . '>' . $tag->name . '</option>'; $tags_slugs[] = $tag->slug; } if( $current_tags ) { // current tag(s) should always be in search form tags list. $tt = array(); foreach($current_tags as $ct) if( $ct && !in_array($ct, $tags_slugs) ) $tt[] = $ct; if( !empty($tt) ) foreach($tt as $key=>$t) { $tx = get_term_by('slug', $t, 'post_tag'); $r .= '<option value="' . urldecode($tx->slug) . '" selected="selected">' . $tx->name . '</option>'; } } $r .= '</select>'; } $r .= '</div>'; if($return) return $r; echo $r; } ?> Для ясности: это плагин к WP, вот тут про его чуток написано
  3. А еще варианты будут?))
  4. Здравствуйте. Подсобите, пожалуйста, в следующем: как убрать onclick $r .= '<input type="button" class="enhanced_search_options_advanced_button" value="Search" onclick="esf_div=document.getElementById(\'' . $dom_id . '\');if(esf_div.style.display==\'none\') esf_div.style.display=\'block\';else esf_div.style.display=\'none\';document.getElementById(\'' . $dom_id . '_cat\').disabled=!document.getElementById(\'' . $dom_id . '_cat\').disabled;document.getElementById(\'' . $dom_id . '_m\').disabled=!document.getElementById(\'' . $dom_id . '_m\').disabled;esf_tag=document.getElementById(\'' . $dom_id . '_tag\');if(esf_tag) esf_tag.disabled=!esf_tag.disabled;return false;" />'; То бишь нужно, что бы элемент был виден всегда, а не только после нажатия на кнопку.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy