Hallo,
gibt es eine Möglichkeit, die Suche bzw. eine News-Liste so zu erweitern, dass man nach einem Begriff (oder mehreren) suchen kann und zusätzlich noch einen Filter über eine News-Kategorie setzen kann?
Danke schonmal
Mark
Hallo,
gibt es eine Möglichkeit, die Suche bzw. eine News-Liste so zu erweitern, dass man nach einem Begriff (oder mehreren) suchen kann und zusätzlich noch einen Filter über eine News-Kategorie setzen kann?
Danke schonmal
Mark
Meinst du sowas in der Art? Das ist auch mit dem Nachrichtenmodul umgesetz
Unbenannt.JPG
ah - das wäre eine variante .... wie ist das gemacht worden?
https://packagist.org/packages/inspi...egories-search
Ist noch in der Testphase.
Die Kategorien hab ich mit codefog/contao-news_categories umgesetzt
Die Suche so:
Einmal als HTML-Inhaltselement das hier:
Dann das Modul Nachrichtenliste genommen und dort das Template news_latest.html5 angepasst:HTML-Code:<div class="search"> <input type="text" value="" placeholder="Suche Modul- oder Archivname" onkeyup="filterModule(this.value)"> </div>
HTML-Code:<div class="col-4 module-search-box" data-tags="<?= $this->headline ?>"> <div onclick="location.href='<?= $this->link ?>'" class="module-box layout_latest arc_<?= $this->archive->id ?> block<?= $this->class ?>"> <?php if ($this->hasMetaFields): ?> <p class="info"><time datetime="<?= $this->datetime ?>"><?= $this->date ?></time> <?= $this->author ?> <?= $this->commentCount ?></p> <?php endif; ?> <?php if ($this->addImage): ?> <figure class="image_container<?= $this->floatClass ?>"<?php if ($this->margin): ?> style="<?= $this->margin ?>"<?php endif; ?>> <?php if ($this->href): ?> <a href="<?= $this->href ?>"<?= $this->attributes ?> title="<?= $this->alt ?>"> <?php endif; ?> <?php $this->insert('picture_default', $this->picture); ?> <?php if ($this->href): ?> </a> <?php endif; ?> <?php if ($this->caption): ?> <figcaption class="caption"><?= $this->caption ?></figcaption> <?php endif; ?> </figure> <?php endif; ?> <h2><?= $this->linkHeadline ?></h2> <div class="teaser"> <?= $this->teaser ?> </div> </div> </div>
Das hier als Javascript hinzugefügt im Layout eingefügt:
HTML-Code:<script> function filterModule(searchString) { var moduleSearchBoxes = $('.module-search-box'); moduleSearchBoxes.each(function() { var tags = $(this).data('tags'); if (!searchString) { $(this).show(); return; } if (tags.toLowerCase().includes(searchString.toLowerCase())) { $(this).show(); } else { $(this).hide(); } }); // Überschriften ausblenden $('.modules h2').each(function() { $(this).show(); }); $('.modules .row').each(function(index) { var a = $('.module-search-box:visible', this); if (a.length != 0) { return; } $('.modules h2').each(function(index2) { if (index2 == index) { $(this).hide(); } }) }); } </script>
mh, weil ich es nicht finde, wenn ich contao-news-categories-search sucheNein, ganz normal mit composer/Contao Manager. Version "dev-master".
ach klar, stimmt .... danke
Ich hab nun einen Beta Release gemacht, damit kann die Extension dann auch über den Contao Manager gefunden werden (spätestens in 30 Minuten, glaube ich). Als Versionsangabe nimmt man dann "^1.0@beta".
Mh, habs noch nicht verstanden bei der Anpassung:
das wird doch aber bei der Auflistung der Suchergebnisse nicht verwendet, oder?Dann das Modul Nachrichtenliste genommen und dort das Template news_latest.html5 angepasst:
und das hier:
direkt über dem ModulHTML-Code:<div class="search"> <input type="text" value="" placeholder="Suche Modul- oder Archivname" onkeyup="filterModule(this.value)"> </div>
### SUCHMASCHINE ###
Search
einfügen?
Die Suche durchsucht ja Vollseiten, die Kategorien der News spielen in der Auflistung der News-Vollseiten doch keine Rolle, werden auch nicht in der Ausgabe als Attribute oder so mit eingebunden.
Oder sehe ich das falsch?
Geändert von Mark Knochen (13.05.2020 um 14:56 Uhr)
Das Javascript filtert die Suchergebnisse, das funktioniert nur mit denen, die gerade auch angezeigt werden, also eine Paginierung der Suchergebnisse würde damit nicht machbar sein, oder?
Bitte benutze Quotes oder schreibe @hinzke, damit man weiß, wem du antwortest. Der Approach von hinzke ist eine Filterung der Newsliste per Javascript.
Ach stimmt, das hab ich total übersehen
Hab das Modul ausprobiert, es ist total super .... kann man noch erreichen, dass bei den News dann auch das Datum der Nachricht in den Suchergebnissen anzeigt wird?
Im Such Template könntest du folgendes machen:PHP-Code:
if ($this->newsId && null !== ($news = \Contao\NewsModel::findById($this->newsId))) {
// …
}
Dann könnte man das Formular noch erweitern, indem man ein Sortierbefehl mitgibt ... das sollte machbar sein.
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)