Witajcie, po raz kolejny..
moim założeniem jest żeby plik index.php do którego dowiązany jest index.tpl includował plik conversion.php (z nim z kolei komunikat.tpl) a ten plik conversion.php generował by plik xls.php... tak aby ten wygenerował zawartość
tabeli dla excela, korzystając z szablonu (excel.tpl)... Zrobiłem nawet coś takiego bez Smarty i działa...ale z przełożeniem na smarty nie moge sobie poradzić.. oto kod conversion.php
<?php
include "smart_config.inc";
$n_plik = $_GET['plik'];
$plik1 = fopen ("dane/{$n_plik}", 'r+'); $dane = file('dane/'.$n_plik.'');
$plik2 = fopen("xls.php", "w"); if (!$plik2) die ("Nie można utworzyć pliku.");//plik tylko do zapisu, wskaźnik na jego początek, obcięcie do zerowej długości fputs($plik2, "<? include "smart_config
.inc
"; header("Content-Type: application/vnd.ms-excel"); header("Content-Disposition: attachment; filename=filename.xls");
header("Pragma: no-cache");
header("Expires: 0");");
$plik1 = fopen("xls.php", "a"); for ($i=1; $i<10; $i++) {
$dane[$i-1] = ("<tr><td colspan="5">{$dane[$i-1]}</td></tr>");
}
$dane[$i] = ("<tr class="highlight"><td style="text-algin:right;">SYMBOL</td><td>NAZWA TOWARU</td><td>ILOŚĆ</td>
<td>CENA Z</td><td>WARTOŚĆ Z</td></tr>");
for ($i=13; $i<(count($dane)-5
); $i++) { $pom1 = "<tr>";
$pom2 = "";
for ($k=1; $k<(count($wers)-1
); $k++) { $pom2 .= "<td>{$wers[$k]}</td>";
}
$dane[$i] = $pom1.$pom2."</tr>";
}
$dane[$i+1] = "<tr class="highlight"><td style="text-algin:right;" colspan="4">{$wers[0]}</td><td>{$wers[1]}</td></tr>";
fputs($plik1, '$smarty->assign('WERS
', $dane); $smarty->display('excel.tpl'); ?>');
$komunikat = '<a href="xls.php"> POBIERZ WYGENEROWANY PLIK!! </a>';
}
else {
$komunikat = "Brak pliku do konwersji";
}
$smarty->assign('komunikat', $komunikat);
$smarty->display('komunikat.tpl');
?>
założenie na początku jest takie ze do systemu szablonów przekazywane są pełne wiersze tabeli łącznie z <tr> i </tr> --- to chciałbym poprawić w dalszej kolejności... Oraz plik excel.tpl:
{literal}
td {height:18px; border: 1px solid gray; font-family: Verdana}
tr.highlight td {text-align:right; font-weight: bold; background-color: silver}
{/literal}
<colgroup width="100" style="background-color: silver; mso-number-format: 0\.E+00;" align="right"></colgroup> {section name=s1 loop=$WERS}
{$WERS[s1]}
{/section}
Z góry dziękuje bardzo za pomoc... jeśli przyjąłem jakieś złe założenia lub coś jest w ten sposób nie wykonalne, prosiłbym o wytłumacznie gdyż to jest moja pierwsza strona w SMARTY..
Pozdrawiam
Ten post edytował Saddam92 28.11.2006, 14:59:47