Textpattern CMS support forum
You are not logged in. Register | Login | Help
- Topics: Active | Unanswered
#49 2008-11-05 01:07:43
- redbot
- Plugin Author
- Registered: 2006-02-14
- Posts: 1,410
Re: an attribute named "empty"
Surely I’m wrong but can’t it depend upon how you have nested double quotes in your <txp:variable />?
this:
<txp:variable name="file_count" value='<txp:file_download_list form="file_cat" category="<txp:l10n_get_lang type="short" />" />' />
shouldn’t be this?:
<txp:variable name="file_count" value='<txp:file_download_list form="file_cat" category="<txp:l10n_get_lang type='short' />" />' />
Note the single quotes around the attribute “short”
edit: Oops, Bloke was faster and more precise
Last edited by redbot (2008-11-05 01:09:26)
Offline
#50 2008-11-05 01:12:40
- els
- Moderator
- From: The Netherlands
- Registered: 2004-06-06
- Posts: 7,458
Re: an attribute named "empty"
Phew… am I glad that it’s not just me… ;)
Your findings are exactly like mine. I started with single quotes around the third nested tag, and later on changed it to double quotes. Because the output of the variable tag is correct, I didn’t think that the multi-level nesting would be the problem… but I’m not sure of course.
Unless there’s another way to rewrite it with only a single level of nesting…?
Oh, I can always find another way to do it. I can put the file download code in the articles, I’ll only have to remember to add it to the pt article whenever I’m going to add files to that category as well.
But I really liked my piece of code ;) and it would have been fully automated that way. Oh well, we can’t have everything I guess… ;) (and there is always chh_if_data)
Thanks very much for confirming my sanity!
Offline
#51 2008-11-05 01:16:07
- els
- Moderator
- From: The Netherlands
- Registered: 2004-06-06
- Posts: 7,458
Re: an attribute named "empty"
redbot wrote:
Note the single quotes around the attribute “short”
I even tried it that way, but it doesn’t get parsed right if you do that, in the tag trace it looked like this:
[SQL (0,000139951705933): select *,`l10n_description_en_gb` as `description` from txp_file where 1=1 and category IN ('<txp:l10n_get_lang type=\'short\' />') and status = '4' order by filename asc limit 0, 10]
Offline
Re: an attribute named "empty"
redbot wrote:
Note the single quotes around the attribute “short”
Yeah, I thought that would be it as well. I’ve tried all these permutations so far and have had not had the “right” answer yet:
<txp:variable name="file_count" value='<txp:file_download_list form="file_cat" category="<txp:l10n_get_lang type="short" />" />' />
<txp:variable name="file_count" value="<txp:file_download_list form="file_cat" category="<txp:l10n_get_lang type="short" />" />" />
<txp:variable name="file_count" value='<txp:file_download_list form="file_cat" category='<txp:l10n_get_lang type="short" />' />' />
<txp:variable name="file_count" value='<txp:file_download_list form="file_cat" category="<txp:l10n_get_lang type='short' />" />' />
<txp:variable name="file_count" value="<txp:file_download_list form="file_cat" category="<txp:l10n_get_lang type='short' />" />" />
<txp:variable name="file_count" value="<txp:file_download_list form="file_cat" category='<txp:l10n_get_lang type="short" />' />" />
I got bored of trying after that lot :-P
Must be some scientific way of proving this or working out the correct single/double quote syntax to render the correct result. I’ve even tried approaching it as if I was the parser, going in as far as I can and successively working out — reverse-Polish stylie — but my brain went soggy.
Last edited by Bloke (2008-11-05 01:21:46)
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
#53 2008-11-05 01:31:41
- els
- Moderator
- From: The Netherlands
- Registered: 2004-06-06
- Posts: 7,458
Re: an attribute named "empty"
Bloke wrote:
I’ve even tried approaching it as if I was the parser, going in as far as I can
Sounds a bit like Being John Malkovich… seriously, don’t go in too deep or you’ll at least have nasty dreams tonight.
Maybe one of the devs can shed some light on this. Tomorrow. Thanks again and sleep well :)
Offline
Re: an attribute named "empty"
<txp:variable name="file_count" value='<txp:file_download_list form="file_cat" category=''<txp:l10n_get_lang type="short" />'' />' />
escaping of quotes in 4.0.7 attribute values is done by using 2 consecutive quotes.
Offline
Re: an attribute named "empty"
ruud wrote:
escaping of quotes in 4.0.7 attribute values is done by using 2 consecutive quotes.
Awesome, it works poifickly!
Thanks for clearing that up. I’d have been there all day figuring that out on my own. Must have missed that bit in your parser write-up doc.
Last edited by Bloke (2008-11-05 12:58:12)
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
#56 2008-11-05 17:21:46
- els
- Moderator
- From: The Netherlands
- Registered: 2004-06-06
- Posts: 7,458
Re: an attribute named "empty"
Perfect! Thanks Ruud! Great that it can be done after all, now anything seems possible… :)
Offline
Re: an attribute named "empty"
Look at this tip on TXP Tips.
I think it’s an interesting (and simple) case for dissection.
For the sake of brevity and clarity, I will rewrite it using container tags instead of forms, and also omitting some chunks of code that aren’t essential for this dissection.
<txp:section_list class="" break=""
wraptag="dl" sections="about,services,case-studies,contact">
<txp:if_section name='<txp:section />'>
<txp:article_custom section='<txp:section />' form="nav.build.link" />
</txp:if_section>
</txp:section_list>
The important part (where at first I thought there was a mistake, but now I think it’s a great example on how this thing works) is this:
<txp:if_section name='<txp:section />'>
<txp:article_custom section='<txp:section />' form="nav.build.link" />
</txp:if_section>
As wet clearly explained, some tags (txp:section
, for example) are “tag context sensitive”.
So, the above chunk of code, read in plain simple english:
If section for current URL is equal to section currently iterated (txp:section
) on this section list, then output a list of articles for this current iterated section.
Great! :D
BTW: I think that when 4.0.7 was out, there was a bug, and txp:section
value wasn’t reverted back to its corresponding value after leaving the iteration. Where’s the patch for that? (can’t find it)
Last edited by maniqui (2008-12-26 20:35:36)
Offline
Re: an attribute named "empty"
maniqui
Nice explanation, thanks. It is certainly very cool what’s possible in 4.0.7 now. Not just in terms of new tags, but some severely awesome enhancements “under the hood” that enables stuff like this. And searching arbitrary columns. And time/event-based articles. And…
I think that when 4.0.7 was out, there was a bug, and
txp:section
value wasn’t reverted back to its corresponding value after leaving the iteration. Where’s the patch for that? (can’t find it)
r3037 ?
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: an attribute named "empty"
Thanks, Bloke, glad you liked it.
I fixed an error on the “plain english” version, I don’t know why I typed txp:title
instead of txp:section
.
Thanks for pointing to the fixed version of taghandlers.
Offline