La conception actuelle privilégie les sujets populaires, qui par nature ont tendance à être généraux. Quelqu’un qui tombe sur une erreur 404 cherche probablement plutôt quelque chose de spécifique. À moins de deviner magiquement ce que c’était, il semble que fournir une boîte de recherche bien en évidence serait idéal. Je sais qu’elle est là en bas, mais… elle est plutôt difficile à trouver.) Existe-t-il un moyen simple de réorganiser cela ?
Et pendant que nous y sommes, quelque chose qui s’étend sur toute la page plutôt que la petite boîte actuelle en bas.
Il pourrait aussi être agréable de pré-remplir la recherche avec quelque chose construit à partir de l’URL non trouvée fournie. Mais je n’ai pas réfléchi à toutes les implications de cela.
Je pense que ce devrait être possible en masquant le composant page-not-found-search en bas avec un display: none puis en insérant le code de la barre de recherche en haut en utilisant les points de sortie des plugins : Using Plugin Outlet Connectors from a Theme or Plugin
Vous pourriez également ajouter du CSS pour modifier la largeur de la zone de texte. Notez que je n’ai pas vraiment testé tout cela, j’ai juste essayé directement dans la console du navigateur.
Pouvez-vous m’aider à déterminer quel est le bon point de sortie ici ? J’ai déjà utilisé le concept pour ajouter du texte explicatif à la page Badges, mais (deprecated) Plugin outlet locations theme component ne semble pas fonctionner sur la page 404 et je n’arrive pas à comprendre quoi mettre dans l’encapsuleur script.
Oui, pas de plugins dans la page 404 introuvable, cela fonctionne à merveille avec vos instructions
collez ceci dans la balise BODY :
var x = document.getElementsByClassName("page-not-found");
var search = '<h2>Rechercher sur ce site</h2><p></p><form action="/search" id="discourse-search"><input type="text" name="q" value=""><button class="btn btn-primary">Rechercher</button></form><p></p>'
x.item(0).innerHTML += search
Cela fonctionne à merveille. Il est temps pour moi de le personnaliser un peu plus.
Modification : Cela a provoqué des erreurs dans mon journal d’erreurs.
TypeError: null is not an object (evaluating 'x.item(0).innerHTML') Url: https://mysite.com/theme-javascripts/33ba1ce8896576423974ff03c875fe32931690cc.js?__ws=mysite.com Line: 2
En regardant les anciens commits, la position de la barre de recherche semble être quelque chose qui vient de se produire ? Héritée de l’endroit où se trouvait auparavant la recherche Google, qui a été ajoutée lors de la sortie initiale de Discourse.