[pmwiki-users] SetProperty question

Michael Eager eager at eagercon.com
Fri Apr 11 10:17:34 PDT 2025


Thanks.

It looks like the problem was in handling the results of ParseArgs()
on the options to (:pdfthumb:).

I might look at using page variables instead of the this markup.


On 4/9/25 11:10 PM, Petko Yotov wrote:
> Your description of SetProperty() is correct.
> 
> SetProperty($pagename, $propname, $propvalue) adds or replaces a 
> temporary value in the global array $PCache[$pagename][$propname].
> 
> PageTextVariable($pagename, $propname) indeed retrieves the stored 
> value, but it also returns page text variables, these are variables 
> written in the page text like this:
> 
>    Name:value
>    (:AnotherVarName:Some value:)
> 
> If it is not returning what you expect, check if in the page there is a 
> text variable with the same name as the property that overwrites your 
> property. If this may happen, you could use a custom property name that 
> does not look like a page text variable, for example prefix it like 
> "pdfthumb:size" (a core PTV name cannot have a colon).
> 
> Or, check if you are trying to retrieve the value in one function before 
> the other function sets it. Your 2 markups need to be processed in the 
> correct order.
> 
> Petko
> 
> 
> On 10/04/2025 03:20, Michael Eager wrote:
>> I've been fixing bugs with the PDFThumb cookbook script I wrote
>> several years ago.  PDFThumb generates a thumbnail of a PDF file
>> and displays it with a caption and a link to the file.
>>
>> The script implements two markups:  (:pdfthumb:) overrides global
>> parameters for the page, such as the size of the generated thumbnail.
>> (:pdf:) generates a thumbnail if it doesn't exist, and displays the
>> thumbnail with a link and caption.
>>
>> In (:pdfthumb:) I used SetProperty to save the parameters for the
>> page.  It appears to me that key/value pairs are saved for the
>> specified pagename.  In (:pdf:) I use these values, if set, or the
>> default values.
>>
>> I had thought that PageTextVar() retrieved the key/value pair for
>> the specified page, but that does not appear to be the case.
>>
>> Do I understand SetProperty() correctly?  How are values supposed
>> to be retrieved?
> 


-- 
Michael Eager



More information about the pmwiki-users mailing list