7、配置Moodle
Moodle的设置分别处于3个地方:

直接在config.php里hard code。
mdl_config table。可以通过administrative code and interfaces进行控制
mdl_config_plugins table。主要是存储来自各个plugin的设置。可以通过plugin administration来进行控制。
所有的配置信息都存在全局变量$CFG里(plugin的设置则会放在plugin变量里)。
例如:
$CFG->theme包含您网站的主题选定的文本名称。
config.php一开始会调用unset($CFG);来保证在config.php and setup.php之前清除所有的设置。
在config.php里,包含下列的设置:
$CFG->dbtype = ‘mysql’;
$CFG->dbhost = ‘localhost’;
$CFG->dbname = ‘moodle’;
$CFG->dbuser = ‘xxx’;
$CFG->dbpass = ‘xxx’;
$CFG->dbpersist = false;
$CFG->prefix = ‘mdl_’;
$CFG->wwwroot = ‘http://xxxx:8080/moodle’;
$CFG->dirroot = ‘E:/develop/Zend/Apache2/htdocs/moodle’;
$CFG->dataroot = ‘E:/develop/Zend/Apache2/htdocs/moodledata’;
$CFG->admin = ‘admin’;
$CFG->directorypermissions = xxx; // try 02777 on a server in Safe Mode
$CFG->passwordsaltmain = ‘xxxx’;
这是config.php最必须的设置,如果想在config.php里进行更多的设置,则要参看config-dist.php的所有的配置设置,然后修改config.php。
上述设置你可以直接在config.php里修改。
除了config.php之外的所有其他设置都存储在database的mdl_config 表and mdl_config_plugins 表里。
那么moodle何时把这些来自database的设置赋给$CFG?
就是在config.php里include了lib/setup.php,setup.php调用了
$CFG = get_config();
来执行。get_config()函数来自/lib/moodlelib.php库文件
注意:get_config函数不会对于在调用之前已经存在的设置进行覆盖。(will not overwrite any $CFG setting that has already been set)。即它不会覆盖config.php里的设置. 这意味着你可以在config.php里硬编码你希望的设置,在config.php最后一行include了setup.php,但来自database的设置如果与config.php里的设置同名,则不会覆盖它。
对configuration进行修改是通过set_config函数。该函数会以(name、value、plugin name (optional))作为参数。如果不使用第三个参数,那么set_confg就会把设置存储在mdl_config 表,如果使用这个参数,则存在mdl_config_plugins表里。
我们开发的通常是插件 (modules, blocks, and so on)。在开发过程中,如果你想添加设置的话,强烈建议使用mdl_config_plugins表来存储,即调用set_config时要用到plugin name参数。这是因为:设置的name必须唯一。如果你想添加设置到mdl_config表里,那么就有可能该设置的name已经存在,产生冲突。而对于mdl_config_plugins表,它多了一个”plugin” field,这就使你只要保证该设置的name在该plugin里是唯一的即可。
注意:plugin的设置则会放在plugin变量里,而不是存在$CFG里。
通常,我们都是通过administration interfaces来set configuration variables。绝对多数的Moodle configuration variables都可以在Site Administration block (用admin login后的home page会看到它)里进行设置。
8、Moodle API
绝大多数的api都放在lib目录下,该目录下的library php的命名方式是
[function]lib.php
例如textlib.php and weblib.php
几乎所有的核心库是包含的,当您通过config.php加载/lib/setup.php将其列入。
最常用的library有
• moodlelib.php
• weblib.php
• dmllib.php
• accesslib.php
• grouplib.php
Moodle还会用到一些开源的library,如
• PEAR
• ADOdb
• YUI
• XMLDB

四月 12th, 2017

Posted In: moodle

发表评论