

<table border="0" width="100%" align="center">
<tr>
<td align="left" style="padding-bottom: 5px" colspan="2"><h1>[+pagetitle+]</h1></td>
</tr>
<tr>
<td align="left"style="padding-left: 5px" colspan="2"><div style="font-size: 9px; padding-bottom: 20px; padding-left: 20px">[+description+]</div></td>
</tr>
<tr>
<td style="padding-left: 10px"><img src="[+image_big+]" width="300" height="300"></td>
<td class="text" style="padding-left: 10px">[+content+]</td>
</tr>
</table>
$content = $template;
preg_match_all('~\[\+tv(.*?)\+\]~', $template, $matches);
$cnt = count($matches[1]);
$tvnames = array ();
for ($i = 0; $i < $cnt; $i++) {
$tvnames[] = $matches[1][$i];
}
$tvnames = array_unique($tvnames);
$id=(int)$_GET['p_docid'];
if (count($tvnames) >= 1) {
$tvs = $modx->getTemplateVarOutput($tvnames, $id);
if ($tvs !== false) {
foreach ($tvs as $name => $object) {
$template = str_replace("[+tv$name+]", $object, $template);
}
}
}
.Так привели бы пример кода.
Ребята, зачем такие извращения?
Гораздо проще делать принт-версию, подключая специальный новый CSS-файл.
В этом CSS файле просто тупо с помощью display:none отключаются лишние блоки и, при необходимости, иначе позиционируются существующие.
Пример можно посмотреть здесь http://www.ibc.lv/en/offshore-overseas-company-formation/
В данном случае сниппет проверяет, имеется ли параметр print=1, и, если параметр найден, подключается новый CSS файл.
Ну и еще короткий JS-скрипт добавляется, который вызывает окно печати, хотя это уже навороты.
P.S.: Да, и ничего ни с чем конфликтовать здесь не будет. Т.е. проблемы просто не возникают.
Ибо в данном случае вывод страницы производится без изменений с точки зрения CMS.
display:none;
Так привели бы пример кода.
Действительно
Quote from: Andrei at Jul 22, 2009, 04:44 PMdisplay:none;
Так привели бы пример кода.
Какой там код - все элементарно. Я же объяснил логику: сниппет проверяет, имеется ли параметр print=1 в URL. Если имеется, подключается новый CSS файл, в котором все лишнее убрано с помощью display:none. Вот и весь секрет.
<LINK REL="stylesheet" TYPE="text/css" HREF="print.css" media="print"> <LINK REL="stylesheet" TYPE="text/css" HREF="main.css" media="screen">
Так чего воду лить?
Quote from: antey at Jul 22, 2009, 09:12 PMДействительно
Quote from: Andrei at Jul 22, 2009, 04:44 PMdisplay:none;
Так привели бы пример кода.
Какой там код - все элементарно. Я же объяснил логику: сниппет проверяет, имеется ли параметр print=1 в URL. Если имеется, подключается новый CSS файл, в котором все лишнее убрано с помощью display:none. Вот и весь секрет.