Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [smarty] - problem z szablonami
itsme
post
Post #1





Grupa: Zarząd
Postów: 1 512
Pomógł: 2
Dołączył: 22.04.2002
Skąd: Koszalin




Witam Was jest pózno i się poddałem ...

oto kawalek kodu z pliku wykaz-pol-do-umowy-z-danymi.tpl
[php:1:7f63b3398d]<?php
{foreach name=outer item=contact from=$ko}
{if $contact.kontakt==1}
<tr>
<td width=50%>
{$contact.nazwa}
</td>
<td>
{php}
echo "<table width=100%><TR><TD>";
$dane = kontakt::dane( 1 );
$smarty2 = new Smarty;
$smarty2->assign ( "ko", $dane );
$smarty2->display( 'ks-dane-kontaktu2.tpl' );
echo "</TD></TR></table>";
{/php}
</td>
</tr>

{else}
<tr>
<td width=50%>
{$contact.nazwa}
</td>
<td>
{$contact.wartosc}
</td>
</tr>
{/if}
{/foreach}
?>[/php:1:7f63b3398d]
jak widac odwoluje sie do rugiego pliku tpl
[php:1:7f63b3398d]<?php{foreach name=outer item=contact from=$ko}
<table class="standard" style="width: 100%;">
<tbody>
<tr>
<th colspan="2">
Dane Kontaktu
</th>
</tr>
<tr>
<td style="background-color: #EBF4EA; width: 150px;">
Typ
</td>
<td style="background-color: #EBF4EA; font: bold">
{$contact.typ}
</td>
</tr>
{*...........................................*}
</tbody>
</table>

{/foreach}

?>[/php:1:7f63b3398d]
no i robi sie blad
Kod
Warning: Failed opening '%%187%%1872967112ks-dane-kontaktu2.tpl.php' for inclusion (include_path='.;c:php4pear') in C:FoxServwwwSmartylibsSmarty.class.php on line 1158

gdzie jest blad ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
rzseattle
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

Ostrzeżenie: (0%)
-----


nie znam bezposrednio odpowiedzi ale moze zamiast umieszczania znacznikow php sproboj funkcja insert uruchomic twoja funkcje php (nie musisz startowac na nowo smarty poniewaz jest przekazywany do tej funkcji jako drugi argument ), wywolywanie z niej innego szablonu dziala bezproblemowo (wiem bo juz tak robilem)


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
Go to the top of the page
+Quote Post
DeyV
post
Post #3





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




proponuję zamienić:

Kod
{php}

$smarty2->assign ( "ko", $dane );

  $smarty2->display( 'ks-dane-kontaktu2.tpl' );  

{/php}


na:
Kod
{assign var="ko" value=$dane}

{include file="body.inc.htm"}


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
itsme
post
Post #4





Grupa: Zarząd
Postów: 1 512
Pomógł: 2
Dołączył: 22.04.2002
Skąd: Koszalin




wszystko pięknie ładnie ale .....

Kod
1. {php}

2. echo "<table width=100%><TR><TD>";

3. $dane =  kontakt::dane( 1 );

4. $smarty2->assign ( "ko", $dane );

5. $smarty2->display( 'ks-dane-kontaktu2.tpl' );  

6. echo "</TD></TR></table>";

7. {/php}

w lini 3 chce przekazac zmienna ktora wyswietla sie w smarty {$contact.id_kontakt} i jezeli dam znacznikami {php} to w jaki sposob zrobic $dane = kontakt::dane( {$contact.id_kontakt} ); - wywala blad

dlatego
Kod
{assign var="ko" value=$dane}

{include file="body.inc.htm"}
nie znajdzie u mnie zastosowania chyba ze pokazecie mi jak przekazac zmienna do includowanego pliku zmienna z smarty *.tpl do php *.php

mam nadzieje ze czytelnie opisalem swoj problem
Go to the top of the page
+Quote Post
rzseattle
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

Ostrzeżenie: (0%)
-----


nie wim czy do konca rozumie o co ci chodzi ale jak juz wspominalem insertem - mozesz przeciez przekazac wartosc zmiennej z smarty do funkcji a funkcja juz zrobi reszte
cos w rodzaju
[php:1:38dd8526ee]<?php
smarty_insert_funkcja ($dane){
$smarty->assign( 'ko', $dane['kontakt]')
//$smarty->display('ks-dane-kontaktu2.tpl' ); - malo elegancko

$r = $smarty->feth('ks-dane-kontaktu2.tpl' );// lub bardziej elegancko
return $r;
}

?>[/php:1:38dd8526ee]
potem juz tylko cos takiego:
Kod
{insert script="./templates/scripts/?questionmark.gif.php" name="funkcja" kontakt=$contact.id_kontakt assign=output}

no i wiadomo:
Kod
{$output}


wtedy zaleznie do jakiej zmiennej przypisales wynik funkcji to umieszczajac ta zmienna w szablonie wyswietli ci sie wypelniony 'ks-dane-kontaktu2.tpl'
powtarzam nie wiem czy wszystko wlasciwie zrozumialem


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
Go to the top of the page
+Quote Post
itsme
post
Post #6





Grupa: Zarząd
Postów: 1 512
Pomógł: 2
Dołączył: 22.04.2002
Skąd: Koszalin




to ja nie wiem czy rozumniem ale jak bede w domq to pierwsza rzecza jaka uczynie to sprawdze to co mi napisales :-)
Go to the top of the page
+Quote Post
rzseattle
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

Ostrzeżenie: (0%)
-----


i jeszcze jedno zapomnialem ze przy deklarowaniu funkcji trza chyba podac drugi parametr -
[php:1:618503ed6b]<?php
function($dane, $smarty);
?>[/php:1:618503ed6b]


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 11:20