DokuWiki

It's better when it's simple

User Tools

Site Tools


plugin:tagfilter

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
plugin:tagfilter [2020-02-21 20:54] peterfromearthplugin:tagfilter [2023-10-21 19:55] (current) Klap-in
Line 5: Line 5:
 author     : lisps, peterfromearth author     : lisps, peterfromearth
 email      : coder@peterfromearth.de email      : coder@peterfromearth.de
-type       : syntax,action,helper +type       : syntax,action,helper, remote 
-lastupdate : 2020-02-21 +lastupdate : 2023-10-21 
-compatible : Greebo, "Frusterick Manners""Elenor Of Tsort", Detritus+compatible : Jack Jackrum, Igor, Hogfather, Greebo, Frusterick Manners, Elenor Of Tsort, Detritus
 depends    : tag, pagelist depends    : tag, pagelist
 conflicts  conflicts 
Line 20: Line 20:
 screenshot_img : https://github.com/lisps/tagfilter/raw/master/example/example1.png screenshot_img : https://github.com/lisps/tagfilter/raw/master/example/example1.png
 ---- ----
 +
 +===== What it Does =====
 +
 +This plugin takes tags that you have added with a tag category, using the tag plugin, and allows you to filter by the category, displaying the results ...
 +
 +  * as links, using the [[plugin:pagelist]] plugin to control formatting,
 +  * or optionally rendering the pages in-place using the [[plugin:include]] plugin.
  
 ===== Installation ===== ===== Installation =====
Line 26: Line 33:
   * [[plugin:tag]]   * [[plugin:tag]]
   * [[plugin:pagelist]]   * [[plugin:pagelist]]
 +  * [[plugin:pageimage]] (optional)
 +  * [[plugin:include]] (optional)
  
 Search and install the plugin using the [[plugin:extension|Extension Manager]]. Refer to [[:Plugins]] on how to install plugins manually. Search and install the plugin using the [[plugin:extension|Extension Manager]]. Refer to [[:Plugins]] on how to install plugins manually.
  
-:!: **New code is there:** I fixed the download url, please update. 
  
 ===== Examples/Usage ===== ===== Examples/Usage =====
-Expecting you have several pages with different tags, defined by [[plugin:tag]] plugin.  + 
-In the following examples we have two pages+**The Basics** 
 + 
 +You must have added some tags with tag categoriessee the [[plugin:tag]] plugin. There are formatted as follows: 
 + 
 +<code>{{tag>category1:tag1 category2:tag2}}</code> 
 + 
 +In the following examples there are two pages tagged as follows:
   * Page 1 ''<nowiki>{{tag>status:ready version:weatherwax}}</nowiki>''   * Page 1 ''<nowiki>{{tag>status:ready version:weatherwax}}</nowiki>''
   * Page 2 ''<nowiki>{{tag>status:start version:Angua}}</nowiki>''   * Page 2 ''<nowiki>{{tag>status:start version:Angua}}</nowiki>''
 +
 +==== Tagfilter ====
 +
 +Tagfilter uses the tag categories to specify what to show as filters and you can also default the values. 
 +
 +This tag filter defaults the status to 'Ready', which is only used on Page 1, and the user can only select one value in the dropdown:
  
   {{tagfilter>Status=status:.*=status:ready|Version=version:.*&nouser&nodate}}   {{tagfilter>Status=status:.*=status:ready|Version=version:.*&nouser&nodate}}
      
 {{ https://github.com/lisps/tagfilter/raw/master/example/example1.png }} {{ https://github.com/lisps/tagfilter/raw/master/example/example1.png }}
 +
 +This tag filter defaults the status to 'Ready', which is only used on Page 1, but the user the user can only select multiple values in the dropdown:
  
   {{tagfilter>Status=status:.*=status:ready|Version=version:.*&nouser&nodate&multi}}   {{tagfilter>Status=status:.*=status:ready|Version=version:.*&nouser&nodate&multi}}
      
 {{ https://github.com/lisps/tagfilter/raw/master/example/example2.png }}   {{ https://github.com/lisps/tagfilter/raw/master/example/example2.png }}  
 +
 +This tag filter defaults the status to 'Ready', which is only used on Page 1, but uses the chosen parameter (not clear what this does):
  
   {{tagfilter>Status=status:.*=status:ready|Version=version:.*&nouser&nodate&chosen}}   {{tagfilter>Status=status:.*=status:ready|Version=version:.*&nouser&nodate&chosen}}
      
 {{ https://github.com/lisps/tagfilter/raw/master/example/example4.png }}  {{ https://github.com/lisps/tagfilter/raw/master/example/example4.png }} 
 +
 +This tag filter defaults the status to 'Ready', which is only used on Page 1, but uses the chosen (not clear what this does) and multiple parameters:
  
   {{tagfilter>Status=status:.*=status:ready|Version=version:.*&nouser&nodate&multi&chosen}}   {{tagfilter>Status=status:.*=status:ready|Version=version:.*&nouser&nodate&multi&chosen}}
Line 53: Line 79:
 {{ https://github.com/lisps/tagfilter/raw/master/example/example3.png }} {{ https://github.com/lisps/tagfilter/raw/master/example/example3.png }}
  
-==== NEW TAGCOMPARE ====+==== Tagcompare ====
 Use tagcompare to compare tags between pages.  Use tagcompare to compare tags between pages. 
 You can select the page in columns and for each tag expression there will be a row. You can select the page in columns and for each tag expression there will be a row.
Line 59: Line 85:
   {{tagcompare>Status=status:.*=status:ready|Version=version:.*}}   {{tagcompare>Status=status:.*=status:ready|Version=version:.*}}
  
 +{{:plugin:plugin:tagfilter:tagcompare.png|Example of the tagcompare}}
 [[https://drive.google.com/file/d/1Pa07W0Ez62Z-JSO2cT5y-rNdSMY05fYg/view|Example Link]] [[https://drive.google.com/file/d/1Pa07W0Ez62Z-JSO2cT5y-rNdSMY05fYg/view|Example Link]]
  
Line 73: Line 100:
     * ''multi'' enables multiselect of tags     * ''multi'' enables multiselect of tags
     * ''chosen'' enables the chosen plugin for tag searching     * ''chosen'' enables the chosen plugin for tag searching
-    * ''tagimage'' show image next to tagname in dropdown boxes. Needs ''chosen'' tag. If image is ''status:a'' image needs to be ''tags:status_a.[png|jpg|gif|jpeg]''. Namespace ''tags'' (where the images needs to be placed) is a admin setting (''nsTagImage'')+    * ''tagimage'' show image next to tagname in dropdown boxes. Needs ''chosen'' tag. If image is ''status:a'' image needs to be ''tags:status_a.[png|jpg|gif|jpeg]''. Namespace ''tags'' (where the images needs to be placed) is a admin setting (''nsTagImage''Needs the [[plugin:pageimage]] plugin.
     * ''pagesearch'' add an extra dropdown field at the beginning to search for the page itself.     * ''pagesearch'' add an extra dropdown field at the beginning to search for the page itself.
-    * ''rsort'' enable revers sort of pages+    * ''sortbypageid'' sort by page id rather than title 
 +    * ''rsort'' enable reverse sort of pages
     * ''nolabels'' do not show labels     * ''nolabels'' do not show labels
     * ''noneonclear'' show no pages when nothing is selected     * ''noneonclear'' show no pages when nothing is selected
Line 81: Line 109:
     * ''withTags=<comma seperated list of tags>'' these tags must be present on all pages     * ''withTags=<comma seperated list of tags>'' these tags must be present on all pages
     * ''excludeTags=<comma seperated list of tags>'' these tags must not be present on all pages     * ''excludeTags=<comma seperated list of tags>'' these tags must not be present on all pages
-    * ''tagintersect'' a page needs all selected tags +    * ''tagintersect'' a page needs all selected tags (//>2020-02-21//)
     * ''count'' show the numbers of found pages     * ''count'' show the numbers of found pages
     * ''tagcolumn=<tagexpr>'' show an additional column in pagelist reslut with the selected tags of the page (e.g. ''status:.*'')     * ''tagcolumn=<tagexpr>'' show an additional column in pagelist reslut with the selected tags of the page (e.g. ''status:.*'')
-    * ''tagimagecolumn=<tagexpr>=<imagenamespace>'' show an additional column in pagelist result with an image defined through the tag. (e.g. with ''&tagimagecolumn=status.*=tags'' and the page has version:example as a tag, the image tags:example.[png|jpg|gif] will be used)+    * ''tagimagecolumn=<tagexpr>=<imagenamespace>'' show an additional column in pagelist result with an image defined through the tag. (e.g. with ''&tagimagecolumn=status:.*=tags'' and the page has version:example as a tag, the image tags:example.[png|jpg|gif] will be used). Needs the [[plugin:pageimage]] plugin.
     * [[plugin:pagelist]] flags      * [[plugin:pagelist]] flags 
 +    * ''include'' or ''include=option1;option2;option3'': Use the [[plugin:include]] plugin to render the pages in-place.
  
 ===== Configuration and Settings ===== ===== Configuration and Settings =====
Line 218: Line 246:
  
 >Thanks for sharing, but your code seems bypass the ACL check, which might have security issue. The official new code's link was added in [[plugin:tagfilter#Installation| Installation]] section, which fixes the bug you mentioned to some degree, allowing you to filter tags without specifying namespace. But it still can not specify the root namespace, see [[https://github.com/lisps/tagfilter/issues/6 | this issue]]. >Thanks for sharing, but your code seems bypass the ACL check, which might have security issue. The official new code's link was added in [[plugin:tagfilter#Installation| Installation]] section, which fixes the bug you mentioned to some degree, allowing you to filter tags without specifying namespace. But it still can not specify the root namespace, see [[https://github.com/lisps/tagfilter/issues/6 | this issue]].
 +
 +--> There seems to be a problem showing filtering results for pages with id containing "_template" keyword at the end (see "Template nicht anzeigen" in helper/syntax.php), avoid using it (e.g. id=project_presentation_template or id=project_presentation_template_page won't appear, but id=project_presentation_templat2 will be present in filtering results).
 +
 +==== Terminology & Description ====
 +
 +It is confusing because you refer to tag categories and the Tag plugin also uses the word 'category' but to describe what a tag is i.e. a categorisation of a page. It would be clearer if you use the term TagGroup.
 +
 +I also suggest that you change the syntax to remove the use of colon because this looks like a reference to a namespace. However, if you were to do this one would also need a way to apply a global edit for those that have implemented with colons.
 +
 +--- [[user>lizat|Liz T]] //2020-10-14 13:41//
 +
plugin/tagfilter.1582314855.txt.gz · Last modified: 2020-02-21 20:54 by peterfromearth

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki