Moodle插件开发笔记4:基础知识四

7、配置Moodle Moodle的设置分别处于3个地方: 直接在config.php里hard code。 mdl_config table。可以通过administrative…

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

作者: admin

为您推荐

联系我们

联系我们

邮箱:

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部