Add clear index button

This commit is contained in:
Dan 2025-02-15 06:17:05 +07:00
commit e9589b1dc2
3 changed files with 46 additions and 7 deletions

View file

@ -55,3 +55,5 @@ echo '<a href="' . site_url() .'admin/search">Back to search index</a>';
// Redir // Redir
echo '<script language="javascript">window.location.href = "' .site_url() . 'admin/search"</script>'; echo '<script language="javascript">window.location.href = "' .site_url() . 'admin/search"</script>';
?>

View file

@ -54,6 +54,26 @@
<?php endif; ?> <?php endif; ?>
<input type="hidden" name="search_index" value="<?php print_r(htmlspecialchars(json_encode($search_index)));?>"> <input type="hidden" name="search_index" value="<?php print_r(htmlspecialchars(json_encode($search_index)));?>">
</form> </form>
<?php } else { <?php } else {?>
echo count(get_blog_posts()) . ' published posts has been indexed!'; <script>
} ?> $(function() {
var data = 'content/data/search.json';
$("#clearButton").click(function(){
$.ajax({
type: 'POST',
url: '<?php echo site_url();?>admin/search',
dataType: 'json',
data: {'json': data},
success: function (response) {
alert(response.message);
location.reload();
},
});
});
});
</script>
<p><?php echo count(get_blog_posts()); ?> published posts has been indexed!</p>
<p><button class="btn btn-primary" id="clearButton">Clear Search Index</button></p>
<?php } ?>

View file

@ -1742,7 +1742,7 @@ get('/admin/search', function () {
render('search', array( render('search', array(
'title' => generate_title('is_default', i18n('Search')), 'title' => generate_title('is_default', i18n('Search')),
'heading' => i18n('Search') . ' Index', 'heading' => i18n('Search') . ' Index',
'description' => safe_html(strip_tags(blog_description())), 'description' => safe_html(strip_tags(blog_description())),
'canonical' => site_url(), 'canonical' => site_url(),
'metatags' => generate_meta(null, null), 'metatags' => generate_meta(null, null),
@ -1785,12 +1785,29 @@ get('/admin/search', function () {
} }
}); });
post('/admin/search', function () {
if (login()) {
$user = $_SESSION[site_url()]['user'];
$role = user('role', $user);
if ($role === 'editor' || $role === 'admin') {
$json = $_REQUEST['json'];
if ($json == 'content/data/search.json') {
unlink($json);
}
echo json_encode(array(
'message' => 'Search Index cleared successfully!',
));
}
}
});
post('/admin/search/reindex', function () { post('/admin/search/reindex', function () {
if (login()) { if (login()) {
$user = $_SESSION[site_url()]['user']; $user = $_SESSION[site_url()]['user'];
$role = user('role', $user); $role = user('role', $user);
$search = json_decode(htmlspecialchars_decode($_POST['search_index'])); $search = json_decode(htmlspecialchars_decode($_POST['search_index']));
config('views.root', 'system/admin/views'); config('views.root', 'system/admin/views');
if ($role === 'editor' || $role === 'admin' && config('fulltext.search') == "true") { if ($role === 'editor' || $role === 'admin' && config('fulltext.search') == "true") {
render('search-reindex', array( render('search-reindex', array(
@ -1799,12 +1816,12 @@ post('/admin/search/reindex', function () {
'canonical' => site_url(), 'canonical' => site_url(),
'metatags' => generate_meta(null, null), 'metatags' => generate_meta(null, null),
'type' => 'is_admin-search', 'type' => 'is_admin-search',
'search' => $search, 'search' => $search,
'is_admin' => true, 'is_admin' => true,
'bodyclass' => 'admin-search', 'bodyclass' => 'admin-search',
'breadcrumb' => '<a href="' . site_url() . '">' . config('breadcrumb.home') . '</a> &#187; ' . i18n('Search') 'breadcrumb' => '<a href="' . site_url() . '">' . config('breadcrumb.home') . '</a> &#187; ' . i18n('Search')
)); ));
} }
} }
}); });