Реализация поддержки поддоменов в OctoberCms в 2 шага
Часто нужны поддомены для сайта, например для вывода разных контактов, контента в зависимости от города. На этом примере и будем реализовывать.
Реализация простая. Первым шагом создаем модель City контроллер Cities для добавления новых городов в админке. В настройках хостинга все поддомены направляем на одну папку с сайтом.
Вторым шагом в коде страницы CMS добавим php код с подключением нашей модели.
<?php
use Site21\Cities\Models\City;
function onInit()
{
$parts = explode('.', $_SERVER['HTTP_HOST']);
$city = city::where('slug', $parts[0])->first();
if($city) {
$this['city'] = $city;
}
}
?>
Далее мы уже можем использовать в шаблонах или partial'ах можем использовать:
{{ city.phone }}
Если в своих моделях, например новостях, мы используем связь с городом, а на странице новостей поддомена нужно вывести новости этого города, то используем похожую кострукцию:
<?php
use Site21\News\Models\News;
use Site21\Cities\Models\City;
function onInit() {
$news = News::orderBy('created_at', 'desc');
$parts = explode('.', $_SERVER['HTTP_HOST']);
$city = City::where('slug', $parts[0])->first();
if($city) {
$news->where('site', 'city')->where('City_id', $city->id);
}
$this['items'] = $news->get();
}
Опубликовано 25 июля 2022 г. в категориях: October CMS Winter CMS
Если Вам необходимо внедрить данную разработку на свой проект, свяжитесь со мной, обсудим цену и срок.