[changeDomain] - определение поддоменов
Всем привет. Делаю не большой заказ, где необходима была работа с множеством поддоменов. Необходимы были какие то фиксированные поля для каждого, ну и я решил еще от себя добавить возможность добавления неограниченного количества опций к каждому поддомену.
В принципе компонент простой для многих, и это все можно было бы написать и не заворачивать в дополнение, но я попробовал.
В настройках nginx или apache надо сделать перенаправление всех запросов на основной домен. Компонент подхватывает домены на лету.
Создать поддомен:
Ну и возможность создавать дополнительные поля для каждого поддомена:
Если при заходе на сайт, поддомен определился и он есть, то данные записываются в сессию
UPD от 24.10.2017
Добавил поле keywords:
Скачать:
modstrore.pro
GitHub
В принципе компонент простой для многих, и это все можно было бы написать и не заворачивать в дополнение, но я попробовал.
В настройках nginx или apache надо сделать перенаправление всех запросов на основной домен. Компонент подхватывает домены на лету.
Создать поддомен:
Ну и возможность создавать дополнительные поля для каждого поддомена:
Если при заходе на сайт, поддомен определился и он есть, то данные записываются в сессию
$_SESSION['domain']
UPD от 24.10.2017
Добавил поле keywords:
Скачать:
modstrore.pro
GitHub
Поблагодарить автора
Отправить деньги
Комментарии: 42
Аналог друпального Domain Access? Круто :)
Плюсанул, в закладки, звездочку на гитхабе :)
Плюсанул, в закладки, звездочку на гитхабе :)
Подскажите, чем отличается от компонента CityFileds?
Добавление городов в список.
Определение города по домену.
Определение города по IP-адресу.
Добавление уникальной информации для каждого города.
Управление ценами товаров miniShop2 для каждого города.
В моем просто поддомен и к нему опции.
Определение города по домену.
Определение города по IP-адресу.
Добавление уникальной информации для каждого города.
Управление ценами товаров miniShop2 для каждого города.
В моем просто поддомен и к нему опции.
Получается CityFields более широким функционалом обладает? Ваш же компонент полностью может быть заменен тем?
Возможно. Я не проверял тот компонент
CityFields платный, а этот бесплатный. Если навороченный функционал не нужен — это хорошая замена.
Прости меня, Господи… Но зачем значения хранить в Сессии? Мне уже плохо от одной только мысли, что в сессии будет храниться код для счетчиков, вроде Метрики… Чем не устраивает кэш? Благо, под субдомены обычно используются контексты, в их кэш и заносилось бы…
А чем для вас плохо хранить данные в сессии? И смысл создавать контексты, если меняются только адреса да телефоны?
Как минимум то, что в сессиях хранятся обычно уникальные для посетителя значения, а не для его города + в случае счетчиков и т.п. скриптов, то, что по сути они готовый кусок HTML, который надо обернуть в
А кто придумал это обычно? Сессии для хранения временных данных, что тут как раз и уместно. Но ваше предложение какое? Давайте я добавлю как правильно
Здравствуйте, Михаил, подскажите ответы:
1) " Неограниченного количества опций к каждому поддомену" — опции, это TV или настройки, как их в шаблоне вызвать?
2) «Перенаправление всех запросов на основной домен» — можно пример для apache? Не подхватываются автоматом, может не так написал.
1) " Неограниченного количества опций к каждому поддомену" — опции, это TV или настройки, как их в шаблоне вызвать?
2) «Перенаправление всех запросов на основной домен» — можно пример для apache? Не подхватываются автоматом, может не так написал.
В шаблоне к примеру можно
$_SESSION['domain']['options']
Феном:$.session.domain.options
По Apache к сожалению не подскажу, не работаю с ним (
Хорошо, спасибо
Скажите, а как можно вывести в плейсхолдере опции на страницах?
Вы имеете ввиду вида:
[[+key]]
?
ага)
Можно, как вариант прогнать в цикле $_SESSION['domain']['options'] и установить ключи в $modx->setPlaceholder();
Да, этот вариант я рассматривал, но не охота возиться))
Сделал на Fenom типа так:
Сделал на Fenom типа так:
{var $key = $.session.domain.options.0.value}
И в нужном месте {$key}
Небольшая поправка: я тут вспомнил, что у меня есть сайты, где 1314 субдоменов (по одному на город в РФ + работа с адресом каждого субдомена из админки) :-) Там я не использовал контексты и это бы не прокатило :-) Но случай все равно частный, т.к. единичным случаям до сих пор неизвестно, что в SEO такое не прокатит, а скорее наоборот:-)
Подскажите. а можно ли вывести опцию какой-любо страницы, на другой странице? У меня есть у товаров некий параметр, разный в зависимости от поддомена. Но мне эти параметры нужно вывести на главной странице.
Конечно можно. Создайте сниппет:
{'getDomainOptions'|snippet:[
'resource' => 4 //тут необходимый ресурс
]}
С кодом:<?php
$session = $_SESSION['domain']['values'];
$q = $modx->newQuery('changeDomainOptions');
$q->where(array('domain_id' => $session['id'], 'resource_id' => $resource));
$outputs = $modx->getCollection('changeDomainOptions', $q);
$chunk = '';
foreach($outputs as $output){
$chunk .= $modx->getChunk('chunkname', $output->toArray());
}
return $chunk;
и чанк:[[+name]]-[[+key]]-[[+value]]
Ага, спасибо!
Добрый день. После установки в логе посыпались ошибки
[2018-02-02 09:15:42] (FATAL @ /home/m/site-modx/public_html/core/components/changedomain/model/changedomain/changedomain.class.php : 68) 1836
[2018-02-02 09:15:42] (FATAL @ /home/m/site-modx/public_html/core/components/changedomain/model/changedomain/changedomain.class.php : 123) 1
[2018-02-02 09:15:42] (ERROR @ /home/m/site-modx/public_html/core/model/modx/modx.class.php : 1612) [OnLoadWebDocument]Array
(
[status] => error
[response] => site.ru
)
Какая версия?
1.0.3-beta
А можно в личку написать, доступы скинуть, потому что я не вижу у себя ошибок
Добрый день. Скажите, пожалуйста, в чем может быть проблема? У меня при изменении значений опций поддоменов они не заносятся в БД.
Условно есть значение опции для поддомена А = 15000, меняю на 100, все равно остается 15000.
Вот для наглядности видос: www.dropbox.com/s/syauhbmq8jqyv9k/%D0%A1%D0%BC%D0%B5%D0%BD%D0%B0%20%D0%BE%D0%BF%D1%86%D0%B8%D0%B9.mp4?dl=0
Условно есть значение опции для поддомена А = 15000, меняю на 100, все равно остается 15000.
Вот для наглядности видос: www.dropbox.com/s/syauhbmq8jqyv9k/%D0%A1%D0%BC%D0%B5%D0%BD%D0%B0%20%D0%BE%D0%BF%D1%86%D0%B8%D0%B9.mp4?dl=0
Да, пока так. В новой версии обязательно исправлю. Я просто забыл про такое редактирование
Спасибо!
Напишите пожалуйста сюда. Что бы я не забыл.
Михаил, добрый день. Подскажите, как скоро планируется поправить мою просьбу? Заранее спасибо))
Еще не дошел до него. Но первый в списке среди улучшений дополнений
А можно вас попросить сделать это поскорее, а то для меня жизненно важный функционал)) Не сочтите за наглось))
Ну раз жизненно важный, то добавил. Обновляйтесь.
Класс, спасибо!
Но у меня при изменении пишет — Домен с таким именем уже существует. Походу, где-то проверочка закралась на название домена)
Но у меня при изменении пишет — Домен с таким именем уже существует. Походу, где-то проверочка закралась на название домена)
Кэш почистите. По идее добавил изменение только значение опции из грида, там с доменом никак не пересекается
ну кеш я первым делом снес — не помогло. Могу дать доступ к сайту, если нужно.
Да, давайте. info@modx.kz
Скачал. Подключил. Но на самом начале что-то не то. Подскажите пожалуйста. Например в опция добавляю номер телефона для поддмена. Если слитно писать — сохранит. А если пробел или буква или тире — то фиг вам. Просто напросто сохраняется все что есть до этого символа.
Странно. Я на двух сайтах проверял. Не подскажете в чем может быть проблема?
Дошел до файла mgr/item/options/updatefromgrid.class.php
$data там норм. Но видимо вот эта строчка $this->setProperties($data); выполняется у меня не верно.
php 72, версия modx 2.6.5
Дошел до файла mgr/item/options/updatefromgrid.class.php
$data там норм. Но видимо вот эта строчка $this->setProperties($data); выполняется у меня не верно.
php 72, версия modx 2.6.5
доступ киньте, я посмотрю
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.