我需要编写一个自定义模块来将一些用作首页的静态页面映射到特定的域。例如,
我已经为管理员用户做了一个表单,让他们输入域名和他们想要的静态页面作为首页,但是现在我不知道在哪里和如何编写检测域名和设置首页的代码。如有任何信息和建议,将不胜感激。
发布于 2019-10-23 04:13:48
我已经通过引用以编程方式设置每个站点的首页?找到了答案。它比引用简单得多,因为我只想用我的静态页面映射域,而且我没有多站点drupal。因此,我只需添加一个事件订阅服务器,并将所有映射放在那里。
在getSubscribedEvents方法中,需要将权重设置为大于30,这将覆盖Page和Dynamic。
$events['kernel.request'] = ['kernel_request', '35'];在同一事件订阅服务器文件中添加此函数
public function kernel_request(Event $event) {
$config = \Drupal::configFactory()->getEditable('system.site');
$site_path = \Drupal::service('site.path');
$site_path = explode('/', $site_path);
$site_name = $site_path[1];
if ($site_name === 'site2' && $event->getRequest()->getPathInfo() == '/') {
$config->set('page.front', '/node/239')->save();
}
else {
$config->set('page.front', '/home-content')->save();
}
}https://drupal.stackexchange.com/questions/287557
复制相似问题