Hi,

I replaced the default value of whensep. It is now % instead of | because | 
is used way too often in when and in template parameters. If you have any 
better suggestions, please say so.
Therefore, here comes the latest version of this plugin.

Cheers
Tiffany/TiffMaelite


Le lundi 16 février 2015 16:14:28 UTC+1, Tiffany Grenier a écrit :
>
> Hi all,
>
> I have been working on this plugin for almost two months now, and I have 
> just incorporated to it the changes with fmt  from version 4.22. I think 
> it's time I make it available to other people, even though I haven't tested 
> it for all possible cases so far, and I'm pretty sure it is not yet ready 
> to replace the current search function.
> So... what's the purpose of this? And how to use it?
>
> Let's start with a few examples of how I'm using it, before we try and 
> decipher its structure:
>
>    - <(multisearch group={p}.* if='! equal {+:cat} "date"' when='inlist 
>    {+:cat} "logement"|inlist {+:cat} "bureau"|true' 
>    template='subpageslistlog|subpageslistbur|subpageslist' count=false 
>    type=-{zones})>
>    The result of this example will be three lists, the first containing 
>    all children pages for which the data var 'cat' is different from date and 
>    contains "logement", formatted according to template "subpageslistlog"; 
>    then the second list will contain all children pages for which the data 
> var 
>    'cat' is different from date and contains "bureau", formatted according to 
>    template "subpageslistbur"; and the last list will contain all all 
> children 
>    pages for which the data var 'cat' is different from "date", including all 
>    the previous ones, formatted according to template "subpageslist".
>    Without using the "if" parameter and the "true" condition, I could 
>    also have used my function like this:
>    <(multisearch group={p}.* when='inlist {+:cat} "logement"|inlist 
>    {+:cat} "bureau"|! equal {+:cat} "date"' 
>    template='subpageslistlog|subpageslistbur|subpageslist' count=false 
>    type=-{zones})>
>    but the performances would have been a little worse because the "if" 
>    parameter is applied before the "when" is and a lot of non-matching pages 
>    (the ones for which the "cat" is equal to "date" and thus does not contain 
>    "logement" nor "bureau") would have been discarded 3 times instead of once 
>    at the beginning.
>    The displayed result will be the same as the following lines, but my 
>    function has better perfomance:
>    <(search group={p}.* if='inlist {+:cat} "logement"' 
>    template='subpageslistlog' count=false type=-{zones})>
>    <(search group={p}.* if='inlist {+:cat} "bureau"' 
>    template='subpageslistbur' count=false type=-{zones})>
>    <(search group={p}.* if='! equal {+:cat} "date"' 
>    template='subpageslist' count=false type=-{zones})>
>    - [(multisearch 
>    group=character.apc.+,character.npc.+,character.pc.+.+,character.epc.+.+ 
>    classification="{+:birthlastname}" sort="{+:birthlastname} 
>    {+:birthfirstname}" type=-{zones} fmt="[[{+p}|+]] : {+:birthlastname} 
>    {+:birthfirstname}" count=false)]
>    The result of this example will be a sequel of lists such as:
>    -
>    .... : - Abc
>    .... : - Bdf
>    A
>    ... : Aj Ncew
>    ... : Az Acmeowi
>    B
>    ... : Bpodw Ceriu
>    - [(multisearch group=character.*  if='set {+:sort}' 
>    classification={+:birthdateyear} 
>    sort={+:birthlastname},{+:birthfirstname},{+:birthmiddlenames} 
>    type=-{zones} template=listebiopersos count=false)]
>    1990
>    - Abc
>    Az Acmeowi
>    1996
>    Aj Ncew
>    Bpodw Ceriu
>    2002
>    - Bdf
>    - [(multisearch group=jeu.* when='inlist {+:cat} "logement"%inlist 
>    {+:cat} "bureau"' template='optionhome%optionwork' whensep='%' count=false 
>    type=-{zones})]
>    
>
> You can notice 3 additional parameters: "when", "whensep" and 
> "classification":
>
>    - "whensep" specifies what to consider as condition and subgroup 
>    separator in "when", "fmt" and "template". It is the symbol "|" by 
> default, 
>    but you can see I used "%" instead in the last example.
>    - "when" tells the different conditions to be met, it is like 
>    transforming the "if" from the "search" function into some kind of 
>    switch/case. For each of these conditions, you need to give a "template" 
> or 
>    an "fmt" value that will be applied to the matching pages, following the 
>    same order as the conditions', and using the same separator ("|" or the 
> one 
>    given by "whensep"). You can give condition "true" if you want a template 
>    to be applied to all pages returned by the search (it means that you don't 
>    add any condition to you search).
>    - "classification" this one can be used to regroup the pages according 
>    to a given criterion, it's like an overall ordering in which the pages 
> will 
>    be sorted according to the "sort" parameter. Right now, if the criterion 
> is 
>    alphanumeric, it will group the results by the first letter of its value; 
>    but the whole value will be taken into account if the criterion is a 
>    number. This "regrouping" is applied before the conditional introduced by 
>    "when"; is it processed in the same time as "include", "exclude", "if" and 
>    "sort" parameters.
>    
> You can see "when" as an extension of the "if" parameter from "search" and 
> "classification" as an extension of the "sort" parameter from "search", but 
> "if" and "sort" are still taken into account.
>
> As I said at the beginning of this email, there are still improvements to 
> be done, and the major changes are in the displaying part, so this could 
> probably also be applied to the other functions, such as list...
>
> Cheers,
> Tiffany
>

-- 
You received this message because you are subscribed to the Google Groups 
"BoltWire" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/boltwire.
For more options, visit https://groups.google.com/d/optout.

<<attachment: multisearch.php>>

Reply via email to