L’attuale design dà priorità agli argomenti popolari, che per loro natura tendono ad essere generali. Qualcuno che incontra un 404 sta probabilmente cercando qualcos’altro di specifico. A parte indovinare magicamente di cosa si trattasse, sembra che fornire in modo prominente una casella di ricerca sarebbe l’ideale. So che è lì in fondo, ma… è difficile da trovare.) C’è un modo semplice per riorganizzare questo?
E già che ci siamo, qualcosa che si estenda per tutta la pagina invece dell’attuale piccola casella in fondo.
Potrebbe anche essere bello pre-compilare la ricerca con qualcosa costruito dall’URL non trovato fornito. Ma non ho pensato a tutte le implicazioni di questo.
Penso che dovrebbe essere possibile nascondere il componente page-not-found-search in basso con display: none e poi inserire il codice per la casella di ricerca in alto usando i plugin outlets: Using Plugin Outlet Connectors from a Theme or Plugin
Potresti anche aggiungere del CSS per modificare la larghezza della textarea. Nota che non ho testato nulla di tutto ciò, l’ho solo provato direttamente nella console del browser.
Puoi aiutarmi a capire quale sia la presa corretta qui? Ho già usato il concetto per aggiungere del testo esplicativo alla pagina Badge, ma (deprecated) Plugin outlet locations theme component non sembra funzionare sulla pagina 404 e non riesco a capire cosa inserire nel wrapper script.
Prova ad aggiungere qualcosa di simile alla scheda Body, in un componente del tema:
<script type="text/javascript">
var x = document.getElementsByClassName("page-not-found");
var search = '<div class="page-not-found-search-top"><h2>Cerca in questo sito</h2><p></p><form action="/search" id="discourse-search"><input type="text" name="q" value=""><button class="btn btn-primary">Cerca</button></form><p></p></div>'
x.item(0).innerHTML += search
</script>
Potrebbe essere necessario apportare alcune modifiche al CSS, prova:
Funziona benissimo. È ora che lo personalizzi un po’ di più.
Modifica: Questo ha causato errori nel mio registro degli errori.
TypeError: null is not an object (evaluating 'x.item(0).innerHTML') Url: https://mysite.com/theme-javascripts/33ba1ce8896576423974ff03c875fe32931690cc.js?__ws=mysite.com Line: 2
Guardando i vecchi commit, la posizione della barra di ricerca sembra essere qualcosa che è appena successo? Ereditata da dove si trovava la ricerca di Google, che è stata aggiunta con il rilascio iniziale di Discourse.