Печать топика

Давайте посоветуемся, кто как видит функцию печати топика

есть 3 пути:
1. создаем кастомный стиль для media=print, скрывающий всё лишнее (всё кроме заголовка топика и его текста), и вставляем простой линк в каждом топике
a href="javascript: window.print()"

при этом можно сохранить нативные стили для содержимого топика

2. делаем специальный экшн с минималистичным шаблоном для топика и открываем по ссылке его в новом окне, у которого onload = window.print()

3. побаловался вчера немного и придумал еще один дурацкий метод, но очень быстрый. создаем новое окно динамически:

<script>
function printtopic(index){
 var title = $$('.topic .title')[index].get('text');
 var content = $$('.topic .content')[index].get('html');
 var win = window.open();
 win.onload = function (){ setTimeout('window.print()',2000);};
 var windoc = win.document;
 windoc.write(new Element('div').adopt(new Element('h1', {'text':title}), new Element('div', {'html':content})).get('html'));
}
</script>


ссылка для печати:
<a href="javascript:printtopic(0)">печать</a>

8 комментариев

avatar
скорей всего вариант 2
avatar
тогда можно и в виде плагина сделать
avatar
можно и плагинчиком и минихаком например.
avatar
Дублировать функции браузера — порочная практика, потому первый путь будет единственно правильным и максимально удобным. На эту тему уже столько много говорилось, что вряд ли стоит приводить аргументы в пользу этого утверждения.

Версии для печати — тяжкое наследие девяностых, когда не было возможности переопределить нужные селекторы для принтера. Столь же тяжкое, как и ссылки на страницах «добавить в избранное» и «сделать стартовой».
avatar
тогда к каждому шаблону надо предъявлять требование — обязательный стиль для печати
avatar
Зачем предъявлять? Такие вещи не должны делаться по особому напоминанию. Если предполагается, что контент с сайта будет распечатываться, будет весьма странно, если об этом никто не подумает.
avatar
ну не подумали же при верстке стандартных дизов )
однако, ведь, сложно было об этом не подумать
avatar
В стандарном шаблоне куча проблем и без этого. Насколько я понимаю, они не исправляются осознанно, эта почётная привелигия была оставлена владельцам сайтов. Весьма вероятно, что и печать точно также отдана на откуп пользователям движка.

Если не ошибаюсь, Максим где-то высказывался на этот счёт, отмечая, что дефолтный шаблон предназначен в первую очередь для ознакомления с движком. С этим сложно не согласиться — серьёзному сайту всё равно потребуется собственное оформление и вёрстка, а несерьёзные на дефолтных шаблонах вполне смогут жить и с отсутствием стилей для печати.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.