DokuWiki

It's better when it's simple

User Tools

Site Tools


plugin:npd

New Page Dialog Plugin

Compatible with DokuWiki

weatherwax, binky, "ponder stibbons"

plugin A dialog which helps people creating new pages.

Last updated on
2015-11-05
Provides
Action
Repository
Source

Similar to addnewpage

Tagged with button, create, form

Installation

Install the plugin using the Plugin Manager and the download URL above, which points to latest version of the plugin. Refer to Plugins on how to install plugins manually.

Add Button to Template

Decide where you want to insert the “Create New Page” button in your template and insert the following code:

if (!plugin_isdisabled('npd') && ($npd =& plugin_load('helper', 'npd'))) { 
    $npd->html_new_page_button();
}

Most likely you want to do that in the /lib/tpl/default/main.php inside the <div id="bar__bottomright"/> as follows:

<div class="bar-right" id="bar__bottomright">
  <?php if (!plugin_isdisabled('npd') && ($npd =& plugin_load('helper', 'npd'))) $npd->html_new_page_button(); ?>
  <?php tpl_button('subscription')?>
  <?php tpl_button('admin')?>
  <?php tpl_button('profile')?>
  <?php tpl_button('login')?>
  <?php tpl_button('index')?>
  <?php tpl_button('top')?>&nbsp;
</div>

Note that the button will only be shown if the browser is JavaScript enabled.

Exception: The template DokuBook has the New Page Dialog-button automatically added.

Examples/Usage

Screenshot

This plugin solves a pain point for many newcomers to wikis: How to create a new page. It focuses on the way people are used to storing files and aims to resemble a regular “Save As” dialog with “Add Folder” functionality.

Clicking on the button opens this pop-up which allows to create new folders and pages in existing folders.

Configuration and Settings

Note: Configuration settings of plugins can be controlled by the Configuration Manager plugin.

This setting controls the appearance of the page creation action:

  • The value link will cause it to appear as an HTML link element, similar to this:
    <a href="...">Create New Page</a>
  • The value button (default) will cause it to appear as an HTML form element with a button, approximately like this:
    <form> <div class="no"> <input class="button"/> </div> </form>

Choose this setting according to your template.

Development

This plugin has been adopted from new page dialog plugin by Pierre Spring.

Change Log

  • 2015-11-05
    • Fixes an issue with adding a page below two levels, by thylacine222
    • Updates spanish localization by Patricio Parraguez
    • Updates korean localization by Myeongjin
    • Adds bulgarian localization by Neli Dimitrova
  • 2014-06-16
    • Adds japanese localization by Hideaki SAWADA
    • Adds informal german localization
  • 2014-01-23
    • Initial release
    • Compatible with DokuWiki version after Angua
    • Removes confirmation dialog

FAQ

Known issues

Adding this button to a template is rather cumbersome and breaks when a template is updated. There must be a better way to do this.

Discussion

No-name behaviour and integration

Dear author of this plugin, thanks for the plugin and some feedback: I like the general idea and I tried it for our local wiki, because I see the same problem for new users as you. However, two points finally stopped me using it, and I would like to inform you about them :

  • Plugin accepts “no name” creation: The more important point. In the dialog box, creation of a page is possible without typing the name. A default name is then assumed (I think it was “page title”). This will lead to many pages with this standard name all over the namespaces, because people tend to forget. It should IMHO rather refuse to create a page if no name was typed (silently or infobox).
  • The integration into the template proved to be a bit difficult, although I got more or less there in the end. 1) Obviously, this is primarily a template question, but on the plugin side, a more flexible integration might be possible: Now, the plugin provides only a whole block of html code (either button or link with stuff around), but providing the pure url (maybe via another function like html_new_page_url) would be more flexible for integration.

Best, Nøk (@2014-03-12)

Hi @all,

my simple complete solution of adding new pages is to show a little text-input field to give a name. The value will be sent by jQ to DW.

See the simple script to put in the main.php of your theme:

// 2 lines of php (of course in  a php area ;-)

	$uriinput = ($_SERVER['REQUEST_URI']);
	$urioutput = basename($uriinput); 


// and the following inside a html area

<script type="text/javascript">
//<![CDATA[
if (typeof jQuery == 'undefined') {
    var script = document.createElement('script');
    script.type = "text/javascript";
    script.src = "http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js";
    document.getElementsByTagName('head')[0].appendChild(script);
};

$("#create_new_page").on("submit", function(event){     
    event.preventDefault();
    name = $("#jq_read_field").val();    
    if (name <> 0)
    { 
        window.location.href = "/?id="+ name +"";
    }
    else
    {
        alert("Please enter a name for your page.");
    }
});
//]]>
</script>

<form method="get" id="create_new_page">
  <input class="edit" type="text" name="id" id="jq_read_field" value="<?php echo $urioutput; ?>" size="32" maxlength="100" />
<input type="submit" value="Go" />
</form>

Onload value of field will be actual site and if you type something in and press go, the script will send you to the page or if its not existing, to a blank.

Cheers

Adjusting the action appearance to the toolbar of the dokuwiki template

The dokuwiki template of the current DokuWiki version (Hrun) has a nice toolbar to the right of each page, with icons that pop out a menu when hovering over them. While the link appearance of this plugin matches that better than the button appearance, it still looks inconsistent.

Changing the link case in the file dokuwiki/lib/plugins/npd/helper.php as follows lets the “Create New Page” action have the same appearance as the actions in that toolbar:

  case 'link':
    $ret .= '<li><a rel="nofollow" href="'.$url.'" style="display:none;" id="npd__create_button" class="action create" title="'.$label.'"><span>'.$label.'</span></a></li>';
    break;

Using class=″action create″ selects the page creation icon from the pagetools icons of the dokuwiki template, it looks like the pen of the edit icon, with a plus-sign in the lower right corner.

Happy adjusting!

1)
Using the default “Dokuwiki” template (the old “default” template as assumed in the description here is not the default any more), I wanted to put it into the page actions menu floating on the right. With the button it is not possible, but with the settings of the plugin set to “link” and putting <li></li> around it, it shows up. Drawback: the icon is the standard “edit” pencil, and I did not see how to change it.
plugin/npd.txt · Last modified: 2015-11-05 08:38 by cstuder