![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 0 Dołączył: 13.10.2003 Skąd: Małopolska Ostrzeżenie: (0%) ![]() ![]() |
[php:1:0428340793]<?php
function wyswietl_menu($posx) { $sql = "select * FROM $_SESSION[db_prefix]menu WHERE posx='$posx' AND status=1 ORDER BY posy"; $dane = $db -> Execute($sql); while (!$dane->EOF) { $dane->fields[2] = '?>'.$dane->fields[2].'<?'; /* dane znajdujące się pomiędzy <? a ?> */ $dane->fields[2] = eval(''.$dane->fields[2].''); // są wykonywane jako kod php $dane->MoveNext(); } // while return $dane; } // function wyswietl_menu $smarty -> assign("left_menu", wyswietl_menu('left')); $smarty -> assign("right_menu", wyswietl_menu('right')) ?>[/php:1:0428340793] Mam taki problem ze funkcja się wykonuje przed wygenerowaniem strony przez smarty. Jak mam przekazać do smarty wynik funkcji zeby smarty to wyswietlilo w miejscu gdzie mam w pliku .tpl taki kod: [php:1:0428340793]<?php {section name=i loop=$left_menu} {$left_menu[i].text} {/section} ?>[/php:1:0428340793] On opowiada za wyswietlenie bloku menu. Pewnie to jest lamerskie pytanie ale to mój 3 dzień ze smarty i adodb. A niestety nie mogłem nic znaleźć na forum na ten temat (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Bardzo prosze o pomoc co mam z tym zrobić. Albo jakiś inny lepszy sposób na umieszczenie dynamicznych bloków menu. |
|
|
![]() |
![]()
Post
#2
|
|
Administrator planeta/IRC Grupa: Przyjaciele php.pl Postów: 385 Pomógł: 0 Dołączył: 19.04.2003 Skąd: Zabrze Ostrzeżenie: (0%) ![]() ![]() |
A może coś takiego:
[php:1:809cb0c4ef]<?php eval('$dane->fields[2] = '.$dane->fields[2].';'); ?>[/php:1:809cb0c4ef] Tylko że to pod warunkiem że pozbędziesz sie <? i ?>. Istnieje także druga możliwość, nie wiem jak wygląda kod, czy uzywasz w nim echo, czy return, ale jeśli to pierwsze to możesz zastosować buforowanie wyjścia: [php:1:809cb0c4ef]<?php ob_start(); eval(''.$dane->fields[2].''); $dane->fields[2] = ob_get_contents(); ob_end_flush(); ?>[/php:1:809cb0c4ef] |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 11:27 |