Авторизация в модальном окне. (Первая ветка)

+20
4.85K
Делалось на 1.10.4 возможно в 1.10.6 что то отличается.

Простенький скрипт модального окна прикрученный к модулю авторизация пользователя.
Использовать его как основной способ авторизации, считаю лишним, но есть моменты, когда например какой то контент скрыт от гостя, при его попытке получить доступ к этому скрытому содержимому, возможно лучше показать ему окно авторизации в модальном окне, чем устраивать ему принудительный переход на страницу авторизации.

Например кто скрывает контакты в объявлениях.

Иллюстрация

Как прикрутить



в файле шаблона template.php в секции <head> </head>

Например после этого блока
  1. // Подключаем стили шаблона
  2. $this->addHeadCSS('templates/'.TEMPLATE.'/css/styles.css');

вставить этот блок:

  1.  
  2. //если на странице есть показ модуля login
  3. if($mod_count['login']) {
  4. // Подключаем модальное окно
  5. $this->addHeadJS('modal/script.js');
  6. $this->addHeadCSS('modal/style.css');
  7. }
  8.  


в этом же файле в самом низу перед

  1. </body>
  2. </html>
вставить:

  1. <?php if($mod_count['login']) { ?>
  2. <div class="m_overlay-container">
  3. <div class="m_window-container zoomin">
  4. <?php $this->printModules('login'); ?>
  5. <span class="m_close" title="Закрыть"></span>
  6. </div>
  7. </div>
  8. <?php } ?>
  9.  
в этом же файле после этого блока

  1. // Получаем количество модулей на нужные позиции
  2. $mod_count['top'] = $this->countModules('top');
  3. $mod_count['topmenu'] = $this->countModules('topmenu');
  4. $mod_count['sidebar'] = $this->countModules('sidebar');
вставить строку

  1. $mod_count['login'] = $this->countModules('login');
в positions.txt добавить строку:
  1. login
папку "modal" из архива залить в корень сайта.

файл module_auth.tpl отредактировать по своему усмотрению или как есть залить по адресу /templates/ваш_шаблон/modules/

в настройках модулей, настроить показ модуля авторизация (или создать дубликат модуля и настроить)
позиция для показа: login
шаблон для показа модуля: module_auth.tpl
доступ: гости
страницы для показа на ваш выбор.

далее там где нужно организовать по клику появление всплывающего окна с авторизацией в соответствующих файлах шаблонов (.tpl) расставить

  1. <input type="button" value="Показать" class="m_button" data-type="zoomin" />
в файле /modal/style.css

настроить стили для класса

.m_button{

}

или не настраивать, будет выводиться стандартные стили.

Если на одной странице кнопка вызова окна с авторизации должна выглядеть так, а на другой странице иначе, в скрипте script.js

продублировать блок

  1. $('.m_button').click(function() {
  2.  
  3. type = $(this).attr('data-type');
  4.  
  5. $('.m_overlay-container').fadeIn(function() {
  6.  
  7. window.setTimeout(function(){
  8. $('.m_window-container.'+type).addClass('m_window-container-visible');
  9. }, 100);
  10.  
  11. });
  12. });
задав другие имена классов,

  1. $('.m_button_2').click(function() {
  2.  
  3. type = $(this).attr('data-type');
  4.  
  5. $('.m_overlay-container').fadeIn(function() {
  6.  
  7. window.setTimeout(function(){
  8. $('.m_window-container.'+type).addClass('m_window-container-visible');
  9. }, 100);
  10.  
  11. });
  12. });
и в файле style.css описать стили для нового класса m.button_2

Например у меня в одном месте вызов окна с авторизацией происходит по клику на простую кнопку "показать", в другом месте это клик по постеру, который в классе m_button_2 прописан как background
ну и т. д.

сам скрипт и стили instantcms.ru/users/files/download5242.html
+3
Luxin Luxin 9 лет назад #
Хоть и не пользуюсь первой веткой, но плюсую.
Так держать Нил!

Еще от автора

Капча на сайт или разделы сайта
Если нужно, закрыть весь сайт или некоторые его разделы каптчей.
Пинг поисковых систем для первой ветки
Небольшая интеграция инструментов для пингования, чтобы сделать его чуть удобнее
Генератор карты сайта в формате txt на лету без крона
Вообще то где то тут уже есть вполне рабочие генераторы карты для первой ветки, но этот вариант тоже имеет право быть.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.