Вход • Регистрация

Поддоменная система пользователей

  • 16 сентября 2012 г.
  • Вообщем вся суть вопроса в заголовке темы. Планируется ли такая возможность в следующей версии cms? Либо возможно прикрутить к модулю юзер что-то типа своего адреса в сети?
    • 19 сентября 2012 г.
    • В итоге что должно получится? Тыкаем в пользователя попадаем к нему на сайт или как минимум на страницу в соц сети?
      Как вариант, можно просто в конструкторе добавить поле для этих целей или этого не достаточно?
      • 19 сентября 2012 г.
      • По всей вилимости имелось ввиду личная страница пользователя на поддомене сайта: username.site.ru
        На хабре раньше так было.
    • 19 сентября 2012 г.
    • Ну CMS управлять поддоменами на хостинге никак не может. Прикрутить можно что угодно, но это зависит от хостинга, его настроек и рук вебмастера, который будет настраивать diafan.CMS.
      Скорее всего, самый простой вариант будет ассоциировать адреса типа site.ru/users/?pupkin с поддоменом pupkin.site.ru. Но это надо общаться исключительно с техподдержкой хостинга. Работа по индивидуальной настройке сервера.
      • 21 сентября 2012 г.
      • А что скажите по динамичной поддоменной системе? Чтобы адрес типа site.ru/pupkin (в данном случае так именно все и работает через псевдоссылку) был одновременно адресом pupkin.site.ru с помощью подстановки. Используя .htaccess
        • 21 сентября 2012 г.
        • Все просто.
          1. Настраиваете поддомены так, чтобы они ссылались на основной домен
          2. В файле index.php после строк:
          Код
          if (empty($_GET["rewrite"]))
          {
          $_GET["rewrite"] = '';
          }

          пишите:
          Код
          if($_SERVER['HTTP_HOST'] != 'site.ru' && $_SERVER['HTTP_HOST'] != 'www.site.ru')
          {
          if ($_GET["rewrite"])
          {
          include ABSOLUTE_PATH.'includes/404.php';
          }
          $_GET['rewrite'] = 'users';
          $_GET[null] = str_replace('', '', $_SERVER['HTTP_HOST']);
          }

          Вместо site.ru, конечно, название домена. Вместо users чпу страницы, к которой прикреплен модуль "Старинца пользователя" (по-умолчанию, в системе у нее чпу users).

          Чтобы не существовала страница site.ru/users/?username (во избежание дублей) можно еще добавить перед новым кодом:
          Код
          if($_GET['rewrite'] == 'users')
          {
          include ABSOLUTE_PATH.'includes/404.php';
          }


          Ну и везде, где формируются ссылки на страницу пользователя исправить, чтобы ссылки шли на поддомен.
          Например, в блоке авторизации там где написано "Здравствуйте, Иван иванович!" нужно в файле registration.model.php заменить:
          Код
          $result["user_page"] = $this->diafan->_route->module("users",true);
          if (!empty($result["user_page"]))
          {
          $result["user_page"] = BASE_PATH_HREF . $result["user_page"] . '?' . $this->diafan->_user->name;
          }

          на
          Код
          $result["user_page"] = 'http://'.$this->diafan->_user->name.'.site.ru/';
          • 21 сентября 2012 г.
          • Спасибо Марина за помощьИ еще один вопрос) Возможно ли сделать ограничения для разных групп пользователей? Например, сайт использует данные пользователя как информацию о фирме (справочник). Соответственно нужны разные права для них. У кого отображается контактная инфа, у других отображается контакты с описание фирмы. Как это разбить по функционалу? Возможно ли разбить "show_body" на отображение соответствующей инфы?
            • 21 сентября 2012 г.
            • Есть два решения:
              1. универсальное
              в конструкторе формы регистрации для всех дополнительных полей добавить еще и параметр "Типы пользователе, которые видят информацию". Соединение типо в пользователей и полей записывать в новую таблицу (логично ее назвать {users_param_role_rel} - param_id, role_id. И на странице пользователя (modules/users/users.model.php) учитывать эти соединения и роль текущего пользователя $this->diafan->_user->role_id.
              2. быстрое
              в modules/users/users.model.php написать что то типа если роль текущего пользователя не "Супер пользователь" ($this->diafan->_user->role_id !=3), то поле "Контакная инфа" (id=56) не показываем.
  • 21 сентября 2012 г.
  • Мне тоже решение для "Поддоменной системы пользователей", очень понравилась.
    Может её вообще в коробочную версию вставить?

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум