1.mosDBTable类如何使用?
一般来说通过扩展基类mosDBTable类我们可以得到一个与我们数据库中真实的表结构相关的扩展类,比如核心组件com_contact中的contact.class.php文件中就是定义该组件所使用的数据表相关的mosDBTable类。而对数据库的操作都可以通过这个类来完成。其中一个数据表类如下
class mosContact extends mosDBTable { /** function check() { |
这个类与jos_contact_details数据表是一一对应的,其中类的成员变量就是数据表的字段,正因有如此的对应所以我们通过类的一些方法就可以直接操作数据库,这个就是数据库自动化操作的一个基本原理。
2. bind()方法。
该方法提供了数据绑定功能,将数据绑定到mosDBTable数据对象上方便后面与数据库的交互操作。最实际的应用,当通过表单提交上来了数据之后,我们可以通过该方法将表单数据首先绑定到数据对象上,然后再进一步操作数据库。如下的代码就是将表单数据绑定到数据对象上,有点类似JAVA中的BEAN FORM.
$row->bind( $_POST) |
该方法返回”BOOLEAN“类型值。
3. store()方法,将数据对象直接存入数据库。避免了我们再去写INSERT这样的SQL的繁琐工作,一句store足够了,怎么样是不是简单许多。
$row->store(); |
返回值一样是”BOOLEAN“值。
3.check()方法提供了数据对象的数据校验,如下:
function check() { // check for valid client contact // check for valid client email return true; |
以上函数是bannar组件中的一个验证方法,函数实现的功能比较简单就是对name,contact,email三个字段进行检查是否为空,如空则返回错误值。这个方法常用于表单提交过程的验证(服务器端验证),不过对于表单来说尽量还是使用JS在客户端就验证一下。
4. load(),前面几个方法都是往数据添加数据时候我们经常使用的,该方法是从数据库读取数据的时候使用。他需要一个参数数据表的id字段,通过该方法可以将数据表的数据直接添加到数据对象然后方便我们然后方便我们获取。
$cat = new mosCategory($database); |
以上是weblink组件中用于显示某分类具体信息的两句,前一句实例化数据对象,后一句调用load方法绑定数据到数据对象。在接下来的调用数据只要输入$cat->name,$cat->title等等即可。
以上四类方法包含了读写数据库和表单验证的一般方法,当然还有其他18类方法没有介绍,有兴趣的可以参考官方文档看看其他的方法具体的使用。http://help.joomla.org/content/category/12/108/125/
今天继续前面的文章讨论joomlaAPI里面的mosHTML类。这个类的作用就是帮助生成一些页面内的HTML元素,比如我们经常用的<input>,<select>等等的。把这些元素做一个封装,我感觉好处就是在组建的编写里面更加方便,缺点也比较明显不再让人感觉那么灵活,而且初学者不了解J的朋友会有点莫名其妙。
<select> |
其中选项部分option来自数据库的数据的话,用mosHTML类的makeOption,selectList方法会更简单一些
下面这段代码来自核心组件com_bannar里面的一段下拉广告客户列表的部分
$clientlist[] = mosHTML::makeOption( '0', 'Select Client', 'cid', 'name' ); |
这段代码一共三行实现的功能就是下拉列表功能。makeOption就是增加一个<select id =''>里面的ID,和一个开始选择项的,另外定义一下下面的数据的类型,id 为cid,列表中显示的是name,后面的option都遵循此规范。
$clientlist就是通过数据库查询来补充下拉列表的数据,规范是由上面已经定义好了,即cid,name
最后一步就是组装了,将这些数据类型与HTML元素绑定,selectList 其中的class是CSS样式的定义,size是类型1表示单选下拉列表,当然其他数值比如2就可以显示为2项的多选框,这个看需要了。
以上代码再1.0.13者/administrator/components/com_bannar/admin.bannar.php中。