Page MenuHomePhabricator

new constructs in template syntax
Closed, ResolvedPublic

Description

Author: gangleri

Description:
Halló!

For
http://jadesukka.homelinux.org:8180/betawiki/Betawiki:Templates/Template:Task
some documentation is available at
http://jadesukka.homelinux.org:8180/betawiki/Project:Templates/Template:Task/description#documentation

The template includes several enhancements for [[en:Template:To do]] but due to
the lack of requested extensions is using around 170 objects. It is vanity to
create a template which reverts all language localisations.

This attempt shows that at the moment it is possible to make some programming
with the existing features in MediaWiki. It does not make sense to be
excessively restrictive regarding programming because of vandalism and should
focus on providing simpler solutions to what is available anyhow at this moment.

Developers should not tray to solve all requests alone. An intermediate platform
(based on settings, templates and roles) should be available too.

I did run into a problem regarding priority managment for "template:task" which
supports priority handling. It is stored in a extra page ".../to do/priority"
and supports 5 values. Unfortunately this "atribute" MUST be specified before
being able to continue. It would make sense to use a construct "IFEXISTS page"
in templates. Only if a page exists actions could be performed display / hide
the "output".

A simple example would be to add a link to an archive of tasks performed already.

Bug 233 relates to this because it is a kind of "IFEXISTS pages LIKE
'{{NAMESPACE}}:{{PAGENAME}}/%'" (% in MySQL).

IFEXISTS <object> should relate also to parameters of a template. This way
parameters could be optional to that respect that the number of trailing | would
NOT be mandatory.

In order not to interfeare with existing templates IFEXISTS <object> would
return TRUE for EMPTY parameters.

It is not my intention to provide a specification but to encourage taughts about
this. Another question would be how long it takes to implement after procedures
about status asigned etc. passed.

Best regards Reinhardt [[user:gangleri]]


Version: unspecified
Severity: enhancement
URL: http://jadesukka.homelinux.org:8180/betawiki/Betawiki:Templates/Template:Task

Details

Reference
bz2299

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 21 2014, 8:34 PM
bzimport set Reference to bz2299.
bzimport added a subscriber: Unknown Object (MLST).

gangleri wrote:

This seams to relate to bug 364 and [[meta:Extended template syntax]].
Can anybody provide status information?

avarab wrote:

Would anyone care to provide a concise summary of what this is about?

gangleri wrote:

changes summary from "extensions to template syntax IFEXISTS <object>;
IFNOTEXISTS <object>; IFEQUALS <object>; ELSE"
to "new constructs in template syntax"

avarab wrote:

Then it's defenetly a duplicate of bug 364, marking it as such.

*** This bug has been marked as a duplicate of 364 ***

gangleri wrote:

Dear friends!

maybe the summary does not explain comment 0
it is definitevely *not* a duplicate of bug 364

IFEXISTS <object> could be used in templates as
IFEXISTS [[{{NAMESPACE}}:{{PAGENAME}}/archive]] THEN <code> normaly
[[{{NAMESPACE}}:{{PAGENAME}}/archive|archive]]
IFEXISTS [[{{NAMESPACE}}:{{PAGENAME}}/to do]] THEN <code> normaly
[[{{NAMESPACE}}:{{PAGENAME}}/to do|to do]]
IFEXISTS [[Help:{{PAGENAME}}/to do]] THEN <code> normaly [[Help:{{PAGENAME}}|Help]]

IFEXISTS some sort of query as LIKE
'{{NAMESPACE}}:{{PAGENAME}}/%'" (% in MySQL) could be used with the apropriate
variant of [[Spacial:Allpages]] to make a link to subpages as required in bug 233

The difference to bug 364 is that a *parameter* might be in the template but
involved in some code *but* the generated / referenced *object* does not exist.

IFNOTEXISTS [[{{NAMESPACE}}:{{PAGENAME}}/to do/priority]] THEN <code> would
generate default code for this situation.

IFEQUALS [[{{NAMESPACE}}:{{PAGENAME}}/to do/priority]] = done THEN <code> would
be helpfull from the begining.

Other parser keywords as ELSE, ELSEIF and END or whatever would be there names
are required to make somthing meaningfull. This is not the place to make a full
specification.

If there are doubts about vandalism a way should be found. Possibly restricting
the usage (runtime effects) to protected template pages. In order to design such
templates everybody could do this inside <pre> ... </pre>. But as already told
restrictions sould not be the first issue to thing about here.

Regards Reinhardt [[user:gangleri]]

robchur wrote:

I'm hazarding a guess that the core issue here was fixed with the introduction
of Tim's ParserFunctions.