Translations of this page?:

Sidebar plugin

I searched a lot of information about sidebar. The only I founded was:

I think these don't follow the needs of users that want to have a sidebar as custom menu of a page. The ideal for useful sidebar is, in my opinion, that it satisfies the following:

  • it were not template dependent The sidebar should not depend of any template. The user should have the possibility of having the desired template, and no specific one for having sidebar
  • So, the sidebar should be a plugin and we should could edit it in wiki syntax
  • the sidebar should be editable as wiki text
  • we could have several sidebars (left, right)

I think that the simplest possibility is that:

  • sidebar could be only a table (with color border equal to horizontal rule color and background color the same as page color) editable by wiki text
  • syntax (eg):
       <sidebar side=left>
           **This is the main menu**
              - [[About]]
              - [[Main]]
       </sidebar>
       <sidebar side=right>
           **This is specific page menu**
             [[Discussion]]
             [[Related sites]]
       </sidebar>
    
  • This code produces one left sidebar and right sidebar
  • If nothing is specified, the sidebar is leftsided.

What do you think about that?. I think this code were not difficult to implement. With php we change dinamically the body of the page, dividing that in two or three columns (depending if we have 1 or 2 sidebars) and inserting in corresponding column: sidebar, normal body page and sidebar

Thank you very much DXpupublica ATTT telefonica.net

PS: I want to subscribe to lists and post it but I have problems with it.

I partly agree with you. I think that the raw-function of a navigation has to be a plugin! The output of the code produced by this plugin has to be styled by a template. And no - I don't think that it has to be a table! The way DW styles the index as an unordered list is quite OK in my opinion. So one possible way could be, to integrate this feature in the Dokuwiki default template, configured by some additional conf-variables.

In my opinion a navigation plugin should give the user the possibility to choose between an autogenerated navigation and/or a special site for the navigation for each namespace, respecting the users rights (set by ACL). I'm looking for such a plugin, because the html_index function does not fit my needs. I want the navigation to be automatically generated. When clicking on a namespace item the ns:index page should be shown (therefor it's a restriction of my wiki, that every NS has to have an index-page). Well I'm very much interested in developing such a plugin, but need a little help ;-)! — Gunther 2006-02-27 17:13
Yes, but why would you want to clutter up a page with non-dependant content?

The basic principles of both the sidebar templates are actually template independent. For me at least (I authored the first one in your list) the the sidebar template is a minor tweak over the default dokuwiki template that allows one or more extra Dokuwiki pages to displayed along with the main page. Other people have used the template concept to completely redefine the appearance of dokuwiki - some of those templates make use of the functionality the sidebar templates provide.

I think its reasonable for the content of sidebars to be dependent on its namespace, I am not sure I see the logic in implanting in a specific page non-connected information related to the namespace, wiki or website within which that particular page happens to reside.

For what its worth, right now, you could combine the include plugin and the div+span shorthand plugin with a suitably modified CSS to achieve what you want. — Christopher Smith 2006-01-29 23:36
I understand your point of view although my needs are to have editable and custom sidebars per page. Anyway, I think that a plugin for include a sidebar where util. If that, a desktop user could add sidebars without knowledge of any php code and system hierachy. That's all. I thinked about the possibility of make one. And if it exists, with function for listing all sub-namespaces of the page in sidebar is added for automatic sidebar. Regards, DXpublica.
As I said, include plugin, div+span shorthand plugin & css. All of these already exist.
#sidebar_left[{{page>thispage_sidebar_left}}]#
#sidebar_right[{{page>thispage_sidebar_right}}]#

Christopher Smith 2006-01-31 01:12

You can achieve what you are looking for with the boxes plugin by Christopher Smith:
<box 25% left>box contents</box>

. — Esther Brunner 2006-02-01 12:22

Chris, how can you really add the text in left sidebar?. I modify the main.php and I have the page like this:
<table id="table-estructura">
  <tr valign="top">
  <td id="left_tr_estructura">
   <div class="leftbar">Hola&nbsp;
   </div>
  </td>
  <td id="center_tr_estructura">
  <div class="page">
          <!-- wikipage start -->
          <?php tpl_content()?>
          <!-- wikipage stop -->
  </div>
  </td>
  <td id="right_tr_estructura">
    <div class="rightbar">&nbsp;
    </div>
  </td>
  </tr>
  </table>

I need leftbar and rightbar outside wiki page itself because I want to have wikipage itself centered (for instance with 50% of with) and sidebars in left and right that (with 25% of width). I installed div+span plugin, but when I typed ”#leftbar[hello]#” this plugin creates a leftbar inside wikipage (in div “page”) while I want outside, isn't?. How can I do for achieve it?

If you include your sidebar content within your wiki page, you'll need to handle all of the layout via CSS. The div+span plugin creates html markup within the wiki page which you can style using CSS. My personal opinion is its not an ideal method. If you handle it via the template you can use php to determine what page to display in each sidebar and display them using something along the lines of
print p_wiki_xhtml(wikiFN($name),'',false);

If however, its fixed text you want in the sidebar you can write it straight into your template - with appropriate html tags of course. — Christopher Smith 2006-02-20 01:52

Sorry Chris, this is too much technical answer to me. I'm not programmer and my native language is not english and surely I did not understand your explanations. Can you explain me in more concrete way?. Perhaps my explanations were not the ideal too. I will explain these better:
  • I want to have the wiki page self centered in the web page and in the left and right, sidebars that I want to edit in each page. Even, I would like to have the possibility of having several sidebars in each side. So the schema of the page is:

|left sidebar(s) | wiki page | right sidebar(s)|

  • I want to control the content of sidebars within the wiki page. The ideal for me is that when I edit wiki page, I could edit what I want in sidebars and that I could use the wiki syntax in this edition. For example:
     <sidebar left>
       ====== Main menu ======
         * Links
         * About
         * Index
     </sidebar>

     <sidebar left>
       ====== Friends ======
         * Niki
         * Bo
         * Jane
     </sidebar>

     ====== Main page ======
     This page is the main page of the 
     <sidebar right>
      ====== Subpages ======
      [...]
     </sidebar>

produces two left sidebars, the content page and one right sidebar

  • I'm conscient that I can't produce this code lonely. So I only pretend to write plain text in sidebars and of course produce only one left sidebar and one right sidebar
  • The problems that I found are:
    • I don't know how to put divs and tables into wiki page itself. If I want to achieve it, I have to modify tpl_content(), isn't it?. I analyse it but it's two complex for me. If I could transform
  <div class="page">
          <!-- wikipage start -->
          <?php tpl_content()?>
          <!-- wikipage stop -->
  </div>

in something structured like I want, it were perfect, but I don't understand it.

  • If I change
  <div class="page">
          <!-- wikipage start -->
          <?php tpl_content()?>
          <!-- wikipage stop -->
  </div>

for putting divs (<div class=“leftsidebar”> and <div class=“rightsidebar”>) into main, the I don't know the enought php language for when I typing <sidebar left>Hello</sidebar> into the wiki page, “Hello” appears in div leftsidebar outside the div class page. If I use div plugin, it puts “Hello” into page class and the sidebar is really a div into wiki page.

So I'm in trouble and I don't know where I can advance….

Can you suggest me the road? I will thank you very much…. Xan (DXpublica telefonica.net). Perhaps a modified div plugin for include div in specific div class: like ”#sidebar_left[leftsidebarclass][“text”]” where div class=“leftsidebar” is the div in which divplugin should put the code.

Perhaps the “default-sidebar” theme could serve you. Not of all. Xan
I've created a function and some instructions how to include a sidebar. You can find it here: http://www.woutersnel.nl/projects/dokuwiki/tpl_specialpages
 
wiki/discussion/sidebar_plugin.txt · Last modified: 2007/11/16 22:28 by 62.51.155.114
 
Imprint Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki
WikiForumIRCBugsTranslate