Textpattern CMS support forum
You are not logged in. Register | Login | Help
- Topics: Active | Unanswered
Proposal: fix behaviour of <txp:if_section> and <txp:if_category> tags
The tables below show the behaviour in 4.0.7 (and what it might become in 4.0.8) of the <txp:if_section> and <txp:if_category> tag on the frontpage and in category/section pages called ‘about’ and ‘other’ (as an example):
| frontpage | s=about | s=other
------------------------------------------------------------------
<txp:if_section> 4.0.7 | TRUE | FALSE | FALSE
<txp:if_section> 4.0.8 | FALSE | TRUE | TRUE
<txp:if_section name=""> | TRUE | FALSE | FALSE
<txp:if_section name="about"> | FALSE | TRUE | FALSE
<txp:if_section name="other"> | FALSE | FALSE | TRUE
<txp:if_section name=",about"> | TRUE | TRUE | FALSE
<txp:if_section name=",other"> | TRUE | FALSE | TRUE
| frontpage | c=about | c=other
------------------------------------------------------------------
<txp:if_category> | FALSE | TRUE | TRUE
<txp:if_category name=""> 4.0.7 | FALSE | TRUE | TRUE
<txp:if_category name=""> 4.0.8 | TRUE | FALSE | FALSE
<txp:if_category name="about"> | FALSE | TRUE | FALSE
<txp:if_category name="other"> | FALSE | FALSE | TRUE
<txp:if_category name=",about"> | TRUE | TRUE | FALSE
<txp:if_category name=",other"> | TRUE | FALSE | TRUE
Leaving out the name attribute and setting the name attribute to an empty string doesn’t work consistently in both tags:
- compare
<txp:if_section>
to<txp:if_category>
: the former condition is true on the frontpage where there is no section while the latter condition is false on the frontpage where there is no category, but true for any valid category. The<txp:if_category>
behaviour makes more sense. - compare
<txp:if_category name="">
,<txp:if_section name="">
,<txp:if_category name=",about">
and<txp:if_section name=",about">
. The last three are consistent in behaviour. When specifying an empty category or section, if you’re on the frontpage (no section/category), the condition is true. But<txp:if_category name="">
behaves differently, because that one is true currently if you’re on any valid category page. An empty category or section name could mean “any” or “none”. The latter makes more sense and is used in 3 out of 4 situations.
I think this can be fixed in the taghandler code.
For people upgrading from older versions, the old behaviour can be preserved by replacing tags in forms and pages in an update script like this (this isn’t perfect, but should cover the most common usage):- replace
<txp:if_section>
with<txp:if_section name="">
- replace
<txp:if_category name="">
with<txp:if_category>
Does the suggested behaviour change make sense?
Offline
Re: Proposal: fix behaviour of <txp:if_section> and <txp:if_category> tags
I’m down with that. Much more consistent.
Do we assume then that you are considering dropping support for <txp:if_section="default">
? Or will it behave:
| frontpage | s=about | s=other
-------------------------------------------------------------------------
<txp:if_section name="default"> | TRUE | FALSE | FALSE
<txp:if_section name="default,about"> | TRUE | TRUE | FALSE
<txp:if_section name="default,other"> | TRUE | FALSE | TRUE
i.e. can be used as a synonym for ""
?
EDIT or is ‘default’ a side-effect like the old ‘s’ was, and not actually officially supported?
Last edited by Bloke (2008-12-22 18:23:30)
The smd plugin menagerie — for when you need one more gribble of power from Textpattern. Bleeding-edge code available on GitHub.
Txp Builders – finely-crafted code, design and Txp
Offline
Re: Proposal: fix behaviour of <txp:if_section> and <txp:if_category> tags
I don’t think users should use ‘default’ to indicate the frontpage, but support for ‘default’ shouldn’t be dropped (I don’t see a way to fix that automatically during upgrades).
‘default’ is used internally by TXP for that purpose (not a very good idea, but that’s how it is).
Offline
Re: Proposal: fix behaviour of <txp:if_section> and <txp:if_category> tags
Fine by me; ""
is far less typing :-)
The smd plugin menagerie — for when you need one more gribble of power from Textpattern. Bleeding-edge code available on GitHub.
Txp Builders – finely-crafted code, design and Txp
Offline
#5 2008-12-22 20:07:20
- els
- Moderator
- From: The Netherlands
- Registered: 2004-06-06
- Posts: 7,458
Re: Proposal: fix behaviour of <txp:if_section> and <txp:if_category> tags
That would be a nice fix, thank you. Until it came up in this thread I had never even suspected that <txp:if_section>
did the same as <txp:if_section name="">
…
Offline
Re: Proposal: fix behaviour of <txp:if_section> and <txp:if_category> tags
Re: time frame: I’d rather use 4.0.8 to fix open bugs and postpone substantial changes like that to 4.0.9, especially as theme authors would probably need to catch up with the proposed changes.
Offline
Re: Proposal: fix behaviour of <txp:if_section> and <txp:if_category> tags
Like Els, I didn’t think <txp:if_section>
or <txp:if_category>
did anything. In fact, my own logic suggests they should both throw an error. That being the case all of my tags would have a “name” attribute so I don’t think anything you do would be a problem unless you stopped supporting the “default” section name. For some reason I thought this had recently become the norm, replacing “” but still supporting “”. I obviously misunderstood something there. :(
Stuart
In a Time of Universal Deceit
Telling the Truth is Revolutionary.
Offline
Re: Proposal: fix behaviour of <txp:if_section> and <txp:if_category> tags
What would change is the behaviour or <txp:if_section>
(no name attribute) and <txp:if_category name="">
(name attribute set to an empty string). New behaviour would be the opposite of the old behaviour.
TextBook doesn’t cover either case. Neither in the explanation of the name attribute nor in the examples:
- if_section: name = Comma-separated list of section names. For the default section, either use the text default or a single comma (for example, both name=”, other_section” and name=“default, other_section” are equivalent).
- if_category: name = Comma-separated list of category names. Default is unset, which determines whether any category listing is being viewed.
Offline
Re: Proposal: fix behaviour of <txp:if_section> and <txp:if_category> tags
Regardless of what is done (and I don’t think this would affect me, but I haven’t checked), could you please not use a patch version increment to introduce backwards-incompatible changes? I don’t understand why every new release is incremented as a patch anyway, but it just compounds the problem hugely if the “patches” introduce incompatibilities with earlier versions (as has already been done, but there’s nothing I can do about that now).
I’m sure it’s already been debated endlessly on the forums somewhere, but I’m hoping to head it off before it happens here.
Offline
Re: Proposal: fix behaviour of <txp:if_section> and <txp:if_category> tags
This doesn’t affect upgrades of existing TXP installs because the necessary template/form updates are done automatically.
Offline
Re: Proposal: fix behaviour of <txp:if_section> and <txp:if_category> tags
Ah, well I guess I spoke too soon. Thanks for clarifying!
Offline
Re: Proposal: fix behaviour of <txp:if_section> and <txp:if_category> tags
What’s the state of this proposal? Did it finally make it into 4.2.0? (wet mentioned it could be scoped for 4.0.9 release)
Offline