You're going to tell me "yes, but there's CTRL + F on the browser!" Yes, but not everyone knows this combination. So I wanted to simplify it for users.
Here's how to do it:
Go to theme/hesk3/customer/knowledgebase/view-article.php
Immediately after the "help-search" div:
Code: Select all
<div class="help-search">
<?php displayKbSearch(); ?>
</div>
Code: Select all
<div id="searchBarArticle">
<div class="inputContainer">
<svg class="icon icon-search-article">
<use
xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-search"
></use>
</svg>
<input
type="text"
id="searchArticleInput"
placeholder="Rechercher dans l'article"
/>
</div>
<div id="navButtonsContainer">
<button class="navButton" id="prev">
<svg
xmlns="http://www.w3.org/2000/svg"
width="32"
height="32"
viewBox="0 0 24 24"
>
<path
fill="#ffffff"
d="m10.8 12l3.9 3.9q.275.275.275.7t-.275.7q-.275.275-.7.275t-.7-.275l-4.6-4.6q-.15-.15-.212-.325T8.425 12q0-.2.063-.375T8.7 11.3l4.6-4.6q.275-.275.7-.275t.7.275q.275.275.275.7t-.275.7z"
/>
</svg>
</button>
<button class="navButton" id="next">
<svg
xmlns="http://www.w3.org/2000/svg"
width="32"
height="32"
viewBox="0 0 24 24"
>
<path
fill="#ffffff"
d="M12.6 12L8.7 8.1q-.275-.275-.275-.7t.275-.7q.275-.275.7-.275t.7.275l4.6 4.6q.15.15.213.325t.062.375q0 .2-.062.375t-.213.325l-4.6 4.6q-.275.275-.7.275t-.7-.275q-.275-.275-.275-.7t.275-.7z"
/>
</svg>
</button>
</div>
</div>
Code: Select all
<script>
var instance = new Mark(document.querySelector("body"));
$(document).ready(function() {
$("#searchArticleInput").on("keyup", function() {
var word = $(this).val();
instance.unmark();
if (word) {
instance.mark(word);
}
});
var currentIndex = 0;
$("#next").on("click", function() {
var marks = $("mark");
if (marks.length > 0) {
currentIndex = (currentIndex + 1) % marks.length;
var currentMark = marks[currentIndex];
currentMark.scrollIntoView({
behavior: "smooth",
block: "center"
});
}
});
$("#prev").on("click", function() {
var marks = $("mark");
if (marks.length > 0) {
currentIndex = (currentIndex - 1 + marks.length) % marks.length;
var currentMark = marks[currentIndex];
currentMark.scrollIntoView({
behavior: "smooth",
block: "center"
});
}
});
});
</script>
Code: Select all
#searchArticleInput {
width: 100%;
height: 56px;
max-width: 752px;
font-size: 14px;
padding: 17px 16px 17px 56px;
margin: 8px 0;
border-color: transparent;
}
#searchBarArticle {
position: sticky;
top: 1px;
left: 0;
width: 100%;
background-color: #222f3e;
color: white;
padding: 10px;
margin-top: 5px;
box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.1);
display: flex;
flex-direction: column;
align-items: center;
z-index: 2;
}
#navButtonsContainer {
display: flex;
justify-content: center;
gap: 10px;
}
.navButton {
background-color: #10ac84;
border: none;
margin: 4px 2px;
cursor: pointer;
border-radius: 4px;
display: flex;
align-items: center;
justify-content: center;
transition: background-color 0.3s ease;
/* Ajout de transition pour une animation fluide */
}
.navButton:hover {
background-color: #0e8a6b;
/* Nouvelle couleur au survol */
}
.inputContainer {
position: relative;
width: 100%;
max-width: 752px;
}
.icon-search-article {
position: absolute;
top: 50%;
left: 24px;
transform: translateY(-50%);
width: 20px;
fill: #222f3e;
}
input::placeholder {
color: #6b7480;;
/* Couleur du texte du placeholder */
}
It's probably not very optimized code, and it could be much cleaner if I had all the skills for it, but it's functional
Don't hesitate if you need any help!
Result :

Thanks
