将特定主题应用于特定页面

问题描述 投票:0回答:1

我想将“报告页面”上的主题更改为经典,而 Moodle 的其余部分仍保留在我的主主题上,即 moove。

我尝试了两种不同的方法:

1 - 从主主题文件夹内的 config.php 更改 $THEME->layouts 内的“report”部分,如下所示:

$THEME->layouts = [
  'report' => [
      'file' => 'report_theme.php',
      'regions' => ['side-pre'],
      'defaultregion' => 'side-pre',
  ],
];

在我更改它之前,它不是“report_theme.php”,而是“drawers.php”。我做的唯一一件事就是从经典主题的抽屉.php 中获取代码并将其粘贴到“report_theme.php”中,这是我在“moodle/theme/moove/layout”中创建的文件。它什么也没做,它继续了 moove 主题。

2 - 我尝试启用允许从 url 更改主题的选项,同时更改“moodle/reportbuilder/”上的 url。

首先,它是:

admin_externalpage_setup('customreports', null, ['id' => $reportid], new moodle_url('/reportbuilder/edit.php'));
navigation_node::override_active_url(new moodle_url('/reportbuilder/index.php'));

然后我把它改为:

$theme_report='&theme=classic';
admin_externalpage_setup('customreports', null, ['id' => $reportid], new moodle_url('/reportbuilder/edit.php' . $theme_report));
navigation_node::override_active_url(new moodle_url('/reportbuilder/index.php' . $theme_report));

它也没有做任何事情。

关于如何做到这一点有什么想法吗?抱歉,如果我提供的解决方案很愚蠢,我对此还比较陌生。 Moodle 版本:4.3.2

php moodle
1个回答
0
投票

尝试为特定页面强制使用主题

$PAGE->force_theme('classic');
© www.soinside.com 2019 - 2024. All rights reserved.