[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