Итак вы решили отредактировать стандартную страницу печати Joomla 2.5, которая находиться в папке вашего шаблона и носит имя
component.php она обычно доступна для редактирования и в панели администратора (Панель администратора > Расширения > Менеджер шаблонов > Вкладка Шаблоны > Параметры вашего шаблона > Изменить шаблон вывода на печать )
Ближе к концу файла код будет иметь примерно следующий вид:
<body class="contentpane">
<jdoc:include type="message" />
<jdoc:include type="component" />
</body>
</html>
Итак если вы хотите добавить, к примеру шапку, то вы пишете ваш код
после тега <body>,
но до <jdoc:include type="message" /><jdoc:include type="component" />.
Если вы хотите добавить, футер (низ), то вы пишете ваш код
после <jdoc:include type="component" />,
но до тега </body>.
Можно добавить и то и другое.
НО, если вы просто добавите код то есть вероятность того, что он будет появляться и вне страниц печати, например при просмотре изображений в модальных окнах или при открытии системного менеджера изображений. Что бы этого избежать можно заключить ваш код в условие, при котором ваша шапка и футер будут видны
ТОЛЬКО на страницах печати.
Используем такое условие:
<?php if ($_GET['print'] == "1") : ?>
HTML код только для страниц печати.
<?php endif; ?>
Есть и такое условие (анализирует адресную строку):
<?php if (false !== strpos($_SERVER['REQUEST_URI'], '?tmpl=component&print=1')) : ?>
HTML код только для страниц печати.
<?php endif; ?>
Так же мы можем создать несколько условий, например для разных страниц или разделов меняя
?tmpl=component&print=1, на маску по адресу раздела или единичной страницы.
Итак вот, что мы можем получить в итоге:
<body class="contentpane">
<?php
// выводится на всех страницах печати вверху - шапка (например логотип + несколько других адресных условий)
if ($_GET['print'] == "1") ;
?>
<img src="http://site.ru/images/print_logo.png" align="center" alt="Logo" border="0"/>
<?php
// выводится только на странице site.ru/company.html при печати (например девиз )
if (false !== strpos($_SERVER['REQUEST_URI'], 'site.ru/company.html')) ;
?>
Наш девиз - Наша сила
<?php endif; ?>
<?php
// выводится только на страницах содержащих site.ru/branches/ при печати (например информация о филиале)
if (false !== strpos($_SERVER['REQUEST_URI'], 'site.ru/branches/')) ;
?>
Адрес филиала/телефон
<?php endif; ?>
<?php endif; ?>
<jdoc:include type="message" />
<jdoc:include type="component" />
<?php
// выводится на всех страницах печати снизу - футер (Наши контакты)
if ($_GET['print'] == "1") ;
?>
Наши контакты
<?php endif; ?>
</body>
</html>
Так же обязательно прочтите статью на
http://docs.joomla.org/, посвященную созданию и использованию стилей и модулей в страницах печати. По аналогии можно включить часть кода из index.php вашего шаблона в component.php и данные будут добавляться автоматически, например так мы включим некий абстрактный модуль bottom взятый из index.php:
<body class="contentpane">
<jdoc:include type="message" />
<jdoc:include type="component" />
<?php if ($_GET['print'] == "1") : ?>
<?php if($this->countModules('bottom')) : ?>
<jdoc:include type="modules" name="bottom" />
<?php endif; ?>
<?php endif; ?>
</body>
</html>
Модуль не будет оформлен как на сайте, так как мы не подключили CSS, делается это по аналогии с index.php и заключается в условие.
Успехов!