Версия для печати — различия между версиями
Photoelf (обсуждение | вклад) |
Davidov (обсуждение | вклад) |
||
Строка 59: | Строка 59: | ||
В итоге получаем на печать только лого сайта, статью и копирайт. Всё что мы написали перед родительским элементом - не отобразится на самом сайте. | В итоге получаем на печать только лого сайта, статью и копирайт. Всё что мы написали перед родительским элементом - не отобразится на самом сайте. | ||
− | [[Категория:Написание кастомных макросов]] | + | [[Категория:Модуль Блоги20]][[Категория:Написание кастомных макросов]] |
Текущая версия на 14:57, 10 июня 2012
Как сделать версию для печати, которая бы выводила контент в нужном шаблоне?
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> В итоге получаем на печать только лого сайта, статью и копирайт. Всё что мы написали перед родительским элементом - не отобразится на самом сайте.