$linkcategories = true; } } } // Create a navigation object to use, we can't guarantee PAGE will be complete if (!isloggedin()) { $navigation->set_expansion_limit(navigation_node::TYPE_COURSE); } else { if (isset($block) && !empty($block->config->expansionlimit)) { $navigation->set_expansion_limit($block->config->expansionlimit); } } if (isset($block)) { $block->trim($navigation, $trimmode, $trimlength, ceil($trimlength / 2)); } $converter = new navigation_json(); // Find the actual branch we are looking for if ($branchtype != 0) { $branch = $navigation->find($branchid, $branchtype); } else { if ($branchid === 'mycourses' || $branchid === 'courses') { $branch = $navigation->find($branchid, navigation_node::TYPE_ROOTNODE); } else { throw new coding_exception('Invalid branch type/id passed to AJAX call to load branches.'); } } // Remove links to categories if required. if (!$linkcategories) { foreach ($branch->find_all_of_type(navigation_node::TYPE_CATEGORY) as $category) { $category->action = null; }
// // You should have received a copy of the GNU General Public License // along with Moodle. If not, see <http://www.gnu.org/licenses/>. /** * This file is used to deliver a branch from the site administration * in XML format back to a page from an AJAX call * * @since Moodle 2.6 * @package core * @copyright 2013 Rajesh Taneja <*****@*****.**> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ define('AJAX_SCRIPT', true); require_once __DIR__ . '/../../config.php'; // This should be accessed by only valid logged in user. require_login(null, false); // This identifies the type of the branch we want to get. Make sure it's SITE_ADMIN. $branchtype = required_param('type', PARAM_INT); if ($branchtype !== navigation_node::TYPE_SITE_ADMIN) { throw new coding_exception('Incorrect node type passed'); } // Start capturing output in case of broken plugins. ajax_capture_output(); $PAGE->set_context(context_system::instance()); $PAGE->set_url('/lib/ajax/getsiteadminbranch.php', array('type' => $branchtype)); $sitenavigation = new settings_navigation_ajax($PAGE); // Convert and output the branch as JSON. $converter = new navigation_json(); $branch = $sitenavigation->get('root'); ajax_check_captured_output(); echo $converter->convert($branch);