在Drupal中添加自定义HTML表单可以通过以下步骤完成:
name: Custom Form
type: module
description: Adds a custom HTML form to Drupal.
core_version_requirement: ^8 || ^9
package: Custom
version: 1.0
use Drupal\Core\Form\FormBase;
use Drupal\Core\Form\FormStateInterface;
/**
* Implements a custom form.
*/
class CustomForm extends FormBase {
/**
* {@inheritdoc}
*/
public function getFormId() {
return 'custom_form';
}
/**
* {@inheritdoc}
*/
public function buildForm(array $form, FormStateInterface $form_state) {
$form['name'] = [
'#type' => 'textfield',
'#title' => $this->t('Name'),
'#required' => TRUE,
];
$form['email'] = [
'#type' => 'email',
'#title' => $this->t('Email'),
'#required' => TRUE,
];
$form['submit'] = [
'#type' => 'submit',
'#value' => $this->t('Submit'),
];
return $form;
}
/**
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
// 处理表单提交的数据
$name = $form_state->getValue('name');
$email = $form_state->getValue('email');
// 在这里执行你的自定义逻辑,例如保存表单数据到数据库
// 提示用户提交成功
drupal_set_message($this->t('Form submitted successfully.'));
}
}
/**
* Implements hook_block_info().
*/
function custom_form_block_info() {
$blocks['custom_form'] = [
'info' => t('Custom Form'),
'cache' => DRUPAL_NO_CACHE,
];
return $blocks;
}
/**
* Implements hook_block_view().
*/
function custom_form_block_view($delta = '') {
$block = [];
switch ($delta) {
case 'custom_form':
$block['content'] = \Drupal::formBuilder()->getForm('Drupal\custom_form\Form\CustomForm');
break;
}
return $block;
}
这样,你就成功地在Drupal中添加了一个自定义HTML表单。根据你的具体需求,你可以进一步扩展和定制表单的功能和样式。如果你想了解更多关于Drupal的表单开发和定制的信息,可以参考Drupal官方文档。
领取专属 10元无门槛券
手把手带您无忧上云