Доработка для каталога статей "Версия для печати"

2976
Приветствую!

Доработка заключается в добавлении одного файла (print.php), который формирует версию для печати и добавление ссылки в шаблон com_content_read.tpl.


Долгое время меня не было - причин много, сначала ЧЕ, потом различные shit happens, ну и самая главная - в скором времени я переезжаю на 4000км восточнее, что само по себе влечет за собой кучу всяких разных проблем и сложностей. Работать не получается

Думал, чем бы отметить возвращение - и решил сделать то, о чем меня спрашивали несколько раз - реализовать "Версию для печати" для компонента статей. У меня эта функция работает для другого компонента (стандартные "Статьи" не использую), так что задача была лишь в адаптации к Инстанту. Я такой вариант у себя не использую, так что хорошенько потестировать не получилось - проверил лишь на нескольких статьях демо-сайта.

Инструкция:

1. Скачать файл print.php - ОБНОВИЛ, открыть его и исправить ссылку в самом низу(вставить ваш домен), положить его в папку /components/content/.
2. Добавить в шаблон /templates/_ВАШ ШАБЛОН_/components/com_content_read.tpl в нужное место текст
Код PHP:
<a title="Версия для печати" href="/components/content/print.php?seolink={$article.seolink}" target="_blank">Версия для печати</a>
. В качестве ссылки можно использовать картинку, это уже на любителя.

Это все, после данных исправлений почистить кэш и открыть любую статью. Должна появиться ссылка "Версия для печати", по клику на которую в новом окне откроется статья в формате, удобном для печати.

Скрытый текст виден только зарегистрированным пользователям


На странице печати есть возможность отключить иллюстрации перед распечатыванием.

Если проявятся какие-то проблемы - пишите в комментариях, попробую помочь.

PS переписку не забываю, в воскресенье будет готова версия
Ускорение загрузки сайта (оптимизация js и css скриптов) | Система переписки 1.2 (релиз)
Комментарии (51)
Ленивый 14 июля 2012 в 09:09 +4
100% нужная весчь!!
Роман 14 июля 2012 в 09:20 0
100% нужная весчь!!
согласен. Автору огромный +
eoleg 14 июля 2012 в 10:05 0
Говорят переезд хуже пожара! )
4000 км это гдето между иркутском и красноярском - там инет то есть? )
SJen 14 июля 2012 в 13:01 0
4000км - это из Минеральных Вод до Красноярска
с остановкой в Ижевске (там родственники, к ним по пути заглянем)
интернет то во всех этих городах есть - ну как минимум 3G
iParovoz 17 июля 2012 в 14:14 +1
)) Поздравляю! будем соседями
vpugachev 14 июля 2012 в 10:36 0
Это очень нужное дополнение и пользователям очень пригодится. Но есть вопрос как его воспримут ПС, это получается дубликат основной страницы, т.е. может получится, что поисковики в выдаче будут брать страницу печати что не совсем корректно...
Роман 14 июля 2012 в 10:47 0
сделайте выдачу на печать только для зарегистрированных пользователей
vpugachev 14 июля 2012 в 12:26 0
Не хотелось бы так решать эту задачу и оставить гость распечатать статью с эмблемой сайта и ссылкой на статью, а не копипастом без исходных данных.
SJen 14 июля 2012 в 13:03 0
нет дубликатов
во-первых, там метатег <META NAME="ROBOTS" CONTENT=""Noindex, nofollow">
во-вторых, (если очень хочется), можно и в роботс запретить страницы к индексации
Def 14 июля 2012 в 11:29 0
а для блогов что надобно переделать?)
SJen 14 июля 2012 в 13:05 0
ууууу, гляну как-нить
так на пальцах не объясню, надо код открывать и адаптировать под блоги
GarikKR 14 июля 2012 в 13:40 0
Присоединяюсь к просьбе Юрия, очень нужная функция.
RoN 14 июля 2012 в 19:39 0
У меня не работает. Во-первых, надо кодировку у файла менять с UTF-8 в ANSI. Ссылок очень много на домен pechenuka.ru, не только внизу, они по всюду. Изменил их, но не выводится не содержимое статьи, ни автор.

У кого-нибудь работает на 1.9?
SJen 14 июля 2012 в 20:26 0
проверю, если правда есть ссылки, то я ошибся и не то закинул
st.Puh 14 июля 2012 в 20:27 0
Ссылок действительно очень много по всему файлу,но и непонятно на что менять ссылки если только адрес сайта "ссылку в самом низу(вставить ваш домен)" но если домен менять то остаеца
Код PHP:
$recipe['post_meta']  = str_replace('http://www.pechenuka.ru/news/wp-content','http://www.pechenuka.ru/i/wp-content',$recipe['post_meta']);
            $recipe['post_content']  = str_replace('http://www.pechenuka.ru/news/wp-content','http://www.pechenuka.ru/i/wp-content',$recipe['post_content']);
а тут не только домен у нас таких ни папок ни файлов нет,куда ето переписывать под свои сайты?
SJen 14 июля 2012 в 20:31 0
прошу прощения, не то закинул
не подумайте, что я хотел поделиться своими ссылками - потому что старый вариант вообще на Инстанте не будет работать, он даже не для компонента статей.

Обновил файл

st.Puh 14 июля 2012 в 21:22 0
Заменил файл,закинул по указному пути,вставил ссылку,жму на ссылку открываеца новое окно и в нем ошибка 404
http://vgospode.ru/components/content/print.php?seolink=stati/ukraina/s-voskresene-25-marta-ukraina-perehodit-na-letne-vremja
SJen 14 июля 2012 в 21:40 0
/components/content/print.php
файл точно там есть? - права на него 644?
st.Puh 14 июля 2012 в 21:58 0
Да файл там есть и права 644 на файл
RoN 15 июля 2012 в 11:31 0
Скачал обновленный print.php и тоже теперь ошибка 404 выходит.
lezginka.ru 14 июля 2012 в 21:23 0
+
Алексей 14 июля 2012 в 22:58 0
Зачет! )) Очень хорошая и полезная штука. Спасибо )))
Def 14 июля 2012 в 23:24 0
странно, выдало ошибку:


Warning: preg_replace() [function.preg-replace]: Compilation failed: invalid UTF-8 string at offset 6 in /home/p114207/www/.ru/components/content/print.php on line 46

Warning: Cannot modify header information - headers already sent by (output started at /home/p114207/www/.ru/components/content/print.php:46) in /home/p114207/www/.ru/core/cms.php on line 1769

Warning: Cannot modify header information - headers already sent by (output started at /home/p114207/www/.ru/components/content/print.php:46) in /home/p114207/www/.ru/core/cms.php on line 1770

Warning: Cannot modify header information - headers already sent by (output started at /home/p114207/www/ru/components/content/print.php:46) in /home/p114207/www/.ru/core/cms.php on line 1771
SJen 15 июля 2012 в 00:48 0
это не ошибки, это Warning - предупреждения/предостережения
результат не получилось посмотреть?
Def 15 июля 2012 в 01:50 0
нет. это единственное что выдало на странице
SJen 15 июля 2012 в 11:37 0
еще на одном сайте потестирую.. я только на локалке проверял, может какие-то настройки выдают 404 ошибку
fotpod 15 июля 2012 в 02:55 0
А для УК как адаптировать?
SJen 15 июля 2012 в 14:03 0
да как сказать.. просто брать и код переписывать

если вы не понимаете php код - у вас не получится самостоятельно это сделать
если понимаете, то разберетесь очень быстро, только взглянув
Def 15 июля 2012 в 15:11 0
осталось только понять что у меня за ошибка вылетает)
Dost 15 июля 2012 в 15:55 0
Не работает( Ошибка 404.
st.Puh 15 июля 2012 в 16:41 0
У кого нибуть работает?Очепнь нужная вещь и не хочет работать
SJen 15 июля 2012 в 16:53 0
я посмотрю в течение дня на живом сайте
может дело в структуре ссылок, я проверял работу на ссылках без рубрик (статьи имеют вид site.ru/123.html site.ru/465.html site.ru/789.html)
Dost 15 июля 2012 в 19:50 0
site.ru/123.html
Так тоже не работает
st.Puh 15 июля 2012 в 22:47 0
SJen:
(статьи имеют вид site.ru/123.html site.ru/465.html site.ru/789.html)
с такими урл-из корневого роздела, тоже не открывает для печати
st.Puh 19 июля 2012 в 19:52 0
И что на этом все затихло?Ничто не зделал чтоб работало?
SJen 19 июля 2012 в 19:54 0
с перепиской немного закончу и вернусь к печати, будет работать
vitalson9 21 июля 2012 в 04:34 0
Я сделал попроще и вставленно у меня по всему сайту тоесть блоги,статьи,каталоги можно вставлять хоть куда

st.Puh 21 июля 2012 в 10:01 0
И что ето за реклама своего сайта,ведь запись в дневнике закрыта даже от зареганых "Пользователь ограничил доступ к этой записи дневника." и судя по названию странички "mis-runet-2011" там совсем не решения вывода на печать.
st.Puh 21 июля 2012 в 10:05 0
И еще облазил ваш ресурс и даже намека не нашёл на кнопку РАСПЕЧАТАТЬ.
vitalson9 21 июля 2012 в 11:35 0


Каков писк таков и результат :)
Dost 21 июля 2012 в 13:51 0
В статьях можно было посмотреть. Решается думаю так:
Код PHP:
<a href="/print.php" rel="nofollow" onclick="window.print(); return false"><IMG SRC="/images/print.png" title="печать страницы" WIDTH=16 HEIGHT=16 ALIGN="ABSMIDDLE" BORDER="0"></a>
У SJen интереснее)
vitalson9 21 июля 2012 в 11:13 -2
Щас открою и не какая это не реклама.
st.Puh 21 июля 2012 в 14:27 0
Так у вас розпечатать хочет весь сайт с шапкой меню и тд.
vitalson9 21 июля 2012 в 17:27 -2
ну да
st.Puh 22 июля 2012 в 22:37 0
Когда в файле закоментовываю строки
//if ( !$article ) { cmsCore::error404(); }
и
//if (!$article['published'] && !$is_admin && !$is_editor && !$is_author) { cmsCore::error404(); }
то тогда появляеца страница к печати только без статьи.Думаю чтото в том маленьком кусочке кода с выборкой статьи
вот скрин
st.Puh 22 июля 2012 в 22:38 0
Где на скрине видно надпись Версия для печати выше должна была быть статья
Майкл 22 января 2013 в 00:58 0
Проверил для 1.10.1-не работает!
lezginka.ru 12 июня 2013 в 20:02 0
1.10.1
сообщает:
Warning: preg_replace() [function.preg-replace]: Compilation failed: invalid UTF-8 string at offset 6 in /home/tent/print.php on line 46
Олег Васильевич я 12 июня 2013 в 22:07 0
вроде б работает...
lezginka.ru 13 июня 2013 в 01:12 +1
Олег Васильевич , я сделал как написано.
положить его в папку /components/content/
Добавить в шаблон /templates/_ВАШ ШАБЛОН_/components/com_content_read.tpl

Код PHP:
  1. Warning: preg_replace() [function.preg-replace]: Compilation failed: invalid UTF-8
сообщение выдало не только мне.

yury тоже самое пишет

может чего-то конфликтует ?
nedoriko 3 января 2014 в 16:48 0
1.9 не работает. выкидывает на 404 а сверху дописывается варнинг, эрор и тд.
1,10,1 тоже не пашет. тоже 404 открывает и теже 4 варнинга.
на 1.10,3 уже и ставить пытаться не стал.
вообщем гдето не доработано или инструкция не правильная.