Drupal 给我们提供了两个钩子函数可以让我们去修改表单,用的就是 hook_form_alter ,还有一个是 hook_form_FORM_ID_alter .. 它们可以修改核心自带的或者其它的模块里面创建的表单 .. 要修改表单我们需要先知道这个表单的 id 号 .. 比如我要修改一下页面上的这个搜索框 ..
检查一下这个表单 .. 在 form 标签上的 id 这个属性里面的值就是这个表单的 id 号 .. 这里就是 search block form ..
另外我们也可以查看 Drupal 的源代码 .. 比如我知道这个区块是核心的 serach 模块提供的 .. 找开 core .. modules .. 找到 search 这个模块 .. 打开它的 src .. 这里的 Form 目录就是模块创建的一些表单 ... 在这里有一个 SearchBlookForm.php .. 它里面定义的就是我们刚才看到的那个搜索表单 ..
找到它的 getFormID 这个方法 .. 这里返回的就是表单的 id 号 .. 在修改表单的时候我们需要用到这个 id 来定位到这个表单 ..
这个表单里的元素,可以在 buildForm 这个方法里找到 .. 比如这个 keys .. 就是我们刚才在页面上看到的那个搜索表单里的那个文本框 .. 你可以看到,它的类型是 search .. 上面还有一些其它的属性 ..
你可以直接修改这个地方的源代码,不过在升级 Drupal 以后,我们做的修改就不见了 .. 所以正确的做法就是使用 hook ..
在我们自己定义的模块或者主题里面,可以使用 Drupal 提供的 hook .. 找到我们自己创建的这个模块 .. 在它的根目录下面创建一个新的文件 .. 文件的名字先用一下模块的名字 .. 后缀使用一个 .module .. 在这个文件里面我们就可以去实施一下想要用的 hook ..