Textpattern CMS support forum
You are not logged in. Register | Login | Help
- Topics: Active | Unanswered
#13 2009-11-24 14:55:49
- redbot
- Plugin Author
- Registered: 2006-02-14
- Posts: 1,410
Re: rah_function // Every PHP function is a tag
johnstephens wrote:
Thank you Redbot! I’m using the tag to wrap the text that I want to find and replace patterns in, just like in the pax_grep example above. The purpose of this example is to strip out whitespace characters from the wrapped text. Does that make sense?
Yes, I understood what you are trying to achieve. You should use the tag in his self-enclosing form like this:
<txp:rah_function call="preg_replace" pattern="'\s|\t|\r|\n'" replacement="" subject="My source" />
You have to insert the text you want to change as the third argument.
Offline
Re: rah_function // Every PHP function is a tag
That worked, thanks again!
Offline
Re: rah_function // Every PHP function is a tag
Version 0.2 released. Changes:
- Added attribute:
thing
. Thanks you ruud for suggestion. - More examples and helpful information in docs (lot of typos too).
Offline
Offline
Re: rah_function // Every PHP function is a tag
Hi Gocom,
I’m not sure if this is a bug, but when I use:
<txp:rah_function call="safe_count" table="textpattern" where='Section="<txp:section />"' />
I get one more article in the count than exists, for any section I specify. Could this be something to do with MySQL counts starting at 1 versus PHP starting at 0?
Great plugin, btw!
“People who value their privileges above their principles soon lose both.”
Dwight D. Eisenhower
Offline
Re: rah_function // Every PHP function is a tag
speeke wrote:
Great plugin, btw!
Sarah, nice to see that you like the plugin.
Could this be something to do with MySQL counts starting at 1 versus PHP starting at 0?
Don’t know what PHP starting point you are meaning, but the count starts from one; The first found row is the number one.
safe_count()
function you are calling with the tag, is part of Textpattern’s core library. It runs a standard count query:
select count(*) from textpattern where Section="name"
Remember that the count also counts draws and hidden articles. If the count is rendered wrong with plain query too, and you are certain that it is wrong, the table/index might be a bit broken. Running a repair helps with that. You can use repair with phpMyadmin, for example.
If you use specialchars in the value ("
, '
, \
etc), you need to escape the chars by using doSlash. Something like:
<txp:rah_function table="textpattern" thing="here">
foo='<txp:rah_function call="doSlash">bar</txp:rah_function>' and bar='foo'
</txp:rah_function>
Offline
Re: rah_function // Every PHP function is a tag
Apologies, I forgot to add and status=4
– was also counting sticky articles. All good.
“People who value their privileges above their principles soon lose both.”
Dwight D. Eisenhower
Offline
#20 2010-06-21 07:39:52
- Darkliam
- New Member
- Registered: 2010-06-20
- Posts: 9
Re: rah_function // Every PHP function is a tag
Hello,
can we put this : <txp:rah_function call="safe_count" table="textpattern" where='Category="peintres"' />
for search the number of article in a category (I use rss_unlimited_categorie)
in a txp variable?
(I test that : <txp:variable name="test" value='<txp:rah_function call="safe_count" table="textpattern" where='Category="peintres" ' />' />
but this not right.)
Added code formating -Gocom
Last edited by Gocom (2010-06-21 08:17:06)
Offline
Re: rah_function // Every PHP function is a tag
Darkliam wrote:
(I test that :
<txp:variable name="test" value='<txp:rah_function call="safe_count" table="textpattern" where='Category="peintres" ' />' />
but this not right.)
Yep, it’s not. TXP.com weblog / Tag parser – par 1: new features
The parser stops because there are '
single quotes inside single quotes. Let me give some options.
Using variable as container:
<txp:variable name="test"><txp:rah_function call="safe_count" table="textpattern" where='Category="peintres"' /></txp:variable>
Escaping the single quotes by using double single quotes:
<txp:variable name="test" value='<txp:rah_function call="safe_count" table="textpattern" where=''Category="peintres"'' />' />
Or because the inner one doesn’t have tags used as values:
<txp:variable name="test" value='<txp:rah_function call="safe_count" table="textpattern" where="Category=''peintres''" />' />
Or:
<txp:variable name="test" value='<txp:rah_function call="safe_count" table="textpattern" where="Category=""peintres""" />' />
Hope it helps :-)
Offline
#22 2010-06-21 09:51:08
- Darkliam
- New Member
- Registered: 2010-06-20
- Posts: 9
Re: rah_function // Every PHP function is a tag
And that can be used with rss_unlimited_category? can we used the name of the other categories create ? This plugins use always category 1 and category 2 or it accept the other categories created by rss_unlimited_category?
Offline
Re: rah_function // Every PHP function is a tag
Darkliam wrote:
And that can be used with rss_unlimited_category? can we used the name of the other categories create ? This plugins use always category 1 and category 2 or it accept the other categories created by rss_unlimited_category?
I can’t comment on that. I have no idea where or how rss_unlimited_categories stores the categories. I just basically corrected your markup, as that was what I thought you were asking.
What comes to the limits of rah_function, from the plugins pov there are none. The plugin just calls PHP functions, which means that it works as long as the returned output is a string. The actual limit comes from the function that is used.
The safe_count()
you used in your example, runs a query that counts matching rows, and the limits of safe_count()
are same as normal count query’s.
Offline
Re: rah_function // Every PHP function is a tag
Darkliam, I took bit of look at rss_unlimited_categories and it stores the infomation about the categories in textpattern_category
table.
<txp:rah_function call="safe_count" table="textpattern_category" where="category_id=13" />
Something like that should get the count. The category_id is what you want to macth. Instead the name of the category, it uses the ID number of the category.
You can dynamically fetch the category’s ID from txp_category table too, if you required:
<txp:rah_function call="fetch" what="id" table="txp_category" where="name" is="peintres" />
Which can then be feeded to the count. Best solution tho, would be use the ID without the extra step.
Offline