2024年2月5日发(作者:)

如何修改moodle——theme主题皮肤

如何修改moodle——theme主题皮肤

一 什么是Theme?

Moodle中Theme表示主题风格(页面皮肤),就是利用Theme,管理员可以定义站点的主题风格,课程创建者可以定义课程的主题风格,学习者可以定义自己喜欢的主题风格。

特点

每个页面都是可以通过CSS进行控制,允许你做非常微小的改动;

CSS中使用了简单、易懂的英文类命名;

新的模块会自动判断Moodle需要什么样的风格,并且会将其包括在主题风格中;

主题皮肤是基于Moodle中标准的theme来开发,标准的theme非常简单但是非常实用。你可以通过在自己开发的主题风格中添加stylesheet来覆盖标准的theme中样式。这就意味着如果升级Moodle后,你的自定义风格仍然可以使用,而不需要做任何改变,因为最新的一些classes将在定义在标准的theme中;

Themes也可以基于其他的一些主题风格进行修改。

Theme基础(一)

Moodle中Theme表示主题风格,就是利用Theme,管理员可以定义站点的主题风格,课程创建者可以定义课程的主题风格,学习者可以定义自己所看到课程的主题风格。

1、Moodle中的主题风格目录中有哪些文件?

pix文件夹

包括在moodle主题中要用到的所有图片和图标。

这个文件用于控制CSS如何运行,你可以将自己的Theme整合到标准的Theme中,也可以从其他的父theme中继承那些CSS文件。

(可选)

这个文件主要用于设置强制使用一些样式。

这个图标是会出现浏览器的地址之前的小图片。

图三

相比之下这个主题风格文件夹中就少了很多文件,包括少了几个css文件。

图四

从图四可以看出,"standardwhite"不仅使用“standard”中的所有CSS风格,而且使用自己定义的""文件。

2、微调二(使用“standard”的layout+自定义的fw_、fw_、fw_)前面一个例子中讲到的从“standard”中继承了四个CSS风格,同时引入了新的“”风格。这个例子中我们要新建一个主题风格“formal_white”,该主题风格要求不仅从“standard”继承它的layout风格,同时自己定义了fw_layout、fw_fonts、fw_color三个CSS文件。如图五所示:

图五

这样就可以通过修改主题风格中文件来指定对应的条目

$THEME->sheets = array('fw_layout','fw_color','fw_fonts'); $THEME->standardsheets =

array('styles_layout');

Theme基础(三)

使用parent theme(父主题风格)修改修改theme的时候,有一个特性就是可以将任何一个已经存在的主题风格作为“parent”theme,依据这个“parent”theme做出不同的主题。在“parent” theme中可能会将所有的CSS定义在这个主题风格中。然后用户在“child” themes中只是通过颜色参数引用颜色变量。这些“child” theme 仅需要一个CSS文件控制颜色的不同定义即可,或者这些“child” theme中只是在中控制logo,在“child” theme中不需要自己建立CSS文件。

"child" theme的基本设置为

$THEME->sheets = array('my_layout');建立一个my_文件

$THEME->parent = 'formal_white' 父主题名称

$THEME->parentsheets=array('fw_layout','fw_color','fw_fonts');从父主题继承的三个CSS

图一

从图中可以看出,该主题风格(child theme)不仅使用了"standard"的layout,而且使用了"formal_white"(parent)的fonts和color,结合在一起才形成了"child"(formal_white_plus)。

Theme基础(四)

不使用“standard”的主题风格这个主题风格将不使用"standard"主题风中的样式,而是使用自己定义的CSS。主要通过以下设置:

$THEME->sheets = array('styles_layout', 'styles_fonts', 'styles_color');

$THEME->standardsheets = false;

该主题风格不依赖于moodle中任何的其他theme的CSS样式,而是完全独立,这就意味着即使在“standard”中修改了样式,该主题风格照样不会受到影响。如图一所示:

图一

从图中可以看出,该独立主题风格使用的样式fonts、color、layout都是独立的。