Версия для печати — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
 
Строка 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> В итоге получаем на печать только лого сайта, статью и копирайт. Всё что мы написали перед родительским элементом - не отобразится на самом сайте.