[pmwiki-users] noleft in SiteHeader suppresses leftbar except for page-actions (mostly)
michael paulukonis
xraysmalevich at gmail.com
Mon Sep 9 13:15:30 CDT 2013
Petko -- thanks for your detailed response.
I haven't grokked it all yet (have been working on other tasks while I let
this one... percolate? gestate? hibernate? something.)
I always appreciate your detail.
-Michael Paulukonis
http://www.xradiograph.com
<http://goog_2112721603>Interference Patterns (a
blog)<http://www.xradiograph.com%5Cinterference>
@XraysMonaLisa <https://twitter.com/XraysMonaLisa>
http://michaelpaulukonis.com
<http://www.BestAndroidResources.com>
Sent from somewhere in the Cloud
(hearthrug, by the fender)
On Sat, Sep 7, 2013 at 5:51 PM, Petko Yotov <5ko at 5ko.fr> wrote:
> michael paulukonis writes:
>
>> If I put SetTmplDisplay('PageLeftFmt', 0) in config or the skin, it
>> ALWAYS surpresses the left-content.
>>
>
> And it can be overridden in a local/Group.php or local/Group.Page.php file
> with SetTmplDisplay('PageLeftFmt', 1);
>
>
> I would like it to be suppressed when the (:noleft:) markup is present on
>> the page, or in the header.
>> Now, SiteHeader would suggest it is almost always present, but I want to
>> be able to turn it off by wiki-editing the appropriate content.
>>
>> Is there a way to get a Header (Group or Site) enabled for edit, diff,
>> history, login, etc?
>>
>
> These actions are processed differently than the 'browse' action.
>
> I won't say that this is good or bad, I'll just explain what happens and
> why it is not easy to do what you want with a directive in a page.
>
> With "browse" first the page content (including GroupHeader) is converted
> to HTML, then the skin is rendered section by section -- for example the
> SideBar and PageActions pages are included in the skin so they are rendered
> later than the page text.
>
> The (:noleft:), (:noheader:), (:nofooter:) and other directives set or
> change variables used by the skin, but need to be set before the concerned
> skin section is rendered. For example, anything in the page text and in
> GroupHeader/footer can set a variable and it will be respected. Other
> example, in a SideBar, setting (:noleft:), (:noaction:) or (:noheader:)
> will have no effect (these sections are rendered before the SideBar is
> rendered) but (:nofooter:) will have effect (the skin footer is rendered
> after the SideBar).
>
> With the actions edit, diff, login, search, the page text is not rendered
> to HTML, only a function is registered to be called later by the skin: you
> can check the variables $HandleSearchFmt, $HandleEditFmt,$HandleDiffFmt,
> $AuthPromptFmt (some of them are redefined in forms.php).
>
> So for example when the skin comes to render the diff function, the
> SideBar has already been rendered and setting a (:noleft:) directive in the
> $HandleDiffFmt will have no effect on the SideBar.
>
> So, in order to set the directives before the skin sections are processed,
> you can set in config.php something like:
>
> $HandleEditFmt = array('function:**UseGroupHeader', &$PageStartFmt,
> &$PageEditFmt, &$PageEndFmt);
>
> we insert 'function:UseGroupHeader' before the default settings and then
> we add this function:
>
> function UseGroupHeader($pagename) {
> global $GroupHeaderFmt;
> $x = MarkupToHTML($pagename, $GroupHeaderFmt);
> return ''; # returns nothing
> }
>
> This way, when PmWiki renders the page edit form, the SiteHeader is
> processed before other sections of the skin and can set some variables. But
> this function returns nothing, because it is before even the <!DOCTYPE...>
> start of the HTML page is printed.
>
> If you have more than (:noleft:) in the SiteHeader, you need to define it
> twice in $HandleEditFmt :
>
> $HandleEditFmt = array('function:**UseGroupHeader', &$PageStartFmt,
> "markup:$GroupHeaderFmt", &$PageEditFmt, &$PageEndFmt);
>
> here we also added "markup:$GroupHeaderFmt" before &$PageEditFmt. Note
> that $GroupHeaderFmt must be defined before $HandleEditFmt in config.php.
>
> The same way you can redefine the other $Handle*Fmt arrays.
>
> Petko
>
> On Thu, Sep 5, 2013 at 3:24 PM, Petko Yotov <<URL:mailto:5ko at 5ko.fr>5ko@*
>> *5ko.fr <5ko at 5ko.fr>> wrote:
>>
>> The GroupHeader mecanism (include specific pages before or after the
>> current page) is only enabled for the actions "browse" (view), "print" and
>> "preview" for the current page.
>>
>> If you want to apply the (:noleft:) directive to all actions on most
>> groups, use this in local/config.php:
>>
>> SetTmplDisplay('PageLeftFmt', 0);
>>
>> To enable it in specific groups, just use in the local/Group.php file:
>> SetTmplDisplay('PageLeftFmt', 1);
>>
>> Or, you can also use a different skin.
>>
>> Petko
>>
>>
>> michael paulukonis writes:
>>
>> I've implemented the AllGroupHeader recipe, with the option of using
>> the GroupHeader if present, or the SiteHeader otherwise.
>> I've added a (:noleft:) directive to the SiteHeader, which
>> eliminates the leftbar in almost all cases.
>> In the few instances where a GroupHeader exists, I have added
>> (:noleft:) to the GroupHeader.
>>
>> The few cases where the leftbar re-appears are when page-actions are
>> performed -- Search (results only), History, Login and Edit.
>> Curiously, the leftbar disappears again if "preview" is selected
>> during edit.
>>
>> Why is the leftbar re-appearing?
>> Is it something I've set in my theme that I've forgotten about, some
>> directive I'm missing, some part of core markup that I'm overlooking?
>>
>>
>>
>>
>> ______________________________**_________________
>> pmwiki-users mailing list
>> <URL:mailto:pmwiki-users@**pmichaud.com <pmwiki-users at pmichaud.com>>
>> pmwiki-users@**pmichaud.com <pmwiki-users at pmichaud.com>
>> <URL:http://www.pmichaud.com/**mailman/listinfo/pmwiki-<http://www.pmichaud.com/mailman/listinfo/pmwiki-> users>
>> http://www.pmichaud.com/**mailman/listinfo/pmwiki-users<http://www.pmichaud.com/mailman/listinfo/pmwiki-users>
>>
>>
>>
> ______________________________**_________________
> pmwiki-users mailing list
> pmwiki-users at pmichaud.com
> http://www.pmichaud.com/**mailman/listinfo/pmwiki-users<http://www.pmichaud.com/mailman/listinfo/pmwiki-users>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.pmichaud.com/pipermail/pmwiki-users/attachments/20130909/8f6d73c3/attachment.html>
More information about the pmwiki-users
mailing list