Страница 404 instantcms2 2.X

Вывод шаблона вместо страницы 404

 
Посетитель
small user social cms
Сообщений: 78
Привет ребят. У меня в шаблоне при отсутствии доступа или контента выводиться 404 обычная пустая страница с 404 и поиском. Естественно это не интересно.
Я взял файл 404 страницы notfound.tpl.php в templates\default\assets\errors\ впихнул туда код шаблона, нашел <article> удалил строку над ним, внутри все удалил и строку после </article> Между вставил
Код PHP:
  1. <article> <h2> Некоторый контент доступен только для зарегистрированных пользователей.<p> зарегистрируйтесь нажав
  2. <a href="/auth/register">Регистрация</a> или авторизируйтесь
  3. нажав <a href="/auth/login">Войти</a><p>
  4. </h2> </article>
Кто подскажет как подключить всплывающее окно авторизации, а не переход на страницу авторизации?
Посетитель
small user social cms
Медаль
Сообщений: 278
Тут стоит сначала рассмотреть ситуацию, когда зарегистрированный и авторизированный пользователь вдруг попадет на несуществующую страницу.
Редактировалось: 1 раз (Последний: 16 октября 2019 в 19:22)
Реклама
cms
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 2083
В head добавить

Код PHP:
  1. <link type="text/css" rel="stylesheet" href="<?php echo $config->root; ?>templates/default/css/theme-modal.css">
  2. <link type="text/css" rel="stylesheet" href="<?php echo $config->root; ?>templates/default/css/theme-gui.css">
  3. <script type="text/javascript" src="<?php echo $config->root; ?>templates/default/js/jquery.js"></script>
  4. <script type="text/javascript" src="<?php echo $config->root; ?>templates/default/js/jquery-modal.js"></script>
  5. <script type="text/javascript" src="<?php echo $config->root; ?>templates/default/js/core.js"></script>
  6. <script type="text/javascript" src="<?php echo $config->root; ?>templates/default/js/modal.js"></script>
К ссылке <a href="/auth/login">Войти</a> прилепить класс ajax-modal, вот так как-то:
Код PHP:
  1. <a href="/auth/login" class="ajax-modal">Войти</a>
Посетитель
small user social cms
Сообщений: 78
чебурек дохлэй мыш:

В head добавить
Благодарствую все работает, плюсанул. Так понимаю так и регистрацию можно вывести если поставить виджет, а вот предложил
@IamB:

Тут стоит сначала рассмотреть ситуацию, когда зарегистрированный и авторизированный пользователь вдруг попадет на несуществующую страницу.
Это проверка Ифом можно вывести если авторизированный то поиск показать, а если нет то текст зарегистрируйтесь или авторизуйтесь.
Ребят вы случаем не знаете как эту проверку выполнить?
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 2083
Павел:
как эту проверку выполнить?
Код PHP:
  1. <?php if (!cmsUser::isLogged()){?>
  2. <h2>Некоторый контент доступен только для зарегистрированных пользователей.</h2>
  3. <p>Зарегистрируйтесь, нажав <a href="/auth/register">Регистрация</a>, или авторизируйтесь, нажав <a href="/auth/login" class="ajax-modal">Войти</a><p>
  4. <?php } else {?>
  5. <h2>Страница, на которой вы находитесь, была удалена или перемещена</h2>
  6. <p>Воспользуйтесь поиском по сайту или вернитесь на <a href="<?php echo $config->root; ?>">Главную</a><p>
  7. <?php } ?>
Посетитель
small user social cms
Медаль
Сообщений: 340
Как из обычной идеи рождается запутанность...

в шаблоне при отсутствии доступа или контента выводиться 404 обычная пустая страница с 404 и поиском. Естественно это не интересно. Я взял.................

Идея понятна....
Вы хотите предложить пользователю (гость/неавторизованный) вместо 404, предоставить возможность попасть на запрашиваемую страницу.

А - при реальном отсутствии контента он все равно получит ответ - 404.
Б - при авторизации на странице запрета или 404 страницы, он вероятно может получить ответ - Запрещено к просмотру.

При значении А понятно что контента нет физически или он находится в корзине...

При значении Б скорее всего есть ограничения на просмотр...
Правило доступа --- Запретить просмотр списка записей
Если это правило задано хотя бы для одной из групп, гостям список записей не показывается
Кому - Новые.

Получается, что наш Гость разочаровался первый раз, а затем (авторизовавшись) мы, ему "случайно" показываем фигу.

В данной ситуации я вижу такой выход из ситуации....
Решение --------------------------------------------------------------
https://instantcms.ru/forum/thread31460-2.html#308799
Решение --------------------------------------------------------------

Что на выходе?
Целые файлы по пути templates\default\assets\errors\
При реальном 404 мы видим ожидаемый результат - 404.
Мы можем пользователю указать прямым текстом, что для просмотра необходимо быть в такой-то группе || необходимо зарегистрироваться или авторизоваться.
В виждете "Ограничение доступа" можно указать любой шаблон из выпадающего списка (при условии что у вас есть дополнительные шаблончики).
Меньше монотонной работы при ручном мерже (для тех у кого 20 000 правок в коде:)
Посетитель
small user social cms
Сообщений: 78
чебурек дохлэй мыш:

Благодарность от всех пользователей которым вы упростили жизнь ответами и от меня лично.
Дмитрий Баринов:

Как из обычной идеи рождается запутанность...
А вот тут вы правы, из за одной ошибки можно всех под одну гребенку. Но пока что это оптимальное решение. Суть проблемы была в Биллинг, При создании поля подписки с ссылкой на /billing/plan как раз и кидало на страницу 404 с адресом /billing/plan, вот на нее я и хотел повесит вариант, в котором помог чебурек В принципе как по мне решение годное, с той лишь разницей хорошо бы как то редиректы сделать именно на /billing/plan , но вот это как то нужно создавать страницу с таким адресом и внутри notfound.tpl.php редирект делать. Тут уже даже представить не могу как это организовать. Здесь мозг профи нужен или самих разробов.
Редактировалось: 1 раз (Последний: 18 октября 2019 в 12:19)
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.