PTVs are before if. The markup expression appears to be after the PTV.
{$var} >$[phrase] B=>>
{( >{$var} B=>>>
fulltext >_begin B>
&amp; <& B>=<<
& <if B>=<
if fulltext B>=
I made a custom page var for the YYYYMM that the markup expression was
returning. That seems to have worked. Not sure why this PTV lookup failed
silently though...
Crisses
> On Apr 2, 2015, at 7:25 AM, Peter Bowers <[email protected]> wrote:
>
> Try turning on diagnostics and then loading with ?action=ruleset.
>
> Confirm that the rule '{$Var}' occurs before the rule 'if'.
>
> Confirm that the rule '{(' occurs before '{$Var}' -- oops! I just checked it
> on my own system and '{$Var}' occurs before '{('. This will mean that the
> variable-substitution will be attempted before you have created the variable
> name using your markup expression. Of course the difficulty is that often
> markup expressions use variables and so you wouldn't really want to swap the
> order. You may want to implement my '{earlymx(' rule that I have in
> WikiSh.php. The markup itself is about as ugly as I think could be invented,
> but it will solve your problem. Other, more elegant, solutions will hopefully
> be suggested by others.
>
> -Peter
>
> On Thu, Apr 2, 2015 at 11:51 AM, Criss Ittermann <[email protected]
> <mailto:[email protected]>> wrote:
> Thank you, it spits out:
>
> (:if exists Profile-Data.{Members/Hosts$:201504} :) [...] (:else:) [...]
> (:if:)
>
> So the PTV does not appear to have been processed yet -- the markup
> expression has, though. And this goes for ALL the PTVs throughout the entire
> IF condition, including the ones I've redacted with [...]
>
> However this violates documentation:
>
> Use page text variables in conditional markup
> <http://www.pmwiki.org/wiki/PmWiki/ConditionalMarkup>
> Page text variables will be assigned/evaluated before any conditional markup
> is evaluated. This effectively means that you cannot declare a PTV within an
> if...else condition; and also that a PTV will have a value even if it is set
> within a (:if false:)....(:if:) condition.
>
> on page
> http://www.pmwiki.org/wiki/PmWiki/PageTextVariables
> <http://www.pmwiki.org/wiki/PmWiki/PageTextVariables>
>
> I upgraded to the latest version and it still doesn't work. I turned off
> each recipe and commented out sections of code that even vaguely might affect
> conditional processing or PTV evaluation one at a time (it's a live site),
> and no change. I did not comment out authentication, captcha or PmForm,
> since these would break the site in a very bad way and are released by PM &
> Petko.
>
> Just for giggles, to take the complexity out of the if-conditional, I even
> tried:
>
> TempVar:Profile-Data.{Members/Hosts$:{(ftime "%Y%m")}}
>
> (:if exists {$:TempVar} :)
>
> But of course, that failed too. But the variable itself is set correctly.
>
> This fails too, whether I use the full expression, or the new variable:
>
> (:if equal "{$:TempVar}" "Profile-Data.HEdelman" :)
> revealing the if conditional before it processes:
> (:if equal "Profile-Data.{Members/Hosts$:201504}" "Profile-Data.HEdelman" :)
>
>
> (:if false:)
> TempVar:Profile-Data.{Members/Hosts$:{(ftime "%Y%m")}}
> (:if:)
>
> Still sets the variable.
>
>> On Apr 1, 2015, at 8:25 PM, John Rankin <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>> It may be possible to intercept the if code and find out what condition
>> pmwiki is evaluating, which should give information about what is happening.
>> Try this in local/config.php:
>>
>> $CondTextReplacement = "MyTempRepl(\$pagename, \$m[0], \$m[1])";
>> function MyTempRepl($pagename, $text, $code='') {
>> echo $text;
>> return CondText2($pagename, $text, $code);
>> }
>>
>> If I am reading stdmarkup.php correctly, this should echo the contents of
>> the if code at the time the conditional is evaluated, which will show
>> whether the var has been evaluated as intended.
>>
>> JR
>>
>> On 2/04/15 12:07 AM, Criss Ittermann wrote:
>>> I'm trying to figure out why this is returning false ("To be announced."):
>>>
>>> (:if exists Profile-Data.{Members/Hosts$:{(ftime "%Y%m")}} :)
>>> ...
>>> (:else:)
>>> To be announced.
>>> (:ifend:)
>>>
>>>
>>> When the following returns a fully functioning link to the correct page,
>>> which exists:
>>>
>>> [[Profile-Data.{Members/Hosts$:{(ftime "%Y%m")}}]]
>>>
>>>
>>> What am I doing wrong?
>>>
>>> Crisses
>>>
>>>
>>>
>>> _______________________________________________
>>> pmwiki-users mailing list
>>> [email protected] <mailto:[email protected]>
>>> http://www.pmichaud.com/mailman/listinfo/pmwiki-users
>>> <http://www.pmichaud.com/mailman/listinfo/pmwiki-users>
>>
>> --
>> John Rankin
>> Affinity Limited
>> T +64 4 495 3737 <tel:%2B64%204%20495%203737>
>> M +64 21 726 546
>> <tel:%2B64%2021%20726%20546>_______________________________________________
>> pmwiki-users mailing list
>> [email protected] <mailto:[email protected]>
>> http://www.pmichaud.com/mailman/listinfo/pmwiki-users
>> <http://www.pmichaud.com/mailman/listinfo/pmwiki-users>
>
>
> _______________________________________________
> pmwiki-users mailing list
> [email protected] <mailto:[email protected]>
> http://www.pmichaud.com/mailman/listinfo/pmwiki-users
> <http://www.pmichaud.com/mailman/listinfo/pmwiki-users>
>
>
_______________________________________________
pmwiki-users mailing list
[email protected]
http://www.pmichaud.com/mailman/listinfo/pmwiki-users