Страница 404 instantcms2

InstantCMS 2.X

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

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

  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, вот так как-то:
  1. <a href="/auth/login" class="ajax-modal">Войти</a>
#4 17 октября 2019 в 22:11


В head добавить

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


Тут стоит сначала рассмотреть ситуацию, когда зарегистрированный и авторизированный пользователь вдруг попадет на несуществующую страницу.

@IamB
Это проверка Ифом можно вывести если авторизированный то поиск показать, а если нет то текст зарегистрируйтесь или авторизуйтесь.
Ребят вы случаем не знаете как эту проверку выполнить?
#5 17 октября 2019 в 22:45

как эту проверку выполнить?

Павел
  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 } ?>
#6 17 октября 2019 в 23:38
Как из обычной идеи рождается запутанность...

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


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

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

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

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

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

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

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


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


Как из обычной идеи рождается запутанность...

Дмитрий Баринов
А вот тут вы правы, из за одной ошибки можно всех под одну гребенку. Но пока что это оптимальное решение. Суть проблемы была в Биллинг, При создании поля подписки с ссылкой на /billing/plan как раз и кидало на страницу 404 с адресом /billing/plan, вот на нее я и хотел повесит вариант, в котором помог чебурек В принципе как по мне решение годное, с той лишь разницей хорошо бы как то редиректы сделать именно на /billing/plan, но вот это как то нужно создавать страницу с таким адресом и внутри notfound.tpl.php редирект делать. Тут уже даже представить не могу как это организовать. Здесь мозг профи нужен или самих разробов.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.