3

I need to create a list of elements in a Moodle 2.x theme setting for which I will enable drag and drop re-ordering using Moodle's included YUI. My problem is that I don't know how to add my custom HTML/JS with a custom theme setting. I can only find documentation about adding settings with the pre-defined functions offered by Moodle, like admin_setting_configtext or admin_setting_configselect or admin_setting_configtextarea etc... How do I go about creating my own markup and use my own javascript in a theme setting page? Thanks!

1 Answer 1

3

You can create a custom page using Moodle, remember to require the config and set up the page:

require('../../../config.php'); require_once($CFG->libdir.'/adminlib.php'); //page definition $PAGE->set_context(get_context_instance(CONTEXT_SYSTEM)); $PAGE->set_url('/theme/your_theme/admin/manage.php'); $PAGE->set_pagetype('theme_name_manage'); $PAGE->set_title('Manage your theme'); $PAGE->set_heading('Manage your theme'); echo $OUTPUT->header(); //Page content echo $OUTPUT->footer(); 

From this page you can define whatever setup or configuration you want. Finally you will want to add this page to the site admin navigation. Make sure you have a settings.php in the root directory of your theme and within that file you'll be wanting something like this:

if ($hassiteconfig) { // needs this condition or there is error on login page $ADMIN->add('themes', new admin_externalpage('theme_name', 'Manage Theme XYZ', $CFG->wwwroot."/theme/name/admin/manage.php", 'moodle/site:config')); } 

Themes being the reference for the "themes" admin menu I figure you probably want to add this to. Remember that you should be using get_string in the above examples instead of hard-coding strings.

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.