Версия для печати — различия между версиями
(Новая страница: «Как сделать версию для печати, которая бы выводила контент в нужном шаблоне? 1)Попробуйте …») |
Photoelf (обсуждение | вклад) |
||
Строка 58: | Строка 58: | ||
</nowiki> | </nowiki> | ||
В итоге получаем на печать только лого сайта, статью и копирайт. Всё что мы написали перед родительским элементом - не отобразится на самом сайте. | В итоге получаем на печать только лого сайта, статью и копирайт. Всё что мы написали перед родительским элементом - не отобразится на самом сайте. | ||
+ | |||
+ | [[Категория:Написание кастомных макросов]] |
Версия 11:25, 17 февраля 2010
Как сделать версию для печати, которая бы выводила контент в нужном шаблоне?
1)Попробуйте добавить следующий код в ~/classes/modules/custom.php сразу после строки //TODO: Write here your own macroses
public function page_for_print($uri_page) {
$chars = explode("/", $uri_page);
array_splice($chars, -1);
$chars = array_reverse($chars);
$uri_page_back = "/".$chars[0]."/";
return $uri_page_back;
}
Регистрировать его нигде не нужно.
2)Создайте шаблон дизайна ~/tpls/content/print.tpl в котором пропишите макрос
%content insert(%custom page_for_print('%system referer_uri()%')%)%
Именно он и будет выводить контент, который будет печататься.
Для отправки страницы на принтер можно добавить кнопку:
<input type="button" value="Печать" onClick="javascript:print(document);">
3. В настройках модуля "Структура" пропишите новый шаблон дизайна и создайте в структуре страницу с этим шаблоном (Назовем ее, например, "Печать").
4. В шаблоне дизайна, применяющегося для вывода страниц пропишите ссылку:
<a href="%content get_page_url(ХХХХХ)%">ПЕЧАТЬ</a>
, где ХХХХХ - идентификатор страницы "Печать"
Внимание: Работает только для страниц с контеном набранным в админ.панели. Не работает для первой страницы, новостей! Ищем решение вместе!
В случае, если нужно печатать с сайта статьи, но без оформления самого сайта. Делаем следующее:
<head> <style media="print"> .noprint {display:none;} </style> <style media="screen"> .noscreen {display:none;} </style> </head>
Выставляем class="noprint" для родительского элемента сайта. Что бы скрыть всё. После чего перед эти родительским элементом пишем.
<div class="noscreen">Здесь можно вывести лого сайта</div> <div class="noscreen">%content%</div> <div class="noscreen">Здесь можно вывести копирайт сайта</div> В итоге получаем на печать только лого сайта, статью и копирайт. Всё что мы написали перед родительским элементом - не отобразится на самом сайте.