getBootEntry($entry); } elseif ($entryId !== false) { $entry = MenuEntry::get($entryId); $data = $builder->getMenuEntry($entry); } else { // Get bootstrap code if required... $data = $builder->bootstrapLive(); if ($data === false) { // ...otherwise, generate normal code $menuId = Request::get('menuid', false, 'int'); if ($menuId !== false) { $menu = IPxeMenu::get($menuId, true); } else { $menu = IPxeMenu::forClient($builder->clientIp(), $builder->uuid()); } $data = null; // In exam mode, either skip menu if only one entry, or shorten timeout to 1 second $isExamMode = Module::isAvailable('exams') && Exams::isInExamMode([Location::getFromIpAndUuid($builder->clientIp(), $builder->uuid())]); if ($menu->itemCount() === 1 && ($menu->timeoutMs === 0 || $isExamMode)) { // One entry, no timeout -- direct boot $entry = $menu->defaultEntry(); if ($entry !== null) { $data = $builder->getMenuEntry($entry); } } elseif ($isExamMode) { $menu->timeoutMs = 1000; } if ($data === null) { // Show menu $data = $builder->getMenu($menu, true); } } } $builder->output($data); })();