首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据域更改首页

根据域更改首页
EN

Drupal用户
提问于 2019-10-22 07:54:12
回答 1查看 185关注 0票数 1

我需要编写一个自定义模块来将一些用作首页的静态页面映射到特定的域。例如,

  • 如果域为www.abc.com,则首页应为static_page_1
  • 如果域为www.bcd.com,则首页应为static_page_2。

我已经为管理员用户做了一个表单,让他们输入域名和他们想要的静态页面作为首页,但是现在我不知道在哪里和如何编写检测域名和设置首页的代码。如有任何信息和建议,将不胜感激。

EN

回答 1

Drupal用户

回答已采纳

发布于 2019-10-23 04:13:48

我已经通过引用以编程方式设置每个站点的首页?找到了答案。它比引用简单得多,因为我只想用我的静态页面映射域,而且我没有多站点drupal。因此,我只需添加一个事件订阅服务器,并将所有映射放在那里。

在getSubscribedEvents方法中,需要将权重设置为大于30,这将覆盖Page和Dynamic。

代码语言:javascript
复制
$events['kernel.request'] = ['kernel_request', '35'];

在同一事件订阅服务器文件中添加此函数

代码语言:javascript
复制
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();

}
}
票数 0
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/287557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档