drupal 自定义页面如何实现?

Drupal中创建自定义页面,您可以使用以下步骤:
 
1.创建一个新的Drupal模块(如果您还没有一个),并在其中创建一个新的路由。
 
在模块中创建一个控制器类,并使用它来处理路由请求并返回自定义页面的内容。
 
创建一个模板文件,其中包含您希望在自定义页面中显示的HTML和CSS。
 
将模板文件与控制器类的方法相关联,以便在控制器类返回内容时,模板文件将用于呈现内容。
 
以下是更详细的说明:
 
创建新模块和路由
要创建一个新的Drupal模块,请创建一个包含.info.yml文件的新目录。 在该文件中,指定您的模块名称和其他相关信息。例如:
 
name: My Custom Module
type: module
core: 8.x
接下来,在模块中创建一个新的路由。要执行此操作,请创建一个my_custom_module.routing.yml文件,并在其中定义路由。例如:
 
my_custom_module.custom_page:
  path: '/custom-page'
  defaults:
    _controller: '\Drupal\my_custom_module\Controller\CustomPageController::customPage'
    _title: 'Custom Page'
  requirements:
    _permission: 'access content'
在上面的示例中,我们定义了一个名为my_custom_module.custom_page的路由,它将匹配/custom-page路径,并在访问该路由时使用CustomPageController类中的customPage方法来呈现页面。
 
创建控制器类
在控制器类中,我们将处理路由请求并返回我们的自定义页面。要创建控制器,请创建一个名为CustomPageController.php的新文件,并将其保存在my_custom_module/src/Controller目录中。在该文件中,编写以下内容:
 
<?php
 
namespace Drupal\my_custom_module\Controller;
 
use Drupal\Core\Controller\ControllerBase;
 
class CustomPageController extends ControllerBase {
 
  public function customPage() {
    $content = [
      '#theme' => 'custom_page_template',
      '#message' => 'Hello, world!',
    ];
 
    return $content;
  }
 
}
在上面的示例中,我们创建了一个名为CustomPageController的类,并在其中定义了一个名为customPage的方法,它将用于呈现我们的自定义页面。在此方法中,我们创建了一个名为$content的数组,该数组指定将在自定义页面中呈现的内容。在此示例中,我们使用了名为custom_page_template的Drupal主题,并在其中指定了要呈现的消息。
 
创建模板文件
接下来,我们需要创建一个模板文件,该文件将用于呈现我们的自定义页面。要执行此操作,请创建一个名为custom-page-template.html.twig的新文件,并将其保存在my_custom_module/templates目录中。在该文件中,编写以下内容:
 
<h1>{{ message }}</h1>
在上面的示例中,我们使用了Twig语法,该语法将渲染一个标题,其中包含我们在CustomPageController类的customPage方法中定义的消息。
将模板文件与控制器类相关联
最后,我们需要将模板文件与控制器类的方法相关联,以便在控制器类返回内容时,模板文件将用于呈现内容。要执行此操作,请将以下内容添加到CustomPageController类的customPage方法中:
 
return [
  '#theme' => 'custom_page_template',
  '#message' => 'Hello, world!',
];
在上面的示例中,我们将之前创建的$content数组替换为一个新的数组,该数组指定了要呈现的主题和变量。在此示例中,我们将主题设置为custom_page_template,并将消息设置为“Hello, world!”。当控制器返回此数组时,Drupal将使用Twig模板来呈现自定义页面。
 
到此为止,您已经成功地创建了一个自定义页面,并将其与Drupal中的模块和路由相关联。您可以访问/custom-page路径,以查看您的自定义页面。如果您需要添加更多的HTML,CSS和JavaScript来自定义您的页面,您可以将它们添加到模板文件中。