Other: Navigation buttons

Maintained by Davo Davo Smith
Add customisable navigation buttons (next/prev/etc.) to the bottom of each activity page (Moodle 1.9/2.0+)
308 sites
8 fans

Navigation buttons (for Moodle 1.9 / 2.0+)
This block adds customisable navigation buttons (first/previous/next/etc.) to the bottom of each activity/resource page in a course.

It is based on an idea from Penny Mondani: http://pennymondani.com
Thanks also to the US company that sponsored the development, who wish to remain anonymous.


  1. Download the file and unzip it somewhere convenient.
  2. On your server, in the 'blocks' folder, create a subfolder called 'navbuttons'
  3. Upload all the files inside the 'davosmith-moodle-navbuttons-???????' folder to this new 'navbuttons' folder on your server.
  4. Log in to your Moodle site as an administrator and click on the 'Notifications' option in the Admin settings block.
  5. You need to make a small change to one Moodle core file to make this work (the change is different between Moodle 1.9 & Moodle 2.0 - see the included README.txt for details).
  6. Add the block to a course (turn editing on, select 'Navigation Buttons' from the 'Blocks - Add' menu)
  7. Customise the button appearance by clicking on 'Edit the Navigation Button settings' in the newly created block.
  8. Check the message at the bottom of the screen (under the 'Save changes' button) - it should read "Navbuttons self-test: required core modifications have been completed successfully". If not, then go back to step 5 above and check carefully.

Note: The block is only visible to users who are able to edit courses modules. Deleting the block will remove the navigation buttons (they can also be disabled through the settings).

For a quick demo, there is a screencast available here:


Screenshot #0


Davo Smith (Lead maintainer)
Please login to view contributors details and/or to contact them

Comments RSS

Show comments
  • Picture of riddhi shah
    Sat, 16 May 2015, 9:21 PM

    I want to add navigation buttons to all the courses by default. Could you please guide me what to do?
  • Davo
    Sun, 17 May 2015, 2:01 AM
    Riddhi - adding navigation buttons to all courses by default would require some extra development work; the current plugin does not support doing that.
  • Picture of sandip patel
    Fri, 31 Jul 2015, 8:17 PM
    i have installed blocks_navbuttons plugin in my moodle application and follow the steps for the configuration and also change the code as per the README.txt file but still message is appeare

    "Navbutton self-test: The line "$output = draw_navbuttons().$this->container_end_all(true);" has not been correctly added to outputrenderers.php - see README.txt for further instructions"
  • Picture of sandip patel
    Fri, 31 Jul 2015, 9:47 PM
    when i change the clean them it is working fine
  • Picture of sandip patel
    Fri, 31 Jul 2015, 10:00 PM
    I have replaced the same code in this file and its working fine "theme/uikit/renderers/core_renderer.php
  • Picture of Inter Jos
    Wed, 5 Aug 2015, 3:08 AM
    Hi, I installed the plugin and changed the /lib/outputrenders.php file as described. The navigation buttons come up perfectly!!
    But... in the backend, when I click on 'courses' to go to a specific course, I get the following error:

    Debug info:
    Error code: codingerror
    Stack trace:

    line 5721 of /lib/accesslib.php: coding_exception thrown
    line 7338 of /lib/accesslib.php: call to context->get_course_context()
    line 48 of /blocks/navbuttons/block_navbuttons.php: call to context_block->get_course_context()
    line 288 of /blocks/moodleblock.class.php: call to block_navbuttons->get_content()
    line 230 of /blocks/moodleblock.class.php: call to block_base->formatted_contents()
    line 971 of /lib/blocklib.php: call to block_base->get_content_for_output()
    line 1023 of /lib/blocklib.php: call to block_manager->create_block_contents()
    line 473 of /lib/outputrenderers.php: call to block_manager->ensure_content_created()
    line 52 of /theme/mytheme/layout/columns3.php: call to core_renderer->standard_head_html()
    line 1015 of /lib/outputrenderers.php: call to include()
    line 945 of /lib/outputrenderers.php: call to core_renderer->render_page_layout()
    line 59 of /course/index.php: call to core_renderer->header()

    If I go back and click on ' courses' again, the error is gone. This happens every time I click on 'courses'. I use Moodle 2.9.1+
    I really love and need this navigation buttons, can someone help me on this?

  • Davo
    Thu, 6 Aug 2015, 4:49 AM
    In case anyone else sees this comment - the issue was the block being added to a page outside of a course. The latest code on github now treats this as a non-fatal error (it is not a useful thing to do, but it is no longer an actively harmful thing to do). I'll release a new official version at some point.
  • DigiDago
    Fri, 22 Jan 2016, 7:38 AM

    Thank you for your plug-in. I have looked to integrate this kind of navigation during a long time. It works fine with my Moodle 3.0.

    Best regards.
  • Picture of Aniket Sankpal
    Tue, 2 Feb 2016, 6:08 PM
    Hi anyone knows Which database files will get affect with this plugin?
  • Davo
    Tue, 2 Feb 2016, 6:12 PM
    There are no database files affected by this plugin, as the database does not have any files in it.
    The table the plugin stores its data is defined here: https://github.com/davosmith/moodle-navbuttons/blob/master/db/install.xml
  • Picture of Usman Asar
    Fri, 4 Mar 2016, 7:25 AM
    Davo, as people have mentioned this working with Moodle 3.0, can you as well update the plug-in showing Moodle 3.0+ supported?
  • Picture of Kostas St
    Tue, 2 Aug 2016, 7:45 PM
    I have successfully installed the plugins and everything works just fine. I have replaced the default icons with my own but there is a blue colored background behind them and I would like to remove it. Do you have any ideas about how I could do that?
  • Picture of Ishani Vardhan
    Thu, 23 Feb 2017, 6:48 PM
    Hi Dave,

    Firstly good job on the plugin.

    We have various Moodle installs, all v3+ (3.0, 3.2, etc). Would your this plugin work for these versions?

    If it will work for v3+, then in order to have previous/next buttons across activities of all course, would we need to the block for each course/activity or is there a setting that could be configured for all activities across all courses?

    Your earliest response is greatly appreciated.

  • Davo
    Thu, 23 Feb 2017, 7:26 PM
    Ishani, I'm not aware of any problems with running this plugin on Moodle 3.2 (although I've not tested it with that version). It certainly works with 3.0 & 3.1 (as indicated at the top of this page).

    This block only works on a per-course level, in theory it would not be that hard to extend it to work across the entire site, but I've never sat down and rewritten the code to work that way.

  • Picture of Ishani Vardhan
    Thu, 23 Feb 2017, 8:38 PM
    Thanks for the quick response @Davo Smith, appreciate it.

    I will give it a go and see how it turns out. All we need is for students to scroll through activities using "Prev/Next" links from within the activity and not go to the Course front page every now and then to move to the next activity.
1 2 3 4 5
Please login to post comments