[pmwiki-users] PTV in feed

Petko Yotov 5ko at 5ko.fr
Wed May 13 04:08:29 PDT 2020


On 13/05/2020 09:41, Benjamin Grassineau wrote:
> Just a very basic question. I don't understand. $pn is a "default
> argument" of PageVar function ?

The code defined for $FmtPV is in quotes, because it will be evaluated 
in PageVar(). When that happens, there are a few variables that are 
available directly in your code: $pagename, $pn, $group, $name, $page.

$pagename is the page currently requested for browsing, and $pn is 
either the same, or some remote page where you need to get the $Title, 
or some $:PTV. $page is the full page metadata (text, author, dates, ip 
address, etc.). Here I'll use $pn because I'll have to get information 
from different pages.

In our case, when a variable {$TitreArticle} is requested, it will be 
evaluated inside PageVar() and that code will call once again PageVar() 
but with a different argument, for the page text variable.

Now that I think of it, it can be optimized to directly call 
PageTextVar:

   $FmtPV['$TitreArticle'] = 'PageTextVar($pn, "TitreArticle")';

This should be slightly faster than my first line but not noticeably -- 
maybe a few microseconds. I'm sure the time I spent writing this change 
you reading it will only be saved in several hundred years. ;-)

Petko


> On 12/05/2020 17:15, Petko Yotov wrote:
>> Sorry for the late reply.
>> 
>> This should work, where {$:TitreArticle} is your PTV :
>> 
>>   $FmtPV['$TitreArticle'] = 'PageVar($pn, "$:TitreArticle")';
>>   $FeedFmt['rss']['item']['title'] = '{$TitreArticle}';
>> 
>> You don't need to use ResolvePageName() like you wrote in the French 
>> mailing list, in fact you should probably remove it.
>> 
>> Petko
>> 
>> 
>> On 12/05/2020 13:48, Benjamin Grassineau wrote:
>>> Hello everybody !
>>> 
>>> Do you think it is possible to insert a page text variable in a RSS
>>> feed ?
>>> 
>>>  I saw that it is possible with page variables, like this :
>>> 
>>> $FeedFmt['rss']['item']['title'] = '{$Title}';
>>> 
>>> But I would like to have something like that :
>>> 
>>> $FeedFmt['rss']['item']['title'] = '{$:var}';
>>> 
>>> So I tried to create a php variable with this :
>>> 
>>> $var=PageVar($pagename [1],'$:var')
>>> 
>>> But this code doesn't work.
>>> 
>>> $FeedFmt['rss']['item']['title'] = '{$var}';
>>> 
>>> Nothing in "output feed" (sorry for my awful english !).
>>> 
>>> Someone have an idea ?



More information about the pmwiki-users mailing list