开发新脚本

目录结构

组成系统的脚本被分成几个目录,然而,webERP脚本的主要部分在第一级目录。

header.inc
$title被设置为页面名称后,需要引用这个文件。这个文件依赖已经上传的config.php,因此session.inc(它依序包含了config.php)必须在header.inc之前引用。这个脚本的代码有以下作用:

footer.inc


这个文件包含小的logo,公司名称和版权信息,使用双引号标签。


config.php


config.php
中的变量可以由所有引用了session.inc的脚本访问。现在已经没有那么多变量了,大多配置使用config表保存在数据库中。然而,让软件连接数据库信息的变量,例如数据库用户,密码和主机连同数据库类型—dbtype—实际上仅仅支持mysql,但是有两个库可以使用,一个是mysqli和旧的mysql函数。还有一些其他的变量包括时区timezone$rootpath—web服务器存放系统文件的地方。还有error_reporting代码。


在使用了session.incheader.inc开始了页面之后 – 然后使用footer.inc结束,这些保证页面看起来和可以感觉到的一致性工作大部分完成了。


PDFStarter.php


不适于引用session.inc或者header.inc的唯一场合是要创建pdf脚本。PDFStarter.php包含启用session和检查适当的用户权限以及使用$PageSecurity(它必须在包含PDFStarter.php前定义)检查指定页面的访问权限。正常情况下,config.phpConnnectDB.incPDFStarter.php脚本中被分开引用(并且在PDF_starter_ros.inc)之前。PDF报告脚本全部使用FPDF类,它由Oliver Plathey创建,但是在此之前使用了另一类,因此有个扩展来将调用旧的pdf类翻译到FPDF类。可能最好用FPDF语法写新的脚本。

Database Abstraction - ConnectDB.inc


当系统使用MySql开发的时候,有一个事情一定要记住,就是用户不应该被强制使用Mysql—以与开源的原则保持一致。因此所有对于数据库的请求都通过ConnectDB.inc中的抽象函数进行。这个政策被严格执行,不符合这个原则而研发的扩展将破坏目前数据库之间的可移植性。不用PHP数据库特定的函数,而是要用定义在ConnectDB_mysql.inc里的函数


函数的完整列表需要从includes/ConnectDB_mysql.inc取得—它包含mysql指定的抽象函数。仅仅这些函数可以在其他脚本中使用。研发过程中,已经极为谨慎地确保全部使用标准的SQL规范,以保证数据库转换的问题最小。任何关系型数据库RDBMS的特定SQL都要避免(mysql也不例外),以支持通用的SQL标准。有过使用mysql特定SQL的例子,例如INTERVALSHOW TABLES--但这些都已是历史。


DateFunctions.inc


这脚本包含很多在整个系统中用来处理日期的函数—这些函数依靠系统的配置 SESSION['DefaultDateFormat']. 最常见的是:


SQL_CommonFuctions.inc


这个脚本有些在整个系统中使用的共同函数--特别是: