User:Austin J. Che/Extensions/Recentchangesfilter: Difference between revisions

From OpenWetWare
Jump to navigationJump to search
No edit summary
 
No edit summary
 
(20 intermediate revisions by one other user not shown)
Line 1: Line 1:
The standard [[Special:Recentchanges]] list can be overwhelming with the number of changes. An extension to MediaWiki to allow limiting the changes list to certain pages has been written at [[Special:Recentchangeslimit]].  
==Special:Recentchanges Filtering==
The standard [[Special:Recentchanges|recent changes]] list can be overwhelming on a large site with the number of changes. This extension allows users to track a subset of changes that they are interested in and allows users to set preferences for the default filters to use when displaying the recent changes list.  


For a quick start and demo, see [[Reshma Shetty/Recent changes]] for an example of using this page.
===General Usage===
The key to using this extension is to create desired filters. A filter is used in several possible ways. The filter can be passed as parameters at the end of the URL as extra path info, e.g. '''/wiki/Special:Recentchanges/parameters'''. They can also be passed with the real script path as in  '''/index.php?title=Special:Recentchanges&filter=parameters'''. A URL created in this manner can be either bookmarked in a browser, linked from a wiki page, or directly included within another wiki page (see below).  


==Usage==
Logged in users also have the ability to set their preferences (with help from the [[../PreferencesExtension/]]). When that extension is also installed, several additional options are added under the recent changs tab of a user's preferences. The enable filtering option turns on or off default filtering. With this option off, when the recent changes page is accessed without a filter in the URL, a normal recent changes page is returned (all results). If this option is enabled, then the other options determine the behavior of the [[Special:Recentchanges]] page when accessed without a filter. The filter list is of the form <tt>[name1]filter1...;[name2]filter2...;[name3]filter3</tt> for as many filters as one would like to define. The [name] part is optional but if not specified, the default name will be the filter number. The last preference allows specifying the default filter (by number, with the first filter numbered 0). When a user access the recent changes page, the default filter will be used if no other filter is given. In addition, the page will contain easy links to switch between all the filters listed on their filter list. An empty filter will always match everything and it is probably a good idea to always include this somewhere in one's list.


Currently, there is no interface to this special page other than creating a valid URL by hand. The select criteria is passed in one of two ways. The short/easy way is to pass parameters at the end of the URL as extra path info as in <nowiki>http://openwetware.org/wiki/Special:Recentchangeslimit/parameters</nowiki>. The second method is: <nowiki>http://openwetware.org/index.php?title=Special:Recentchangeslimit&select=parameters</nowiki>. Without any selection parameters, the page should appear almost identical to the normal changes list.
===Filter Specification===


Once a URL is created, the appropriate page can be either bookmarked or included within another wiki page.
The filter is specified as a boolean statement in disjunctive normal form (groups of expressions ANDed together that are then all ORed together).  


===Selection Specification===
====Expression====


The selection criteria is specified as a boolean statement in disjunctive normal form (groups of expressions ANDed together that are then all ORed together).  
The general form for an expression is <nowiki><match type>=<match pattern></nowiki>.


====Expression====
Match types are 1 or 2 letter codes and specify how the match pattern should be used in selecting items to display in the recent changes list. The basic types and their meaning:
The general form for one expression is '''type=match'''.


Types are either 1 or 2 letter codes. Known types and their meaning:
* '''b''': titles that begin with the pattern
* '''e''': titles that end with the pattern
* '''c''': titles that contain the pattern
* '''m''': titles that match where the match expression can contain any number of the '%' character to represent a wildcard character that matches any number of charaters. This is a more general version of the b, e, and c types. Note that for URLs, you may need to encode the percent using '%25' in the URL.
* '''p''': matches the page of the given name (will always match at most one page). The page name should be given fully qualified with the namespace prefix as appropriate (e.g. as p=User:Austin). The criteria n=User^p=Austin will never match any pages because p=Austin is interpreted as being in the main namespace and no page can be in both the User and main namespaces.
* '''n''': The match pattern should be either a number corresponding to a namespace or the name of a namespace. This matches all pages that are in the given namespace. The main namespace has number 0 and doesn't have a name so you have to use the number. For other namespaces, you can use the name (e.g. 'User talk') or you can find the number by selecting the namespace in the dropdown list of the recent changes page, click go, and look at the URL to determine the namespace to number mapping. There's also a namespace called 'Special' with number -1 that includes pages like the upload log.
* '''u''': match changes that were done by the given user
* '''w''': match changes for pages on your (or whoever's currently logged in) watchlist. The match pattern is ignored so it can just be set to 1 or left off completely.


* b: titles that begin with match
All of the above types have a negated version with an extra n in front, i.e. '''nb''', '''ne''', '''nc''', etc. For example, nb=foo will match all pages that ''don't'' begin with foo.
* e: titles that end with match
* c: titles that contain match
* m: titles that match where the match expression can contain '%' character to represent a wildcard character. This is a more general version of the b, e, and c types.
* n: pages that are in the given namespace. Note that namespaces are given by numbers. Go to the normal recent changes limit, select the desired namespace, and look at the URL to determine the namespace to number mapping.


All of the above types have another type with an extra n in front, i.e. nb, ne, nc, nm, nn. These types represent the negation of the version without the n.
If no match type is specified (there is no equals sign), then the matching will be done with the default type of '''b'''.


The default if no type is specified (that is only '''match''') is type 'b'.
''Note that for the purpose of selecting pages by title patterns, it is necessary to be clear which namespace a page is in.'' For example, the page User:Austin is not a page titled User:Austin but rather a page titled Austin in the namespace User. Thus, b=User won't match this page but either b=Austin or n=User would. Pages like Knight:Contact are in the main namespace so b=Contact wouldn't match this whereas b=Knight would.


Note that for the purpose of page title matching, it is necessary to be clear whether a page is in a different namespace. For example, User:Austin is not a page titled User:Austin but rather a page titled Austin in the namespace User. Thus, b=User won't match this page but b=Austin would and ns=2 would also. Pages prefixed like Knight:Contact are not really in a different namespace but in the main namespace so this page title would actually be Knight:Contact.
====Joining Expressions====


====Joining Expressions====
'^' is used to represent AND and ',' (comma) is used to represent OR. Expressions are assumed to be in disjunctive normal form so there's an intrinsic parenthesis order (and no way to change this order). This means that all the ANDs have higher precedence than the ORs.
 
===Examples===
* Select pages that begin with Calendar: [[Special:Recentchanges/b=Calendar]] or more simply [[Special:Recentchanges/Calendar]]
* Ignore all changes made by User:Austin: [[Special:Recentchanges/nu=Austin]]
* Show changes for pages on your watchlist (in a nicer format than you can with the default watchlist): [[Special:Recentchanges/w=1]]
* Filter out all pages with a colon in them and pages not in the main namespace: [[Special:Recentchanges/n=0^nc=:]]
* Select pages that begin with either Endy or Knight and limit to the last 10 changes: [[Special:Recentchanges/Endy,Knight&limit=10]]
* Select pages that have changed in User namespace except for people's user names that end with the letter n or pages that contain the letters a, b, c in that order or that are on your watchlist  (demonstrating that you can do useless things to waste time with this extension): [[Special:Recentchanges/n=User^ne=n,m=%a%b%c%,w=1]]


'^' is used to represent AND and ',' (comma) is used to represent OR. Remember that expressions are assumed to be in disjunctive normal form so there's an intrinsic parenthesis order.
===Including within another page===
The special page can be included using the standard <nowiki>{{Special:Recentchanges/parameters)}}</nowiki> syntax. This allows including a select list of changes on a page. For example, here's a live demo showing the last 5 changes of articles in the main namespace that do not have a ':' in their name (uncategorized/general pages):{{Special:Recentchanges/n=0^nc=:&limit=5}}


===Example===
==Installation/MediaWiki compatibility==
* Select pages that begin with the Calendar: [[Special:Recentchangeslimit/b=Calendar]]
* Select pages that begin with either Endy or Knight [[Special:Recentchangeslimit/Endy,Knight]]   
* Select pages that have changed in User namespace except for people's user names that end with the letter n [[Special:Recentchangeslimit/n=2^ne=n]]   


===Including===
More than most extensions, this one depends heavily on the internals of MediaWiki. Much of the code from wfSpecialRecentchanges is directly copied into this extension and updates to MediaWiki will require the corresponding update to this code. The current version of the code has been updated to work with the version of  MediaWiki running on this wiki (version {{CURRENTVERSION}}). Older versions are also available in the source directory.
The special page can be included using the standard <nowiki>{{Special:Recentchangeslimit/parameters)}}</nowiki> syntax. This allows including a select list of changes on a page.


----
Send bugs and comments to [[Austin Che]]. Other extensions including  sources can be found at [[../]].


==Source Download==
__NOTOC__
The extension was written by [[Austin Che]] and is available for download from:
* file to put in [http://austinche.name/mediawiki/SpecialRecentchangeslimit.php.txt extensions directory]
* file to put in [http://austinche.name/mediawiki/includes/SpecialRecentchangeslimit.php.txt includes directory]


Feel free to send comments or improvements.
[[category:Extensions]]

Latest revision as of 08:38, 17 November 2007

Special:Recentchanges Filtering

The standard recent changes list can be overwhelming on a large site with the number of changes. This extension allows users to track a subset of changes that they are interested in and allows users to set preferences for the default filters to use when displaying the recent changes list.

General Usage

The key to using this extension is to create desired filters. A filter is used in several possible ways. The filter can be passed as parameters at the end of the URL as extra path info, e.g. /wiki/Special:Recentchanges/parameters. They can also be passed with the real script path as in /index.php?title=Special:Recentchanges&filter=parameters. A URL created in this manner can be either bookmarked in a browser, linked from a wiki page, or directly included within another wiki page (see below).

Logged in users also have the ability to set their preferences (with help from the PreferencesExtension). When that extension is also installed, several additional options are added under the recent changs tab of a user's preferences. The enable filtering option turns on or off default filtering. With this option off, when the recent changes page is accessed without a filter in the URL, a normal recent changes page is returned (all results). If this option is enabled, then the other options determine the behavior of the Special:Recentchanges page when accessed without a filter. The filter list is of the form [name1]filter1...;[name2]filter2...;[name3]filter3 for as many filters as one would like to define. The [name] part is optional but if not specified, the default name will be the filter number. The last preference allows specifying the default filter (by number, with the first filter numbered 0). When a user access the recent changes page, the default filter will be used if no other filter is given. In addition, the page will contain easy links to switch between all the filters listed on their filter list. An empty filter will always match everything and it is probably a good idea to always include this somewhere in one's list.

Filter Specification

The filter is specified as a boolean statement in disjunctive normal form (groups of expressions ANDed together that are then all ORed together).

Expression

The general form for an expression is <match type>=<match pattern>.

Match types are 1 or 2 letter codes and specify how the match pattern should be used in selecting items to display in the recent changes list. The basic types and their meaning:

  • b: titles that begin with the pattern
  • e: titles that end with the pattern
  • c: titles that contain the pattern
  • m: titles that match where the match expression can contain any number of the '%' character to represent a wildcard character that matches any number of charaters. This is a more general version of the b, e, and c types. Note that for URLs, you may need to encode the percent using '%25' in the URL.
  • p: matches the page of the given name (will always match at most one page). The page name should be given fully qualified with the namespace prefix as appropriate (e.g. as p=User:Austin). The criteria n=User^p=Austin will never match any pages because p=Austin is interpreted as being in the main namespace and no page can be in both the User and main namespaces.
  • n: The match pattern should be either a number corresponding to a namespace or the name of a namespace. This matches all pages that are in the given namespace. The main namespace has number 0 and doesn't have a name so you have to use the number. For other namespaces, you can use the name (e.g. 'User talk') or you can find the number by selecting the namespace in the dropdown list of the recent changes page, click go, and look at the URL to determine the namespace to number mapping. There's also a namespace called 'Special' with number -1 that includes pages like the upload log.
  • u: match changes that were done by the given user
  • w: match changes for pages on your (or whoever's currently logged in) watchlist. The match pattern is ignored so it can just be set to 1 or left off completely.

All of the above types have a negated version with an extra n in front, i.e. nb, ne, nc, etc. For example, nb=foo will match all pages that don't begin with foo.

If no match type is specified (there is no equals sign), then the matching will be done with the default type of b.

Note that for the purpose of selecting pages by title patterns, it is necessary to be clear which namespace a page is in. For example, the page User:Austin is not a page titled User:Austin but rather a page titled Austin in the namespace User. Thus, b=User won't match this page but either b=Austin or n=User would. Pages like Knight:Contact are in the main namespace so b=Contact wouldn't match this whereas b=Knight would.

Joining Expressions

'^' is used to represent AND and ',' (comma) is used to represent OR. Expressions are assumed to be in disjunctive normal form so there's an intrinsic parenthesis order (and no way to change this order). This means that all the ANDs have higher precedence than the ORs.

Examples

Including within another page

The special page can be included using the standard {{Special:Recentchanges/parameters)}} syntax. This allows including a select list of changes on a page. For example, here's a live demo showing the last 5 changes of articles in the main namespace that do not have a ':' in their name (uncategorized/general pages):

List of abbreviations:
N
This edit created a new page (also see list of new pages)
m
This is a minor edit
b
This edit was performed by a bot
(±123)
The page size changed by this number of bytes

24 April 2024

23 April 2024

     15:33  "Pick and Place" Assembly of Parts Using PDMS - Amy Lim, Rylie Costello‎‎ 6 changes history +837 [Rcostello‎ (6×)]
     
15:33 (cur | prev) +1 Rcostello talk contribs (→‎"Pick and Place" for Microfluidics)
     
15:33 (cur | prev) +203 Rcostello talk contribs (→‎References)
     
15:31 (cur | prev) −2 Rcostello talk contribs (→‎"Pick and Place" for Microfluidics)
     
15:29 (cur | prev) −474 Rcostello talk contribs (→‎References)
     
15:29 (cur | prev) +845 Rcostello talk contribs (→‎MEMS Devices)
     
15:14 (cur | prev) +264 Rcostello talk contribs (→‎"Pick and Place" for Microfluidics)
     11:58  BioMicroCenter:People‎‎ 2 changes history +30 [Lttran‎ (2×)]
     
11:58 (cur | prev) −4 Lttran talk contribs (→‎BioMicro Center Staff)
     
11:49 (cur | prev) +34 Lttran talk contribs (→‎BioMicro Center Staff)
     11:46 Upload log Lttran talk contribs uploaded File:SKR BMC.jpg

22 April 2024

     19:28  "Pick and Place" Assembly of Parts Using PDMS - Amy Lim, Rylie Costello‎‎ 4 changes history +1 [Rcostello‎ (4×)]
     
19:28 (cur | prev) −2 Rcostello talk contribs (→‎Nanowires)
     
19:26 (cur | prev) 0 Rcostello talk contribs (→‎Biology-Inspired Solution)
     
15:03 (cur | prev) +2 Rcostello talk contribs (→‎At the Microscale)
     
15:02 (cur | prev) +1 Rcostello talk contribs (→‎Overview)
     19:01  Microfluidic Sensing- Microfluidic Biosensors- Xiao Fan‎‎ 17 changes history +391 [Khiemle‎ (17×)]
     
19:01 (cur | prev) +14 Khiemle talk contribs (→‎Microfluidic immunosensors)
     
19:00 (cur | prev) +7 Khiemle talk contribs (→‎DNA-based microfluidic biosensors)
     
19:00 (cur | prev) +18 Khiemle talk contribs (→‎Microfluidic immunosensors)
     
18:59 (cur | prev) +18 Khiemle talk contribs (→‎Microfluidic immunosensors)
     
18:58 (cur | prev) −2 Khiemle talk contribs (→‎DNA-based microfluidic biosensors)
     
18:58 (cur | prev) +2 Khiemle talk contribs (→‎Enzyme-based microfluidic biosensors)
     
18:58 (cur | prev) +1 Khiemle talk contribs (→‎Enzyme-based microfluidic biosensors)
     
18:58 (cur | prev) −9 Khiemle talk contribs (→‎Enzyme-based microfluidic biosensors)
     
18:57 (cur | prev) −40 Khiemle talk contribs (→‎DNA-based microfluidic biosensors)
     
18:57 (cur | prev) +2 Khiemle talk contribs (→‎DNA-based microfluidic biosensors)
     
18:56 (cur | prev) +34 Khiemle talk contribs (→‎DNA-based microfluidic biosensors)
     
18:56 (cur | prev) +86 Khiemle talk contribs (→‎Microfluidic immunosensors)
     
18:54 (cur | prev) 0 Khiemle talk contribs (→‎Enzyme-based microfluidic biosensors)
     
18:54 (cur | prev) −10 Khiemle talk contribs (→‎Enzyme-based microfluidic biosensors)
     
18:53 (cur | prev) +108 Khiemle talk contribs (→‎Enzyme-based microfluidic biosensors)
     
18:51 (cur | prev) +84 Khiemle talk contribs (→‎DNA-based microfluidic biosensors)
     
18:49 (cur | prev) +78 Khiemle talk contribs (→‎Microfluidic biosensors)
     09:24  CHEM-ENG590E:Wiki Textbook diffhist +16 Rcostello talk contribs (→‎Chapter 15 - Other Topics)
     09:24 Move log Rcostello talk contribs moved page "Pick and Place" Assembly of Parts Using PDMS - Amy Lim to "Pick and Place" Assembly of Parts Using PDMS - Amy Lim, Rylie Costello
     08:59  "Pick and Place" Assembly of Parts Using PDMS - Amy Lim diffhist −2,792 Rcostello talk contribs (→‎"Pick and Place" for Microfluidics)

21 April 2024

19 April 2024

     21:58  Hu‎‎ 2 changes history +58 [Hugangqing‎ (2×)]
     
21:58 (cur | prev) −8 Hugangqing talk contribs
     
21:58 (cur | prev) +66 Hugangqing talk contribs

18 April 2024

     15:01  Pan:Who we are diffhist +14 Taopan talk contribs
     15:00  Pan:Methods‎‎ 2 changes history +456 [Taopan‎ (2×)]
     
15:00 (cur | prev) +2 Taopan talk contribs
     
14:59 (cur | prev) +454 Taopan talk contribs
     14:56  Pan:Publications‎‎ 2 changes history +396 [Taopan‎ (2×)]
     
14:56 (cur | prev) +74 Taopan talk contribs
     
14:54 (cur | prev) +322 Taopan talk contribs
     13:03  BioMicroCenter:Pricing diffhist +166 Challee talk contribs
     12:58  BioMicroCenter:Singular Sequencing‎‎ 2 changes history +124 [Challee‎ (2×)]
     
12:58 (cur | prev) +14 Challee talk contribs (→‎Things to Consider)
     
12:57 (cur | prev) +110 Challee talk contribs
     12:12  BioMicroCenter:Tecan Freedom Evo‎‎ 2 changes history +7 [Noelani Kamelamela‎ (2×)]
     
12:12 (cur | prev) +4 Noelani Kamelamela talk contribs
     
12:12 (cur | prev) +3 Noelani Kamelamela talk contribs
     11:42  3D Cell Culture - McLean Taggart, Emma Villares, Maximillian Marek, Scott LeBlanc, Adam Lyons and Jacob Belden diffhist −3 Sarah L. Perry talk contribs

Installation/MediaWiki compatibility

More than most extensions, this one depends heavily on the internals of MediaWiki. Much of the code from wfSpecialRecentchanges is directly copied into this extension and updates to MediaWiki will require the corresponding update to this code. The current version of the code has been updated to work with the version of MediaWiki running on this wiki (version 1.40.1). Older versions are also available in the source directory.


Send bugs and comments to Austin Che. Other extensions including sources can be found at User:Austin J. Che/Extensions.