开发者的章节是面向贡献Moodle代码,插件,主题等的开发者的
内容[hide] |
Moodle开发如何进行
overview of the Moodle development process 说明了Moodle如何开发和怎么成为开发者。当前的计划在Roadmap中罗列出来已经。
你也能参加Moodle Developer Courses.
开发手册
下面的开发指导对任何想向Moodle代码库贡献代码的人很重要:
- Coding guidelines 所有开发者必须遵守。
- Moodle architecture 给出了Moodle代码运行的综述
- Process 说明了变化怎么加入到 Moodle中
- Tracker guide 说明了Moodle跟踪器跟踪bug,问题,特性要求等
- Working with the Community 说明了怎么融入开发社区和讨论变化
- Unit tests 说明了怎么运行单元测试,怎么写新的单元测试
- Profiling PHP 分析你的代码找出运行慢的原因
- Fast portable SQL 展示了快的,高效的,能运行在所有数据库上的数据库技术.
- Development hints and tips 帮助你的Moodle开发的一般知识列表
核心组件
- Database abstraction layer 数据库抽象层
- Roles and Capabilities system 控制谁做什么的角色和权限系统
- Forms library 创建易用安全的让用户编辑东西的HTML表单的表单库
- File API 管理Moodle存储的文件API
- The database schema 数据库模式
- What happens when you require config.php 你需要config.php时发生了什么
- lib/moodlelib.php
- lib/weblib.php 输出的东西
核心组件的文档
这章主要讲已存在Moodle代码特定组件的文档. 正在讨论或在开发中组件的讨论i在 developer notes 或roadmap.中能发现
下面的文档给出了一般的概述。对于更详细的一个函数一个函数的请参看 phpDocumentor(自动从代码的注解中产生) .
并且不要忘了最新的详细的代码怎么运行的描述你能用 PHPXref在线浏览代码.
标准发布版本包含的组件stribution
- Lesson Specification 课程定制
- Quiz module 测验模块
- SCORM module 1.5 schema SCORM模块1.5模式
你如何贡献
做新插件
M在Moolde代表模块,最简单最可行的向Moodle中加入新功能的方式是用很多插件API之一。有很多插件类型您能重写:
- Activity modules, 活动组件,参见 NEWMODULE Documentation (在过程中运行)
- and Sub-Plugins (2.0 Onwards)
- Admin reports 管理报告
- Assignment types 作业类型
- Authentication plugins 认证插件
- Blocks 块
- Content editors (2.0 onwards) 内容编辑器(2.0以上)
- Course Formats 课程格式
- Course reports 课程报告
- Course importers (2.0 onwards) 课程导入(2.0以上)
- Database fields 数据库域
- Database presets 数据库预制
- Enrolment plugins 报名插件
- Filters 过滤器
- Gradebook report 成绩单报告
- Gradebook export 成绩单导出
- Gradebook import 成绩单导入
- Message senders (2.0 onwards) 信息发送者(2.0以上)
- Mnet services Mnet服务
- Plagiarism detection plugins (2.0 onwards) 剽窃检测插件(2.0以上)
- Portfolio plugins (2.0 onwards) 组合插件(2.0以上)
- Question types 问题类型
- Question import/export formats 问题导入导出格式
- Quiz reports 测试报告
- Repository plugins (2.0 onwards) 库插件(2.0以上)
- Resource types 资源类型
- Search engine adapters 搜索引擎适配器
- Themes which are different in Moodle 2.0, and earlier versions. 主题
- User profile fields 用户资料栏目
- Web services (2.0 onwards)
- Workshop allocators (2.0 onwards) 讨论区分配
- Workshop forms (2.0 onwards) 讨论区论坛
- Workshop evaluators (2.0 onwards) 讨论区评价
所有插件都需要的信息
- Where to put language strings for your plugin 插件的语言字符串放哪
- Defining the database tables for your plugin 为你的插件定义数据库表
请看 Guidelines for contributed code对贡献Moodle代码有一个总体的认识.
有时写一个特有的插件不能满足你想要的, 在这种情况下你将用到本地定制 local customisations .
改变核心代码
不用PHP编程的贡献
未来计划
Moodle未来的计划的特性的想法和细节最初在 Using Moodle 中讨论. 开发者讨论与用户讨论混杂在一起可能一开始很奇怪但这是Moodle成功的原因之一。开发者和终端用户一起讨论未来Moodle的特性很重要.
一旦在论坛中想法成型就会在wiki中总结,或者作为 roadmap或 developer notes一部分. 在论坛中的这几项形成了更深的讨论的基础.
资源
- Developer FAQ - 经常被问及的问题, 特别对初学者很有用
- Finding your way into the Moodle code - 也是面向初学者
- Moodle tracker - bug报告, 特色要求和其他的跟踪的问题
-
- Firefox tracker search - 怎么设置 firefox 快速查找容易的查看moodle的错误
- Firefox Search Plugins - 更容易发现跟踪的问题
- Unmerged files - changes on the stable branch in CVS that have not been merged to HEAD
- Browse the code online:
- Moodle PHP doc reference - 在代码中没一个类每一个函数的注释中编译来的
- Database Schema - 最近的发布
- Development news and discussion section of Using Moodle course
工具
当操作Moodle代码时应用到的一些工具:
IDEs
- Setting up NetBeans for Moodle development - NetBeans for PHP是一种很好的开箱即用的编辑器.
- Setting up Eclipse for Moodle development - Eclipse 对于PHP是一个很好的工具, 如果你知道怎么设置.
- Setting up Vim for Moodle development
- Aptana Studio 2
- phpStorm - PHP Editor, XDEBUG, CSS-X-FIRE, GIT, File/Folder compare, Advanced Find & Replace, MySQL Integration... 杂论scellaneous
浏览器附加组件
- Firebug, see Firebug for details.
- Web developer extension
- ViewSourceWith - 主要的目标是用外部的程序查看页面源码,但你还能做其他很多事情。
杂项
- Ctags - 用标签文件浏览代码
- W3C HTML validator - Moodle已经做得用.
- Windows Installer - Windows Installer 开发者文档.
参见: Useful Development Tools forumi在 Introduction to Moodle Programming