[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