Макет сайта содержит лишнюю информацию — навигационные элементы, рекламные блоки, неправильные цвета и т.п. Стилизовать макет для печатной версии можно с использованием правила @media
. Внесите следующие правила в конец CSS-стилей макета:
@media print {
.hidden-print { display: none }
* { background:#FFF !important; color:#000 !important }
@page { margin: 1cm }
img { max-width: 100% !important }
a[href^=http]:after { content:" <" attr(href) "> " }
}
Для блоков, которые должны быть скрыты, укажите дополнительный класс hidden-print, например:
<div class="myclass hidden-print">
контент блока
</div>
Создайте отдельный макет, внесите в его код:
<!DOCTYPE HTML>
<html>
<head>
<title><?php Core_Page::instance()->showTitle()?></title>
<meta name="description" content="<?php Core_Page::instance()->showDescription()?>" />
<meta name="keywords" content="<?php Core_Page::instance()->showKeywords()?>" />
<meta content="text/html; charset=<?php echo SITE_CODING?>" http-equiv="Content-Type" />
<?php Core_Page::instance()->showCss()?>
</head>
<body>
<?php
Core_Page::instance()->execute();
?>
<script type="text/javascript">
window.print();
</script>
</body>
</html>
и CSS:
body {
background: #FFF;
font-family: "Times New Roman", Georgia, Serif;
}
В самое начало макета, для которого требуется сделать выводе версии для печати, добавьте код:
<?php
// Проверяем, если нажали ссылку "Печать"
if(Core_Array::getGet('action') && Core_Array::getGet('action') == "print")
{
/* Устанавливаем макет для текущей страницы.
Значение 10 замените на ID макета, созданного выше */
Core_Entity::factory('Template', 10)->execute();
// Вывод версии для печати закончен
return;
}
?>
В макете добавьте кнопку для печати:
<a href="./?action=print">Версия для печати</a>