Re: Can I make conditional markups look into includes?
Petko Yotov <[email protected]>
| Newsgroups | gmane.comp.web.wiki.pmwiki.user |
|---|---|
| Message-ID | <[email protected]> |
As you noted, the page index, and the link index, do not include texts from included pages. Moreover, link index targets do not include the #hash of the link, so this would need to be manually parsed. Moreover, (:include...:) directives are evaluated after (:if...:) conditionals, so when the markup engine sees (:if...:), all text included from other pages may not yet be in the page. So what you are trying to do is really not obvious. :-) Is the footer conditional in a GroupFooter page? Will the footer text inside the conditional change often? It might be possible to add a custom directive or a post-processing function. Petko -- If you upgrade : https://www.pmwiki.org/Upgrades On 03/06/2023 20:35, Thomas Hirtenlehner wrote: > I'm searching for specific keywords in my page to add certain > messages in the footer. > > For this I added several (:if intext keyword:)... > In the footer. > > However, as stated in the documentation, (:if intext... :) does not > look into text that comes from an include for example. > > Is there a way to circumvent this? The best case would be to make it > look only in the main page, but I'm fine with completely circumventing > this restriction for certain sites... > > 8 May 2023 18:35:58 Thomas Hirtenlehner > <[email protected]>: > >> OK, I should have kept thinking about it. I can solve this problem >> with the inclusion of intext: >> >> _(:if2 link mypage.test:)_ >> >> _(:if intext mypage.test#part1:)_ >> _Text 1_ >> _(:ifend:)_ >> >> _(:if intext mypage.test#part2:)_ >> _Text 2_ >> _(:ifend:)_ >> >> _(:if2end:)_ >> >> does the trick >> >> Sorry for bothering everyone :/ >> >> 8 May 2023 16:53:32 Thomas Hirtenlehner >> <[email protected]>: >> >>> Hi everybody! >>> >>> I added the (:if link ... :) markup to my config.php: >>> >>> # add (:if link 'Group.Pagename':) conditional >>> $Conditions['link'] = 'IsTarget( $pagename, $condparm )'; >>> function IsTarget( $pn, $arg ) { >>> $arg = ParseArgs($arg); >>> $pn2 = MakePageName($pn, $arg[''][0]); >>> $page = RetrieveAuthPage($pn, 'read', true); >>> if (in_array($pn2, (explode(',',@$page['targets'])))) >>> return true; >>> } >>> >>> It works great for determining if there is a link to SOMEWHERE on >>> the given page. >>> >>> However: I need to discriminate if the link points to a certain >>> anchor, and if so which one. >>> >>> At the moment the link _[[mypage.test]] _and >>> _[[mypage.test#part3]]_ all lead to the same result. >>> >>> I'm searching for a behavior, where _(:if link mypage.test:)_ is >>> true for any link to mypage.test, while _(:if link >>> mypage.test#part3:)_ is only true if that specific anchor is >>> addressed somewhere on the page. >>> >>> Does anyone know of a way to extend the markup given to accomplish >>> that? >>> >>> thanks a lot in advance! >>> Thomas > _______________________________________________ > pmwiki-users mailing list > [email protected] > http://www.pmichaud.com/mailman/listinfo/pmwiki-users