0

I have a content type thats is called course which has a field that is a reference to a taxonomy called category.

My specification tells to build a search where users can search for the course title, category and other fields that the course type has. The search functions like intended and everything works great except the display view. Here is my setup:

  • Drupal 8.5
  • Search Api with DB / Solr Backend. (tried both)

So to come back: each course can have multiple categorys to be in which means that the view has to be grouped by the category. If I do that my view displays this:

Category 1 Name

  • Course 1
  • Course 2

Category 1 Name, Category 2 Name

  • Course 3

Category 2 Name

  • Course 4
  • Course 5

Category 3 Name, Category 2 Name

  • Course 6

Category 3 Name

  • Course 7
  • Course 8
  • Course 9

As you can see courses that belong to multiple categorys are not listed underneath the respected category instead they are seperated by a comma. My goal is this:

Category 1 Name

  • Course 1
  • Course 2
  • Course 3

Category 2 Name

  • Course 3
  • Course 4
  • Course 5
  • Course 6

Category 3 Name

  • Course 6
  • Course 7
  • Course 8
  • Course 9

such behaivor is easy to do if you dont use search api and want just to display a normal view. I have already read this issue but it seems my goal is not possible.

I'm asking now here if something has changed or if its possible to get this done with writing custom code? Maybe tell search api to return every result and display them with custom code grouped by the categorys? Can anyone point me to the right direction?

  • Can you post sql query of view? – MrD Mar 21 '18 at 2:36
  • @MrD how do I do that? Where can I find it? – SaifDeen Mar 21 '18 at 7:37
0

Group by your Category taxonomy and select to Use rendered output to group rows, then in your Filter criteria for your taxonomy turn on autocomplete of the category terms.

Add View

  • View Settings: Show Content of type Course sorted by Newest first
  • Page Settings: Create a page selected
  • Page Display Settings: Display format Unformatted list of fields

note: you may not want to use the pager.

Edit new View

  • Advanced:
    • Relationships: add Relate nodes to taxonomy terms with Vocabularies {Taxonomy} selected and Require this relationship selected
    • Use aggregation: Selected
  • Fields: add content: ID, Content: Title, Content: {Taxonomy}
    • Content: ID: Exclude from display selected, Thousands marker: -None-
    • Content: ID Aggregation settings: Aggregation type: Count DISTINCT
    • Content: Title: Formatter Plain text and Link to the Content selected
    • Content: {Taxonomy}: Exclude from display selected
  • Format:
    • Format settings: Grouping field Nr.1 Content: {Taxonomy} and Use rendered output to group rows selected
  • Filter Criteria: add Content: Title and Content: {taxonomy}
    • Content: Title: Expose this filter to visitors, to allow them to change it selected and Operator Contains
    • Content: {Taxonomy}: Expose this filter to visitors, to allow them to change it selected and Operator Is one of
    • Content: {Taxonomy} settings: Vocabulary {Taxonomy} and Selection type Autocomplete
  • Sort Criteria: Content: {Taxonomy} (asc), Content: Title (asc), Content: Authored on (desc)

Note: the preview will not display the Grouping titles, but this dose appear on the page.

| improve this answer | |
  • I can't find the autocomplete part... can guide me? – SaifDeen Mar 21 '18 at 15:35
  • Sorry I was thinking back to 7 on the autocomplete part, 8 dose that for you. You will need the Category to be among Fields and Format should be Unformatted list with the grouping set to the Category field, remember to select Use rendered output to group rows – LittleCoding Mar 21 '18 at 17:04
  • did up a quick example on simplytest.me, select Use aggregation and adding the ID to the fields was the key. The example should be good for an hour or so. You will notice the views preview dose not display the grouping titles, but that does display on the actual page. user is admin, password is admin - dvx2.ply.st/courses – LittleCoding Mar 21 '18 at 18:32
  • updated answer with a rundown of the view settings – LittleCoding Mar 21 '18 at 19:17
  • this looks promising. I'm currently not at work to test it till monday.. but I got one more question. Does this work with facets? – SaifDeen Mar 21 '18 at 20:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.