[gelöst] D8: Gibt's eine Variable für den Hostnamen?
am 15.05.2016 - 18:22 Uhr in
Hallo zusammen,
ich habe hier eine D8-Installation, bei der ich mit dem Modul Domain Access die Inhalte verschiedenen Domains zuordne.
Nun würde ich den Domains auch gerne verschiedene CSS-Dateien zuordnen. Die einfache Idee war, in html.html.twig den Hostnamen abzufragen und in dieser Abhängigkeit das jeweilige Style-Sheet ergänzend zuladen. Nun scheitere ich schon daran, über twig den Hostnamen herauszubekommen.
Was alles nicht geht:
{{ app.request.getSchemeAndHttpHost() }}
{{ app.request.getSchemeAndHttpsHost() }} - sind https-Domains
{{ app.request.getBaseURL() }} - BaseURL ist nicht gesetzt
{{ directory }} - gibt nur den Pfad aus, nicht den Hostnamen
Hat jemand eine Idee, wie man das noch lösen könnte? Ich hab's auch schon über CSS versucht, aber @-webkit-document domain funkt nicht in Chrome.
thx, Bernd
- Anmelden oder Registrieren um Kommentare zu schreiben
preprocess
am 17.05.2016 - 06:37 Uhr
Moin.
Du kannst in der entsprechenden preprocess-Funktion (
THEMENAME_preprocess_html()
) entweder\Drupal::request()->getHost()
oder\Drupal::request()->getHttpHost()
abfragen (je nachdem, was Du haben möchtest) und dann als Variable für das Template ablegen.hth,
 Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
danke!
am 17.05.2016 - 13:18 Uhr
prima, danke für den Tipp! Ich habe es jetzt gelöst mit
function THEMENAME_preprocess_html(&$variables) {
$variables['host_name'] = \Drupal::request()->getHost();
}
in THEMENAME.theme und
{% if host_name == 'EXAMPLE.COM' %}
<style media="all">
@import url("PATH/style.css?{{ random() }}");
</style>
{% endif %}
in html.html.twig. Läuft.