Небольшой хак для публикации отдельных страниц контента

+22
2.56K
Иногда Очень часто админу сайта надо сделать отдельные страницы на сайте, типа "О нас", "Контакты" и т.п. При этом показ таких страниц совсем не нужен в общем контенте и модулях. Делюсь решением которое сделал для себя (может и не самое удобное, но рабочее).
Только для ICMS 1.10.*
В результате несложных манипуляций при редактировании статьи получаем опцию, выбрав которую можно показывать пользователям не опубликованную больше нигде страницу.
Делается все минимальными правками движка. Для очумелых ручек инструкция ниже.
1. Добавляем поле в базу.
Выполнить SQL код
  1. ALTER TABLE `cms_content` ADD `is_page` INT NOT NULL DEFAULT '0' AFTER `is_arhive` ;
2. Редактируем файл \admin\applets\content.php
Находим строку (примерно 171)
  1. $article['canrate'] = cmsCore::request('canrate', 'int', 0);
после нее вставляем
  1. $article['is_page'] = cmsCore::request('is_page', 'int', 0);
Чуть дальше (примерно 266) опять после $article['canrate'] = cmsCore::request('canrate', 'int', 0);
вставляем $article['is_page'] = cmsCore::request('is_page', 'int', 0);

Ищем строку (примерно 479)
  1. {tab=<?php echo $_LANG['AD_TAB_PUBLISH']; ?>}
и сразу после
  1. <table width="100%" cellpadding="0" cellspacing="0" class="checklist">
вставляем
  1. <tr>
  2. <td width="20"><input type="checkbox" name="is_page" id="is_page" value="1" <?php if ($mod['is_page']) { echo 'checked="checked"'; } ?>/></td>
  3. <td><label for="is_page"><strong>Отдельная страница</strong></label></td>
  4. </tr>
Открываем файл \components\content\frontend.php

в строке (189)
  1. if ((!$article['published'] || strtotime($article['pubdate']) > time()) && !$is_admin && !$is_editor && !$is_author) { cmsCore::error404(); }
ПОСЛЕ
  1. !$is_author
добавляем
  1. && !$article['is_page']
Готово.
Для тех кому нужен готовое решение, можно скачать файлы для чистой 1.10.6
Скрин Иллюстрация
0
Петрмаг Петрмаг 8 лет назад #
Это по сути,статистическая страница?
+3
Loadырь Loadырь 8 лет назад #
Нет, это по сути статическая страница

Еще от автора

Обновление компонента "Replacement замена в контенте" + бонус
Как и обещал, поработал над обновлением компонента Replacement.
Replacement - замена в контенте. Компонент для ICMS 2.x
Компонент на основе фильтра "Красивые заметки в тексте" для первой версии. По просьбам пользователей сделал подобное для второй ветки.
Фильтр ICMS Note - Красивые заметки в тексте
Опять же по просьбе Nomin сделал фильтр для создания красивых заметок в тексте.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.