Files
vij/search.php

255 lines
6.7 KiB
PHP
Raw Permalink Normal View History

2021-09-28 22:25:21 +03:00
<?php
/**
* The main template file.
*
*/
2022-11-11 23:49:39 +03:00
2021-09-28 22:25:21 +03:00
get_header();?>
2022-11-11 23:49:39 +03:00
<?$s = trim($s);?>
<?//if( !empty( $query ) ){
$args = array(
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => 20,
'paged' => get_query_var('paged') ?: 1
);
if ( $_GET['search_type'] == 'date_down'){
$args['order'] = 'DESC';
$args['orderby'] = 'date';
}
else if($_GET['search_type'] == 'date_up') {
$args['order'] = 'ASC';
$args['orderby'] = 'date';
}
$findtag = strpos($s, "#");
if( $findtag !== false OR $_GET['search_select'] == 'tag') {
$active_tag = True;
if ($findtag == false) {
$terms = $s;
}
else {
$terms = substr($s, 1);
}
$args['tax_query'] = [
'relation' => 'OR',
[
'taxonomy' => 'post_tag',
'field' => 'name',
'terms' => $terms
]
];
}
else {
$active_tag = false;
$args['s'] = $s;
}
if($_GET['search_date'] == 'week') {
$args['date_query'] = [
[
'after' => '1 week ago'
]
];
}
else if ($_GET['search_date'] == 'month'){
$args['date_query'] = [
[
'after' => '1 month ago'
]
];
}
else if ($_GET['search_date'] == 'year'){
$args['date_query'] = [
[
'after' => '1 year ago'
]
];
}
else if ($_GET['search_date'] == 'range'){
2021-09-28 22:25:21 +03:00
2022-11-11 23:49:39 +03:00
if (isset($_GET['search-start-date']) and $_GET['search-start-date'] !== ''){
$date1 = explode('-', $_GET['search-start-date']);
}
2022-10-30 23:47:30 +03:00
2022-11-11 23:49:39 +03:00
if (isset($_GET['search-end-date']) and $_GET['search-end-date'] !== ''){
$date2 = explode('-', $_GET['search-end-date']);
}
$args['date_query'] = [
[
array(
'after' => array(
'year' => $date1[0],
'month' => $date1[1],
'day' => $date1[13],
),
'before' => array( // до этой даты
'year' => $date2[0],
'month' => $date2[1],
'day' => $date2[2],
),
)
]
];
}
$posts = new WP_Query($args);
//}?>
2022-10-30 23:47:30 +03:00
2021-09-28 22:25:21 +03:00
<div id="content">
<h1 id="mainpage-title">Поиск:</h1>
<div id="search-form">
<form action="<?php bloginfo( 'url' ); ?>" method="get">
2022-10-30 23:47:30 +03:00
<input class="search-text" type="text" name="s" placeholder="Найти" value="<?=$s?>"/>
2021-09-28 22:25:21 +03:00
<input class="search_submit" type="submit" value="Найти"/>
2022-11-11 23:49:39 +03:00
<?if ($s !== ''):?>
2022-10-30 23:47:30 +03:00
<div class="search-result">
По запросу «<?php
2022-11-11 23:49:39 +03:00
2021-09-28 22:25:21 +03:00
$key = esc_html($s, 1);
2022-11-11 23:49:39 +03:00
$count = $posts->found_posts; _e('');
2021-09-28 22:25:21 +03:00
_e('<span class="search-terms">');
echo $key; _e('</span>» найдено ');
if ($count == 1):
echo $count . ' '; _e('результат');
else:
if ($count > 4):
echo $count . ' '; _e('результатов');
else:
echo $count . ' '; _e('результата');
endif;
2022-11-11 23:49:39 +03:00
endif;
2022-10-30 23:47:30 +03:00
//wp_reset_query(); ?>
</div>
2022-11-11 23:49:39 +03:00
<?endif?>
2022-10-30 23:47:30 +03:00
<div id="find_panel">
2022-11-11 23:49:39 +03:00
<select class="search-select search-select-type" id="search_type" name="search_type">
<option value="date_down">По дате&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="date_arrow"></span></option>
<option value="date_up" <?if($_GET['search_type'] == 'date_up'):?> selected<?endif?>>По дате&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="date_arrow">&#8593;</span></option>
2022-10-30 23:47:30 +03:00
<option value="revel" <?if($_GET['search_type'] == 'revel'):?> selected<?endif?>>По релевантности</option>
</select>
2022-11-11 23:49:39 +03:00
<select class="search-select search-select-date" id="search_date" name="search_date">
<option value="all">За все время</option>
<option value="week" <?if($_GET['search_date'] == 'week'):?> selected<?endif?>>За неделю</option>
<option value="month" <?if($_GET['search_date'] == 'month'):?> selected<?endif?>>За месяц</option>
<option value="year" <?if($_GET['search_date'] == 'year'):?> selected<?endif?>>За год</option>
<option value="range" <?if($_GET['search_date'] == 'range'):?> selected<?endif?>>За период</option>
</select>
<select class="search-select search-select-tags" id="search_select" name="search_select">
<option value="all">Все</option>
<option value="tag"<?if ($active_tag):?> selected<?endif?>>Теги</option>
</select>
2022-11-15 10:45:49 +03:00
<div id="search-calendar" style="display: <?if($_GET['search_date'] == 'range'):?>block<?else:?>none<?endif?>;">
2022-11-11 23:49:39 +03:00
<input id="search-start-date" name="search-start-date" type="date" value = "<?if (isset($_GET['search-start-date']) and $_GET['search-start-date'] !== '' ):?><?=$_GET['search-start-date']?><?else:?><?=date('Y-m-d')?><?endif?>">
-
<input id="search-end-date" name="search-end-date" value = "<?if (isset($_GET['search-end-date']) and $_GET['search-end-date'] !== ''):?><?=$_GET['search-end-date']?><?else:?><?=date('Y-m-d')?><?endif?>" type="date">
</div>
</div>
2022-10-30 23:47:30 +03:00
</form>
</div>
2022-11-11 23:49:39 +03:00
<?//print_r($posts)?>
2022-10-30 23:47:30 +03:00
2022-11-11 23:49:39 +03:00
<?php if ($s !== '' and $posts->have_posts()) :?>
2021-09-30 13:51:38 +03:00
<div class="search-card-box">
2021-09-28 22:25:21 +03:00
2022-11-11 23:49:39 +03:00
<?php while($posts->have_posts()) : $posts->the_post();?>
2021-09-28 22:25:21 +03:00
2021-09-30 13:51:38 +03:00
<div class="search-card">
<div class="search-card-title"><a href="<?the_permalink();?>"><?the_title();?></a></div>
<?if ( has_post_thumbnail() ) :?>
<img class="search-card-img" src="<?php echo get_the_post_thumbnail_url(null, 'full'); ?>" width="239" alt="<?the_title();?>">
2021-09-28 22:25:21 +03:00
<?endif?>
2021-09-30 13:51:38 +03:00
<div><?the_excerpt();?></div>
2021-09-28 22:25:21 +03:00
<div class="mini-card-body">
<div class="news_date"><?the_time('j F Y, G:i');?></div>
</div>
2021-09-30 13:51:38 +03:00
2021-09-28 22:25:21 +03:00
</div>
<?php endwhile;?>
2021-09-30 13:51:38 +03:00
</div>
2021-09-28 22:25:21 +03:00
2022-11-11 23:49:39 +03:00
<?
$GLOBALS['wp_query']->max_num_pages = $posts->max_num_pages;
get_template_part( '/blocks/paginator');?>
2021-10-10 15:16:51 +03:00
2021-09-28 22:25:21 +03:00
<?php endif;?>
2022-11-11 23:49:39 +03:00
2021-10-31 13:01:31 +03:00
<?wp_reset_postdata();?>
2021-09-28 22:25:21 +03:00
</div>
2022-11-11 23:49:39 +03:00
<?php get_footer(); ?>
<script>
var search_date_select = document.getElementById('search_date');
var data_range_panel = document.getElementById('search-calendar');
search_date_select.addEventListener('change', function() {
if (search_date_select.selectedIndex == 4) {
2022-11-15 10:45:49 +03:00
data_range_panel.style.display = 'block';
}
else {
data_range_panel.style.display = 'none';
}
2022-11-11 23:49:39 +03:00
})
</script>