Textpattern CMS support forum
You are not logged in. Register | Login | Help
- Topics: Active | Unanswered
#1 2008-11-19 01:22:41
- gomedia
- Plugin Author
- Registered: 2008-06-01
- Posts: 1,373
txp:variable increment & decrement
How about adding a couple of extra attributes to <txp:variable />
to enable counters to incremented or decremented.
For example, <txp:variable name="counter" inc="1" />
would add 1 to the value of counter and <txp:variable name="counter" dec="2" />
would subtract 2 from its value.
So code, such as that given as an example in the tag reference for <txp:variable />
, could then be shortened from:
<txp:if_variable name="trigger">
<txp:if_variable name="trigger" value="2">
<txp:variable name="trigger" value="3" />
</txp:if_variable>
<txp:if_variable name="trigger" value="1">
<txp:variable name="trigger" value="2" />
</txp:if_variable>
<txp:else />
<txp:variable name="trigger" value="1" />
</txp:if_variable>
to:
<txp:if_variable name="trigger">
<txp:variable name="trigger" inc="1" />
<txp:else />
<txp:variable name="trigger" value="1" />
</txp:if_variable>
which is more elegant and more flexible.
Offline
Re: txp:variable increment & decrement
:) I’m the author of magic example, you quoted. And agree with you – adding increment\decrement would decrease the size of code in this example. But are there any other usages for inc\decr
?
Providing help in hacking ATM! Come to courses and don’t forget to bring us notebook and hammer! What for notebook? What a kind of hacker you are without notebok?
Offline
#3 2008-11-19 02:01:02
- gomedia
- Plugin Author
- Registered: 2008-06-01
- Posts: 1,373
Re: txp:variable increment & decrement
the_ghost wrote:
:) I’m the author of magic example, you quoted. And agree with you – adding increment\decrement would decrease the size of code in this example. But are there any other usages for
inc\decr
?
Hi Victor. It would not only decrease the size but make it less error prone as well. Imagine the code required to extend your example from 3 columns to 10. It also would enhance TXP variables from being simple data storage into a fully fledged counters, extending Textpattern’s capability.
Offline
#4 2008-11-19 02:56:39
- gomedia
- Plugin Author
- Registered: 2008-06-01
- Posts: 1,373
Re: txp:variable increment & decrement
Victor, using your example of a table of article titles again. The boxes could be numbered using a counter.
Initialise counter: <txp:variable name="count" value="0" />
Then wherever an article title is output:
<txp:variable name="count" inc="1" />
<td><txp:variable name="count" />. <txp:title /></td>
So you’d end up with 1. xxxxxx, 2. yyyyyy, 3. zzzzzz etc.
Offline
Re: txp:variable increment & decrement
I would bet this can be done (although I’ve to think exactly how) with this recipe:
- 1
<txp:variable />
- 1
<txp:rvm_counter />
(here) (ideally, using a modified version ruud sent me) - tags in tags (at will)
- magic dust (at will)
Add a <txp:rvm_counter />
inside <txp:variable />
’s value
attribute. Serve cold.
Like this:
<txp:variable name="even_articles" value='<txp:rvm_counter name="even_counter" step="2" />' />
Current version of rvm_counter does the count on the database, so concurrent hits on a page can lead to an wrong count.
Thankfully, ruud sent me a modified version that does the count “on the fly” (on memory).
So, what do you think? Will this work?
Offline
Re: txp:variable increment & decrement
As a guideline, I don’t think <txp:variable />
should be transformed into Textpattern’s built-in desktop calculator by adding a selection of mathematical capabilities to it.
See, as soon as we had inc
and dec
, it would be a logical next step to add comparisons and string operations and then, maybe, multiplication and division, and so on. Let this be a field where <txp:php>
earns its merits.
Offline
#7 2009-02-23 05:33:59
- gomedia
- Plugin Author
- Registered: 2008-06-01
- Posts: 1,373
Re: txp:variable increment & decrement
wet wrote:
Let this be a field where
<txp:php>
earns its merits.
… or a plugin: adi_calc.
I had a scenario where I needed to do a number of calculations on a counter and dodging in & out of <txp:php>
became too arduous.
Offline