[pmwiki-users] SetProperty question

Petko Yotov 5ko at 5ko.fr
Wed Apr 9 23:10:06 PDT 2025


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?



More information about the pmwiki-users mailing list