除了常见的html表单之外,typecho还支持一种隐藏域,网上搜索了一下关于隐藏域的作用,360百科是这么解释隐藏域的:隐藏域是用来收集或发送信息的不可见元素,对于网页的访问者来说,隐藏域是看不见的。当表单被提交时,隐藏域就会将信息用你设置时定义的名称和值发送到服务器上。
隐藏域的优点
- 不需要任何服务器资源;
- 支持广泛,任何客户端都支持隐藏域;
- 实现简单,隐藏域属于HTML控件,无需像服务器控件那样有需要编程知识。
隐藏域的不足
- 具有较高的安全隐患;
- 存储结构简单;
- 如果存储了较多的较大的值,则会导致性能问题;
- 如果隐藏域过多,则在某些客户端中被禁止;
- 隐藏域将数据存储在服务器上,而不存储在客户端。
主题设置页中隐藏域
对于一个主题设置页面来说,上述的优缺点并不完全使用,这个隐藏域的hidden仅仅会展示于后台设置页,对于具体主题来说,只是设置了一个隐藏的php变量,该变量不显示于主题设置页面,但可以在主题中全局引用。因为还没有实际动手尝试写一个主题,以上仅仅是尝试之后的浅见。
实现隐藏域的代码
隐藏域只需要提供3个参数就可以了,前面的label标签与后续的说明文字即便设置了也不会被显示出来,设置了隐藏域之后,前台的调用方式同文本框一致:
function themeConfig($form) {
$hiddenTest =new Typecho_Widget_Helper_Form_Element_Hidden('hiddenTest',NULL,'I AM A TEST HIDDEN');
$form->addInput($hiddenTest);
}