2010-02-04 72 views

回答

2

只需添加一个名为styles.php文件到模块的文件夹。 该文件在解析时应输出CSS代码。

当构建页面的CSS布局时,Moodle进入每个模块的文件夹并查找该文件。

一些主题可以在主题的config.php文件使用一个特殊的设置

$THEME->modsheets = true; 

/// When this is enabled, then this theme will search for 
/// files named "styles.php" inside all Activity modules and 
/// include them. This allows modules to provide some basic 
/// layouts so they work out of the box. 
/// It is HIGHLY recommended to leave this enabled. 

这里是一个什么可能是这个styles.php文件的内容很短的样品忽略这些文件:

/* simple CSS code */ 
.left { float:left; } 

/* php that generate CSS code */ 
< ?php if (right_to_left()) {echo ".right:text-align:left;"} 
else {echo ".right:text-align:right;"} ?> 
+3

谢谢。有一个风格的.php文件听起来像是一个异端,但这正是Moodle做它的方式,我们需要和它一起生活。 – 2010-06-24 08:35:02

+0

好吧,它只是为了方便为php程序员生成CSS代码。可以为不同的语言(RTL或LTR)输出不同的CSS代码。最终,所有这些文件都被收集到一个文件中,并将MIME类型设置为“text/css”。所以浏览器最初并不知道它是一个php文件。我认为它有点不错:-) – nadavkav 2010-06-25 00:15:34

+0

你也可以在你的块/模块的目录中包含一个style.css,并且Moodle应该能够检测并拾取它。 – rlorenzo 2011-06-02 23:47:45

0

也许可以看看lib/weblib.php中定义的function print_header_simple()

如果您正在编写一个模块来生成模块特定的页面,并且它们使用正常的moodle库,那么在$meta中插入一些内容,以便在页面生成时添加到<head>部分。

lib/weblib.php

function print_header_simple($title='', $heading='', $navigation='', $focus='', $meta='', $cache=true, $button='&nbsp;', $menu='', $usexml=false, $bodytags='', $return=false) { 

这意味着你可能要像你的模块中的以下内容:

$extra_css = $CFG->wwwroot.'/theme/SUPA4/supa_report.css'; 
$extra_css_meta = '<link rel="stylesheet" type="text/css" href="'.$extra_css.'" />'; 
print_header_simple($mytitle, "", $navigation, "", "", true, "", navmenu($course), '', $extra_css_meta); 
+0

我会检查一下。谢谢。 – 2010-03-17 13:38:05