joomla-extensions / weblinks

This repo is meant to hold the decoupled com_weblinks component and related code.
GNU General Public License v2.0
45 stars 88 forks source link

Weblinks Tag Filtering #482

Open modusworks opened 2 years ago

modusworks commented 2 years ago

Curious if anyone would consider adding weblink-only tag filtering to the weblinks component.

Reference websites that host scientific papers or PR releases. We have a recurring need to utilize "keywords" / tags that can return associated weblinks while excluding other tagged content (com_content, etc.). It would be ideal to have tag filtering occur on-page (similar to title filter) - without redirect to other menu item / tag component.

This is probably some work - but curious if others see likely benefit.

joomdonation commented 2 years ago

The idea is not very clear to me. Do you have an example which we can look at to understand your idea better?

modusworks commented 2 years ago

Hi,

I am not finding an exact example. But maybe I can better clarify:

  1. Assign core joomla tags to weblinks
  2. Tags appear under weblinks
  3. Click on a tag, you are give a list of ONLY weblinks with this tag.

We are looking to have a function that will automaticaly filter/block any other articles, media that may have the same tag so that when a user clicks a tag/weblink keyword that only weblinks/weblinks component is returned.

This is in theory working similar to the weblinks title filter - but clickable keyword/tag filter.

So if this function existed and I clicked a weblink tagged with "New York" - I would only be shown weblinks tagged with New York and not articles, categories, or other media.

Thanks!

joomdonation commented 2 years ago

I don't see this option implemented anywhere in Joomla, so this is something I guess we won't implement for weblinks. In your case, you might want to implement an override to tags layout to change the link to a tag inside weblinks component

Just append &types=10002 to the link to the tag and it should work as you want (10002 is weblink content type ID)

Give it a try.

rogercreagh commented 2 years ago

@joomdonation on my system (J3.10) the type_id for weblink item tags in the contentitem_tag_map table is 10075. I think the value depends on at which stage you installed the weblinks package.

Joomla com_content category list view allows you to have a tag filter on the list - either/or/both define the tag to filter by in the menu item definition or allow the user to select the tag to filter down the list.

This is a little inadequate though - it only allows a single tag, no awareness of tag heirarchy (include child tags or not) and no ability to specify logic to combine tags (any|all|none).

Joomla (3 - I can't answer for 4 cos I don't use it) doesn't make good use of the tagging system in any of the core components - it can be very powerful if extended properly. Weblinks is no exception - like the tags component it's front end views are very limited in scope

I routinely implement filter-by-tag on my components using the built in search-tools and find it useful. I've not (yet) used the weblink component itself enough to have needed it, but in general I think that filter by tag is as useful as filter by category in the search tools on almost any content type.

Currently I am using weblinks component purely for the backend admin and integrating the data into my own component with front end views I require. It would save a lot of work if the weblink component frontend views didn't only list by category but also allowed you to build lists filtered by tag.

I think the site weblinks views are legacy from the early days (?mambo? certainly pre-joomla2) when the component was bundled as a core component and tags didn't exist. They could well do with a major overhaul to make proper use of tagging (as could the core com_tags components views and many other core components IMO)

rogercreagh commented 2 years ago

@modusworks would what you are asking for be met by two new views (or modifications of existing weblinks views):

  1. list all weblinks filtered by tag, including the ability to select multiple tags (on an any | all | none basis) and include | exclude child tags of the selected tag. Would the filter be specified by admin in creating the view or user by filtering the view? Or both?
  2. list all weblinks assigned to a single tag (a simpler version of the above with no additional filtering

Presumably in both cases you want the list to show the title, description and url for the weblink, together with their category and tags for the multi-tag list. Make the display of category optional (if you are not using them) and have the tags link to the single tag view of weblinks. Presumably a weblink may have many tags assigned, hence the need for two views.