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 revision Previous revision
Next revision
Previous revision
plugin:tagfilter [2018-10-05 19:35]
peterfromearth
plugin:tagfilter [2020-10-14 13:43] (current)
tech@tormantil.com
Line 6: Line 6:
 email      : coder@peterfromearth.de email      : coder@peterfromearth.de
 type       : syntax,action,helper type       : syntax,action,helper
-lastupdate : 2018-10-04+lastupdate : 2020-02-19
 compatible : Greebo, "Frusterick Manners", "Elenor Of Tsort", Detritus compatible : Greebo, "Frusterick Manners", "Elenor Of Tsort", Detritus
 depends    : tag, pagelist depends    : tag, pagelist
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 using the pagelist plugin to control formatting.
  
 ===== Installation ===== ===== Installation =====
Line 32: Line 36:
  
 ===== Examples/Usage ===== ===== Examples/Usage =====
 +
 +**The Basics**
 +
 +You must have added some tags with tag categories, see 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 2 ''<nowiki>{{tag>status:start version:Angua}}</nowiki>''
 +
 +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 50: Line 74:
  
 ==== NEW TAGCOMPARE ==== ==== NEW 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.
  
   {{tagcompare>Status=status:.*=status:ready|Version=version:.*}}   {{tagcompare>Status=status:.*=status:ready|Version=version:.*}}
 +
 +[[https://drive.google.com/file/d/1Pa07W0Ez62Z-JSO2cT5y-rNdSMY05fYg/view|Example Link]]
  
 ===== Syntax ===== ===== Syntax =====
Line 66: Line 93:
     * ''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
-    * ''cache=<seconds>'' optional caching time +    * ''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''
-    * pagelist flags +    * ''pagesearch'' add an extra dropdown field at the beginning to search for the page itself. 
 +    * ''rsort'' enable revers sort of pages 
 +    * ''nolabels'' do not show labels 
 +    * ''noneonclear'' show no pages when nothing is selected 
 +    * ''excludeNs=<comma seperated list of namespaces>'' exclude specific namespaces 
 +    * ''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 
 +    * ''tagintersect'' a page needs all selected tags (//>2020-02-21//
 +    * ''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:.*''
 +    * ''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) 
 +    * [[plugin:pagelist]] flags 
  
  
Line 137: Line 175:
  
 >>I'm afraid I have to agree that the documentation needs improvement.  First you need a clear opening statement as to what the plugin does.  Then you should have a list of the options and flags with clear statements about how each works.  Then after explaining the options and flags give your examples.--- [[user>turnermm|Myron Turner]] //2015-12-18 12:39// >>I'm afraid I have to agree that the documentation needs improvement.  First you need a clear opening statement as to what the plugin does.  Then you should have a list of the options and flags with clear statements about how each works.  Then after explaining the options and flags give your examples.--- [[user>turnermm|Myron Turner]] //2015-12-18 12:39//
 +
 +>> I come back to this three years later, because of a question someone had on the forum, and I find that the documentation still is not clear enough. This looks like it could be useful but it shouldn't be a struggle to learn how to use it. For improvements I refer to my previous comment. --- [[user>turnermm|Myron Turner]] //2018-10-17 17:58//
  
 ==== Can you please provide an update for the latest DokuWiki release? ==== ==== Can you please provide an update for the latest DokuWiki release? ====
Line 198: Line 238:
  
 >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]].
 +
 +==== 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.1538760953.txt.gz · Last modified: 2018-10-05 19:35 by peterfromearth