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 |
Moodle插件开发笔记4:基础知识四
7、配置Moodle Moodle的设置分别处于3个地方: 直接在config.php里hard code。 mdl_config table。可以通过administrative…